mirror of https://github.com/docker/docs.git
Store update (#5507)
This commit is contained in:
parent
8ad2680824
commit
f8b69ee538
|
@ -0,0 +1,371 @@
|
|||
---
|
||||
description: Submit a product to be listed on Docker Store
|
||||
keywords: Docker, docker, store, purchase images
|
||||
title: Bring Your Own License (BYOL) products on Store
|
||||
---
|
||||
|
||||
## What is Bring Your Own License (BYOL)?
|
||||
|
||||
Bring Your Own License (BYOL) allows customers with existing software licenses
|
||||
to easily migrate to the containerized version of the software you make
|
||||
available on Docker Store.
|
||||
|
||||
There are two types of BYOL plans available to Independent Software Vendors
|
||||
(ISVs):
|
||||
- **Ungated** customer access to content: customers can see and access an
|
||||
ISV's BYOL product listing by subscribing to the product with their Docker ID.
|
||||
|
||||
- **Gated** customer access to content: customers can see an ISV's BYOL product
|
||||
listing, but cannot access the content until the ISV creates an order for the
|
||||
product with Docker Store APIs. A product key is generated by Docker Store and
|
||||
given back to the ISV. The ISV then sends this product key to the customer
|
||||
they wish to entitle. After fulfilling the order to a specific Docker ID, the
|
||||
customer can access the previously gated BYOL content.
|
||||
|
||||
ISVs can use the Docker Store/Hub as an entitlement and distribution platform.
|
||||
Using API’s provided by Docker, ISVs can entitle users and distribute their
|
||||
Dockerized content to many different audiences:
|
||||
- Existing customers that want their licensed software made available as Docker containers.
|
||||
- New customers that are only interested in consuming their software as Docker containers.
|
||||
- Trial or beta customers, where the ISV can distribute feature or time limited software.
|
||||
|
||||
Docker provides a fulfillment service so that ISVs can programmatically entitle
|
||||
users, by creating subscriptions to their content in Docker Store.
|
||||
|
||||
## Ungated BYOL
|
||||
|
||||
### Prerequisites and setup
|
||||
|
||||
To use Docker as your fulfillment service, an ISV must:
|
||||
- [Apply and be approved as a Docker Store Publisher](https://store.docker.com/publisher/signup)
|
||||
- Apply and be approved to list an Ungated BYOL product
|
||||
- Create one or more Ungated BYOL product plans, in the Docker Store Publisher center.
|
||||
|
||||
## Creating an ungated BYOL plan
|
||||
|
||||
In Plans & Pricing section of the Publisher Center, ensure the following:
|
||||
- Price/Month should be set to $0
|
||||
- There should be no free trial associated with the product
|
||||
- Under the Pull Requirements dropdown, "Subscribed users only" should be selected.
|
||||
|
||||
## Gated BYOL
|
||||
|
||||
### Prerequisites and setup
|
||||
|
||||
To use Docker Store as your fulfillment service, an ISV must:
|
||||
- Apply and be approved as a Docker Store Publisher.
|
||||
- Apply and be approved to use the Gated BYOL feature.
|
||||
- Create a BYOL, "bring your own license" plans, in the Docker Store Publisher center.
|
||||
|
||||
Docker will provide:
|
||||
- One or more authorization tokens to the publisher for making API requests to the Docker fulfillment service.
|
||||
- A partner identifier.
|
||||
|
||||
### Fulfillment and orders usage
|
||||
|
||||
Docker Store provides an API for ISVs to create product orders and generate access tokens (in the form or URLs) for customer subscriptions to their products. ISVs will also be able to access reports and usage information about their products on Docker Store.
|
||||
|
||||
The BYOL program at Docker Store helps ISVs control access to their products for multiple use cases, such as:
|
||||
- New customers purchasing software from the ISV for the first time
|
||||
- Existing customers who need access to the Dockerized form of the ISV's content
|
||||
- Prospects who need access to a subset of the ISV's Dockerized content for a limited time.
|
||||
|
||||
These steps explain how an ISV grants entitlements to their Docker Store products:
|
||||
1. The ISV creates a gated BYOL plan detailing user entitlements to their Docker Store products.
|
||||
2. The ISV issues a "Create Order" API request to the Docker fulfillment service. The request includes the specific BYOL plan, any required quantities, and (optionally) any product keys that the ISV's software requires.
|
||||
3. The Docker fulfillment service returns: (1) an order ID for the ISV's internal records, and (2) an access token (in URL form) that can be given to users.
|
||||
4. The ISV distributes the access token/URL to users in whatever form works with their sales flow--at the end of a UI purchase flow, in a follow up email, etc.
|
||||
5. The user navigates to the access token/URL and is prompted to sign in with a Docker ID (or create an account) on the procurement page of Docker Store.
|
||||
6. The user is shown information on the order (a description of the product and quantities) and any terms and conditions specified by the ISV.
|
||||
7. If the user agrees to the ISV's terms and accepts the order, a subscription is created to the appropriate plan for the duration specified in the order. The user can now access the Docker image as any other subscription on Docker store.
|
||||
8. The user obtains the image at a terminal by running `docker login`, entering their subscription credentials, and following the accompanying setup instructions.
|
||||
9. If needed by the ISV's software, the user can obtain the product key for their subscription from Docker Store, and enter it into the ISV's container, following instructions provided by the ISV.
|
||||
|
||||
A publisher can change or cancel an order before it is fulfilled with the
|
||||
"Update Order" API request documented below. After the order has been fulfilled,
|
||||
the ISV can change or cancel the corresponding subscription by making requests
|
||||
to the Store billing service.
|
||||
|
||||
The subscription that a user receives at the end of this process appears with
|
||||
their other subscriptions in Docker Store. However, the user will not be able to
|
||||
directly change or cancel it, as it represents an entitlement under the control
|
||||
of the ISV. The Store UI will direct the user to contact the ISV for any desired
|
||||
changes.
|
||||
|
||||
### Product keys
|
||||
|
||||
If an ISV's software uses product keys, these may be supplied at the time of order creation. Once the order has been fulfilled, the product keys will be available to the user from the user's subscription detail page. The ISV's installation documentation should refer the user to look for the keys there.
|
||||
|
||||
### API usage
|
||||
|
||||
An approved ISV only needs to make a single API request to create an order and
|
||||
obtain an access token for a user, the "Create Order" request documented below.
|
||||
Other API requests are needed only if the ISV needs to alter/cancel the order,
|
||||
or look up information about the order after it has been created.
|
||||
|
||||
### Gated BYOL plan setup
|
||||
|
||||
Once a publisher has been onboarded to create an gated BYOL plan, the publisher
|
||||
center will begin to allow them to set up a new, unpublished plan with the gated
|
||||
BYOL option:
|
||||
|
||||

|
||||
|
||||
In this stage of the publisher flow, note the **Pull Requirements** selection as
|
||||
"Bring your own License", as well as the **Tier Description** which should
|
||||
include an external reference to where a customer must go to acquire their
|
||||
license from the publisher.
|
||||
|
||||
## API reference for ISVs
|
||||
|
||||
### Endpoint, authorization, content
|
||||
|
||||
All API requests should be made to: <https://store.docker.com/api/fulfillment/v1/...>
|
||||
|
||||
For example, the full path for the "Create Order" API will POST to: https://store.docker.com/api/fulfillment/v1/orders
|
||||
|
||||
All API requests to the fulfillment service must have an "Authorization: Bearer"
|
||||
header with an authorization string that will be provided by Docker. An example
|
||||
header is:
|
||||
|
||||
```
|
||||
Authorization: Bearer 9043ea5c-172a-4d4b-b255-a1dab96fb631
|
||||
```
|
||||
|
||||
ISVs should closely protect their authorization token as if it were a password,
|
||||
and alert Docker if it has been compromised or needs replacement.
|
||||
|
||||
All request and response bodies must/will be encoded with JSON using UTF-8.
|
||||
|
||||
### Data structures
|
||||
|
||||
### OrderCreateRequest (object)
|
||||
|
||||
#### Properties
|
||||
|
||||
* partner\_id (PartnerID, required) - Business entity creating this order.
|
||||
* customer (Customer, optional) - Order customer information.
|
||||
* items (array[OrderItemCreateRequest], required) - One or more items associated with the order.
|
||||
* token (string, optional) - If supplied, the customer access token for this order.
|
||||
* metadata (OrderMetadata, optional) - Key/value strings to be stored with order.
|
||||
|
||||
### Order (object)
|
||||
|
||||
#### Properties
|
||||
|
||||
* order\_id: `ord-93b2dba2-79e3-11e6-8b77-86f30ca893d3` (string, required) - The order id.
|
||||
* token: `DOCKER-TOKEN-234` (string, required) - The access token created for this order by the fulfillment service.
|
||||
* docker\_id: `a76808b87b6c11e68b7786f30ca893d3` (string, optional) - The docker id of the user that fulfilled the order. Note that this is not set unless the order is in a fulfilled state.
|
||||
* state: created (enum, required) - The order state.
|
||||
* created
|
||||
* fulfilled
|
||||
* cancelled
|
||||
* partner\_id (PartnerID, required) - Business entity that created this order.
|
||||
* customer (Customer, optional) - Order customer information.
|
||||
* items (array[OrderItem], required) - One or more items associated with the order.
|
||||
* metadata (OrderMetadata, optional) - Any key/value strings given in the order creation request.
|
||||
* created: `2016-06-02T05:10:54Z` (string, required) - An ISO-8601 order creation timestamp.
|
||||
* updated: `2016-06-02T05:10:54Z` (string, required) - An ISO-8601 order updated timestamp.
|
||||
|
||||
### OrderItem (object)
|
||||
|
||||
#### Properties
|
||||
|
||||
* id: `390745e6-faba-11e6-bc64-92361f002671` (string, required) - The order item id.
|
||||
* product\_id: `bf8f7c15-0c3b-4dc5-b5b3-1595ba9b589e` (string, required) - The Store product id associated with the order item.
|
||||
* rate\_plan\_id: `85717ec8-6fcf-4fd9-9dbf-051af0ce1eb3` (string, required) - The Store rate plan id associated with the order item.
|
||||
* subscription\_start\_date: `2016-06-02T05:10:54Z` (string, optional) - An ISO-8601 timestamp representing the subscription start date. If not specified, the subscription will start at order fulfillment time.
|
||||
* subscription\_end\_date: `2019-06-02T05:10:54Z` (string, optional) - An ISO-8601 timestamp representing the subscription end date. If not specified, the subscription will end based on the plan duration period.
|
||||
* pricing\_components (array[PricingComponent], required) - One or more pricing components associated with the order item.
|
||||
* metadata (OrderItemMetadata, optional) - Any key/value strings given for this item in the order creation request.
|
||||
* product\_keys (array[ProductKey], optional) - Product keys associated with the order item.
|
||||
|
||||
### OrderItemCreateRequest (object)
|
||||
|
||||
#### Properties
|
||||
|
||||
* sku: ZZ456A (string, optional) - The order item SKU.
|
||||
* product\_id: `bf8f7c15-0c3b-4dc5-b5b3-1595ba9b589e` (string, optional) - The Store product id associated with the order item.
|
||||
* rate\_plan\_id: `85717ec8-6fcf-4fd9-9dbf-051af0ce1eb3` (string, optional) - The Store rate plan id associated with the order item.
|
||||
* subscription\_start\_date: `2016-06-02T05:10:54Z` (string, optional) - An ISO-8601 timestamp representing the subscription start date. If not specified, the subscription will start at order fulfillment time.
|
||||
* subscription\_end\_date: `2019-06-02T05:10:54Z` (string, optional) - An ISO-8601 timestamp representing the subscription end date. If not specified, the subscription will end based on the plan duration period.
|
||||
* pricing\_components (array[PricingComponent], required) - One or more pricing components associated with the order item.
|
||||
* metadata (OrderItemMetadata, optional) - Mapping of key/value strings for this order item.
|
||||
* product\_keys (array[ProductKeyCreateRequest], optional) - Product keys associated with the order item.
|
||||
|
||||
### PricingComponent (object)
|
||||
|
||||
#### Properties
|
||||
|
||||
* name: `Nodes` (string, required) - The pricing component slug. For example Nodes or Engines.
|
||||
* value: 25 (number, required) - The quantity for the given pricing component. For example 1 support, 15 docker engines, or 5 private repos.
|
||||
|
||||
### ProductKeyCreateRequest (object)
|
||||
|
||||
#### Properties
|
||||
|
||||
* label: `Production` (string, required) - The human-readable label for the given product key that will be displayed to the customer.
|
||||
* media\_type: `text/plain` (enum, required) - An accepted IANA Media Type for this product key. This suggests to the user interface how to display the product key for the customer to use.
|
||||
* text/plain
|
||||
* application/json
|
||||
* file\_name: `production-key.txt` (string, optional) - The file name for the downloaded file if the product key is a blob that requires or allows download by the customer.
|
||||
* value: `AbKe13894Aksel` (string, required) - The contents of the product key as a string. If the value is blob that cannot be represented as a string, the contents will be encoded as a Base64 string.
|
||||
|
||||
### ProductKey (object)
|
||||
|
||||
#### Properties
|
||||
|
||||
* id: `390745e6-faba-11e6-bc64-92361f002671` (string, required) - The product key id.
|
||||
* order\_item\_id: `85717ec8-6fcf-4fd9-9dbf-051af0ce1eb3` (string, required) - The id of the order item that this product key is associated with.
|
||||
* label: `Production` (string, required) - The human-readable label for the given product key that will be displayed to the customer.
|
||||
* media\_type: `text/plain` (enum, required) - An accepted IANA Media Type for this product key. This suggests to the user interface how to display the product key for the customer to use.
|
||||
* text/plain
|
||||
* application/json
|
||||
* file\_name: `production-key.txt` (string, optional) - The file name for the downloaded file if the product key is a blob that requires or allows download by the customer.
|
||||
* value: `AbKe13894Aksel` (string, required) - The contents of the product key as a string. If the value is blob that cannot be represented as a string, the contents will be encoded as a Base64 string.
|
||||
* created: `2016-06-02T05:10:54Z` (string, required) - An ISO-8601 product key creation timestamp.
|
||||
* updated: `2016-06-02T05:10:54Z` (string, required) - An ISO-8601 product key updated timestamp.
|
||||
|
||||
### OrderFulfillmentRequest (object)
|
||||
|
||||
#### Properties
|
||||
|
||||
* state: `fulfilled` (string, required) - The desired order state. Only a fulfilled state may be specified.
|
||||
* docker\_id: `a76808b87b6c11e68b7786f30ca893d3` (string, required) - The docker id (user or org id) to fulfill the order for.
|
||||
* eusa\_accepted: true (boolean, required) - Whether or not the EUSA associated with the order has been accepted
|
||||
|
||||
### OrderCancellationRequest (object)
|
||||
|
||||
#### Properties
|
||||
|
||||
* state: `cancelled` (string, required) - The desired order state. Only a cancelled state may be specified.
|
||||
|
||||
#### Requests
|
||||
|
||||
#### Create order [POST]
|
||||
|
||||
Create an order.
|
||||
|
||||
* Request (application/json)
|
||||
|
||||
* Attributes (OrderCreateRequest)
|
||||
|
||||
#### List orders by token [GET /orders{?token}]
|
||||
|
||||
Retrieve an order with the given token. An empty array will be returned if no orders for the given token are found.
|
||||
|
||||
* Parameters
|
||||
|
||||
* token: `DOCKER-TOKEN-2324234` (string, required) - The order token.
|
||||
* Request (application/json)
|
||||
|
||||
#### List orders by partner [GET /orders{?partner\_id}]
|
||||
|
||||
List orders associated with the the given partner. An empty array will be returned if there are no orders associated with the partner.
|
||||
|
||||
* Parameters
|
||||
|
||||
* partner\_id: partner-2342423 (string, required) - The partner identifier.
|
||||
* Response 200 (application/json)
|
||||
|
||||
* Attributes (array[Order])
|
||||
|
||||
### Order [/orders/{order\_id}]
|
||||
|
||||
* Parameters
|
||||
* order\_id: `ord-93b2dba2-79e3-11e6-8b77-86f30ca893d3` (string, required) - The order id.
|
||||
|
||||
#### Get order [GET]
|
||||
|
||||
Retrieve an order by id.
|
||||
|
||||
* Request (application/json)
|
||||
* Response 200 (application/json)
|
||||
|
||||
* Attributes (Order)
|
||||
|
||||
#### Update order [PATCH]
|
||||
|
||||
A number of operations can be performed by `PATCH`ing an order:
|
||||
|
||||
**Fulfill** an order. Fulfilling an order will put it in a fulfilled state, and will kick off a process to create subscriptions for each order item associated with the order.
|
||||
|
||||
* Request (application/json)
|
||||
|
||||
* Attributes (OrderFulfillmentRequest)
|
||||
* Response 200
|
||||
|
||||
* Attributes (Order)
|
||||
|
||||
**Cancel** an order. Canceling an order will put it in a cancelled state. The order is frozen once cancelled (that is, no further changes may be made to it).
|
||||
|
||||
* Request (application/json)
|
||||
* Attributes (OrderCancellationRequest)
|
||||
* Response 200
|
||||
|
||||
* Attributes (Order)
|
||||
|
||||
### Order item product keys [/order-items/{order\_item\_id}/product-keys]
|
||||
|
||||
* Parameters
|
||||
* order\_item\_id: `ord-93b2dba2-79e3-11e6-8b77-86f30ca893d3` (string, required) - The order item id.
|
||||
|
||||
#### List product keys for order item [GET]
|
||||
|
||||
Retrieve all product keys for an order item by id. An empty array will be returned if the order item does not have any product keys.
|
||||
|
||||
* Request (application/json)
|
||||
* Response 200 (application/json)
|
||||
|
||||
* Attributes (array[ProductKey])
|
||||
|
||||
#### Create product key for order item [POST]
|
||||
|
||||
Create a product key for an existing order item. Note that adding new product keys will not affect existing product keys.
|
||||
|
||||
* Request (application/json)
|
||||
|
||||
* Attributes (ProductKeyCreateRequest)
|
||||
* Response 201 (application/json)
|
||||
|
||||
* Attributes (ProductKey)
|
||||
|
||||
## Group product keys
|
||||
|
||||
A product key is a resource attached to an order item that a publisher manages on behalf of their customer. When an order is fulfilled and subscriptions are created for a customer, the product keys associated with that order item can be accessed by the customer.
|
||||
|
||||
### Product key [/product-keys/{product\_key\_id}]
|
||||
|
||||
* Parameters
|
||||
* product\_key\_id: `23443-93b2dba2-79e3-11e6-8b77-86f30ca893d3` (string, required) - The product key id.
|
||||
|
||||
#### Get product key [GET]
|
||||
|
||||
Retrieve a product key by id.
|
||||
|
||||
* Request (application/json)
|
||||
* Response 200 (application/json)
|
||||
|
||||
* Attributes (ProductKey)
|
||||
|
||||
#### Update product key [PUT]
|
||||
|
||||
Update a product key by id. All fields shown are required.
|
||||
|
||||
* Request (application/json)
|
||||
|
||||
* Attributes (ProductKeyCreateRequest)
|
||||
* Response 200 (application/json)
|
||||
|
||||
* Attributes (ProductKey)
|
||||
|
||||
#### Delete product key [DELETE]
|
||||
|
||||
Delete a product key by id.
|
||||
|
||||
* Request (application/json)
|
||||
* Response 204 (application/json)
|
||||
|
||||
## What's next?
|
||||
|
||||
More information about the publishing flow can be found [here](publish.md).
|
|
@ -1,17 +1,43 @@
|
|||
---
|
||||
description: Docker Store frequently asked questions
|
||||
keywords: Docker, docker, store, purchase images
|
||||
title: Consumer FAQs
|
||||
title: Docker Store Customer FAQs
|
||||
---
|
||||
|
||||
## Customer FAQs
|
||||
|
||||
### How do I log in to the Docker Store?
|
||||
|
||||
Log in to the Docker Store using your free Docker ID. Don't have a Docker ID yet? Go to [Docker Cloud](https://cloud.docker.com/) to sign up.
|
||||
Log in to the Docker Store using your free Docker ID. Don’t have a Docker ID
|
||||
yet? Go to [Docker Cloud](https://cloud.docker.com) to sign up.
|
||||
|
||||
## Certification program
|
||||
|
||||
### What is the certification program for images and plugins, and what are some benefits?
|
||||
|
||||
The Docker Certification program for Infrastructure, Images, and Plugins is
|
||||
designed for both technology partners and enterprise customers to recognize
|
||||
high-quality Containers and Plugins, provide collaborative support, and ensure
|
||||
compatibility with Docker EE. Docker Certification is aligned to the available
|
||||
Docker EE infrastructure and gives enterprises a trusted way to run more
|
||||
technology in containers with support from both Docker and the publisher.
|
||||
|
||||
## End user experience
|
||||
|
||||
### Why do I see the pull command for a few products and no pull command in other products?
|
||||
|
||||
If a publisher publishes multiple images as part of their plan - we do not
|
||||
display the pull command. The pull command visual is exclusively for submissions
|
||||
that have a single image.
|
||||
|
||||
As a future feature we would like to start bringing in the concept of
|
||||
compositions because it is more connected to real world usage of containers. Our
|
||||
intent is to start surfacing a better UX by Q1 '18.
|
||||
|
||||
### Where can I see all of my purchases?
|
||||
|
||||
To view your purchases, go to the account menu at the upper right corner, and
|
||||
click **Subscriptions**. The page that appears lists all of your active
|
||||
click **My Content**. The page that appears lists all of your active
|
||||
subscriptions, and any lapsed or canceled subscriptions.
|
||||
|
||||
### Can I buy subscriptions for my organization?
|
||||
|
@ -21,7 +47,7 @@ for use in their Organization. Once purchased, images are available for any
|
|||
organization member to pull.
|
||||
|
||||
Organization owners can view the organization's subscriptions by changing the
|
||||
selected account on the **Subscriptions** page.
|
||||
selected account on the **My Content** page.
|
||||
|
||||
### How can I become a Docker Store publisher?
|
||||
|
||||
|
@ -76,5 +102,5 @@ contact our [Billing Support team](mailto:billing@docker.com).
|
|||
You can view and download your all active licenses for an organization from the
|
||||
Subscriptions page.
|
||||
|
||||
Click the user icon menu at the top right, choose **Subscriptions** and then
|
||||
Click the user icon menu at the top right, choose **My Content** and then
|
||||
select the organization from the **Accounts** drop down menu.
|
|
@ -4,69 +4,96 @@ keywords: Docker, docker, store, publishers, publish images
|
|||
title: Docker Store overview
|
||||
---
|
||||
|
||||
To learn more about publishing on Docker Store, browse the topics below along
|
||||
with the [publishers guide](publish.md), and
|
||||
[apply to be a publisher](https://store.docker.com/publisher/signup).
|
||||
For developers and operators, Docker Store is the best way to discover
|
||||
high-quality Docker content.
|
||||
|
||||
-----------------
|
||||
Independent Software Vendors (ISVs) can utilize Docker Store to distribute and
|
||||
sell their Dockerized content. Publish your software through Docker Store to
|
||||
experience the following benefits:
|
||||
|
||||
## What is Docker Store?
|
||||
* **Access to Docker’s large and growing customer-base.** Docker has experienced
|
||||
rapid adoption, and is popular in dev-ops environments. Docker users have
|
||||
pulled images over twelve billion times and they are increasingly turning to
|
||||
Docker Store as the canonical source for high-quality, curated content.
|
||||
|
||||
For publishers, Docker Store is the best way for you to distribute and sell your
|
||||
Dockerized content. Publish your software through the Docker Store to experience
|
||||
the benefits below:
|
||||
* **Customers can try or buy your software**, right from your product listing.
|
||||
Your content is accessible for installation, trial, and purchase from the
|
||||
Docker Store and the Docker CLI.
|
||||
|
||||
* Access to Docker’s large and growing customer-base. Docker has
|
||||
experienced rapid adoption, and is wildly popular in dev-ops
|
||||
environments. Docker users have pulled images over four billion times,
|
||||
and they are increasingly turning to the Docker Store as the canonical
|
||||
source for high-quality, curated content.
|
||||
* **Use of Docker licensing support.** Control who has access to your software:
|
||||
a) logged-in users, b) users who have purchased a license, or c) all Docker
|
||||
users. We’ll help you manage and control your distribution.
|
||||
|
||||
* Customers can try or buy your software, right from your product listing. Your
|
||||
content is accessible for installation, trial, and purchase from the Docker
|
||||
Store and the Docker CLI.
|
||||
* **We'll handle checkout.** You don’t have to set up your own digital
|
||||
e-commerce site when you sell your content through the Docker Store. Choose
|
||||
how much you want to charge for your products and we'll handle the billing.
|
||||
|
||||
* Use our licensing support. We can limit access to your software to
|
||||
a) logged-in users, b) users who have purchased a license, or
|
||||
c) all Docker users. We’ll help you manage and control your distribution.
|
||||
* **Seamless updates and upgrades for your customers.** We tell your customers
|
||||
when your content has upgrades or updates available.
|
||||
|
||||
* We'll handle checkout. You don’t have to set up your own digital e-commerce
|
||||
site when you sell your content through the Docker Store. We'll even help you
|
||||
set pricing—and you can forget about the rest.
|
||||
* **Become Docker Certified.** Publisher container images and plugins that meet
|
||||
the quality, security, and support criteria of the program will display a
|
||||
“Docker Certified” badge within the Docker Store (which can be used in
|
||||
external marketing).
|
||||
|
||||
* Seamless updates and upgrades. We tell customers when your content
|
||||
has upgrades or updates available, right inside their Docker host product.
|
||||
## How is Docker Store different from Docker Hub? What about Official Images?
|
||||
|
||||
* It’s a win-win for our platform and publishers: great content improves our
|
||||
ecosystem, and our flexible platform helps you bring your content to market.
|
||||
Docker Hub contains community content - these are images that have been created
|
||||
by entities that are not vetted or curated. You can think of the community
|
||||
content you consume as the "Wild West"--anyone can push new images to the
|
||||
community and there are no guarantees around the quality or compatibility of
|
||||
this content.
|
||||
|
||||
* Achieve the Docker Certified quality mark. Publisher container images and
|
||||
plugins that meet the quality, security, and support criteria of the program
|
||||
will display a “Docker Certified” badge within the Docker Store and external
|
||||
marketing.
|
||||
Docker Store contains content that has been submitted for approval by qualified
|
||||
Store Vendor Partners. These products are published and maintained directly by a
|
||||
commercial entity. In addition, the Docker Certified logo distinguishes content
|
||||
by providing quality, provenance, and support assurances.
|
||||
|
||||
### Distribution Models
|
||||
Official Images are an exception when it comes to community content; these
|
||||
images are maintained as open source community projects. All official images
|
||||
adhere to strict guidelines but are not necessarily backed by a commercial
|
||||
entity.
|
||||
|
||||
> **Note**: Docker Hub and Docker Store leverage the same backend, the Docker
|
||||
> Public Registry. In general, all publicly available community content should
|
||||
> be visible via both Docker Hub and Docker Store, and this includes official
|
||||
> images. Any content that has explicitly been added by a commercial entity and
|
||||
> has gone through a vetting process with respect to content submission and best
|
||||
> practices, is only available on Docker Store.
|
||||
|
||||
## Distribution models
|
||||
|
||||
The Docker Store welcomes free and open-source content, as well as software sold
|
||||
directly by publishers. We support the following commercial models:
|
||||
directly by publishers. We support the following commercial models:
|
||||
|
||||
#### Paid-via-Docker Content
|
||||
### Paid via Docker
|
||||
|
||||
This is content for which customers transact via Docker, as described in the
|
||||
publisher agreement. Paid-via-Docker content includes both software than can be
|
||||
deployed on a host, as well as software that runs in the cloud and can be
|
||||
accessed by the customer via an ambassador container (containerized cloud
|
||||
services, for example).
|
||||
This commercial model allows customers to pay for ISV content via Docker, as
|
||||
described in the Store Vendor Partner agreement. Paid-via-Docker content
|
||||
includes both software that can be deployed on a host, as well as software that
|
||||
runs in the cloud and can be accessed by the customer via an agent
|
||||
(containerized cloud services, for example).
|
||||
|
||||
#### Free Content
|
||||
### Licensed content via Docker Store BYOL program
|
||||
|
||||
Free content is provided free-of-charge, and customers may pull it from the
|
||||
Docker Hub either at their discretion or upon license acceptance, at the
|
||||
publisher’s discretion. You agree that you will not charge customers for any
|
||||
Free Content by making it available for purchase outside of the Docker Store.
|
||||
ISVs can use Docker Store as an entitlement and distribution platform. Using
|
||||
APIs provided by Docker, ISVs can entitle users and distribute their Dockerized
|
||||
content to many different audiences:
|
||||
* Existing customers that want their licensed software made available as Docker containers.
|
||||
* New customers that are only interested in consuming their software as Docker containers.
|
||||
* Trial or beta customers, where the ISV can distribute feature or time limited software.
|
||||
|
||||
Docker provides a fulfillment service so that ISVs can programmatically entitle
|
||||
users, by creating subscriptions to their content in Docker Store. For more
|
||||
information, see [Bring Your Own License (BYOL) products on Store](byol.md).
|
||||
|
||||
### Plugins and agents
|
||||
|
||||
ISVs have the ability to create and distribute [plugin images](https://store.docker.com/search?certification_status=certified&q=&type=plugin) for their customers to integrate with the ISV's proprietary hardware or cloud infrastructure and Docker Enterprise Edition deployments.
|
||||
|
||||
You can [apply to be a publisher](https://store.docker.com/publisher/signup) and learn more about our [Technology Partner Program](https://www.docker.com/partners/partner-program#/technology_partner).
|
||||
|
||||
## What's next?
|
||||
|
||||
* To learn about submitting products and content to Docker Store, see the [publishers guide](publish.md).
|
||||
|
||||
* To learn about using Docker Store to download content, see the [consumer FAQs](faq.md).
|
||||
* Learn about submitting products and content to Docker Store, see the [publishers guide](publish.md) and the [publisher FAQs](publisher_faq.md).
|
||||
* Learn about using Docker Store to download content, see the [customer FAQs](customer_faq.md).
|
||||
|
|
|
@ -4,62 +4,62 @@ keywords: Docker, docker, store, purchase images
|
|||
title: Publish content on Docker Store
|
||||
---
|
||||
|
||||
## Permitted Content and Support Options
|
||||
## Permitted content and support options
|
||||
|
||||
* Content that runs on a Docker Enterprise Edition (i.e. Docker Certified
|
||||
Infrastructure) may be published in the Store. This content may also qualify to
|
||||
become a Docker Certified Container or Plugin image and be backed by
|
||||
collaborative Docker/Publisher support
|
||||
Infrastructure) may be published in the Store. This content may also qualify
|
||||
to become a Docker Certified Container or Plugin image and be backed by
|
||||
collaborative Docker/Publisher support
|
||||
|
||||
* Content that runs on the Docker Community Edition may be published in the
|
||||
Store, but will not be supported by Docker nor is it eligible for certification.
|
||||
* Content that runs on the Docker Community Edition may be published in the
|
||||
Store, but will not be supported by Docker nor is it eligible for certification.
|
||||
|
||||
* Content that requires a non Certified Infrastructure environment may not be
|
||||
published in the Store.
|
||||
published in the Store.
|
||||
|
||||
|
||||
| If your content: | Can publish on Store | Can be certified and supported by Docker | Supported by publisher |
|
||||
|:-----|:--------|:------|:-----|
|
||||
| Works on Docker Enterprise Edition | YES | YES | Required |
|
||||
| Works on Docker Community Edition | YES | NO | Optional |
|
||||
| Works on Docker Enterprise Edition | YES | YES | Required |
|
||||
| Works on Docker Community Edition | YES | NO | Optional |
|
||||
| Does not work on Docker Certified Infrastructure | NO | N/A | N/A |
|
||||
|
||||
|
||||
## Onboarding
|
||||
|
||||
The publishing process for the Docker Store is straightforward, and can be
|
||||
initiated from the landing page. You can sign in with your Docker ID, and
|
||||
specify a product name and image source from a private repository. We require
|
||||
initiated from the landing page. You can sign in with your Docker ID, and
|
||||
specify a product name and image source from a private repository. We require
|
||||
that your product images are stored in private repositories via Docker Cloud
|
||||
and/or Hub, as they serve as an internal staging area from which you can revise
|
||||
and submit content for review.
|
||||
|
||||
Once you specify a private-repository source for your product, you can provide
|
||||
the content-manifest items to populate your product’s details page. These items
|
||||
the content-manifest items to populate your product’s details page. These items
|
||||
include logos, descriptions, and licensing and support links so that customers
|
||||
can make informed decisions about your image. These items are submitted
|
||||
can make informed decisions about your image. These items are submitted
|
||||
alongside the image itself for moderation.
|
||||
|
||||
The Docker Store team then conducts a comprehensive review of your image and
|
||||
metadata. We use Docker Security Scanning to evaluate your product images’
|
||||
security, and share results with you as the publisher. During the
|
||||
metadata. We use Docker Security Scanning to evaluate your product images’
|
||||
security, and share results with you as the publisher. During the
|
||||
image-moderation phase, we iterate back and forth with publishers to address
|
||||
outstanding vulnerabilities and content-manifest issues until the image is ready
|
||||
for publication.
|
||||
|
||||
Commercial content and other supported images may qualify for the Docker
|
||||
Certified Container or Plugins quality mark. The testing for this program goes
|
||||
Certified Container or Plugins quality mark. The testing for this program goes
|
||||
beyond the vulnerability scan and also evaluates container images for Docker
|
||||
best practices developed over years of experience. Collaborative support
|
||||
capability between Docker and the publisher is also established. Please refer
|
||||
best practices developed over years of experience. Collaborative support
|
||||
capability between Docker and the publisher is also established. Please refer
|
||||
to the diagram below for a high-level summary:
|
||||
|
||||

|
||||
|
||||
## Create Great Content
|
||||
## Create great content
|
||||
|
||||
Create your content, and follow our best practices to Dockerize it. Keep your
|
||||
images small, your layers few, and your components secure. Please refer to the
|
||||
Create your content, and follow our best practices to Dockerize it. Keep your
|
||||
images small, your layers few, and your components secure. Please refer to the
|
||||
links and guidelines listed below to build and deliver great content:
|
||||
|
||||
* [Best practices for writing Dockerfiles](/engine/userguide/eng-image/dockerfile_best-practices/)
|
||||
|
@ -93,11 +93,15 @@ images for all container applications.
|
|||
### Remove unused components
|
||||
|
||||
Often, vulnerabilities exist in components that aren't actually used in the
|
||||
containerized application. To avoid this, you can:
|
||||
containerized application. To avoid this, you can:
|
||||
|
||||
* Follow best practices when using the `apt-get` command.
|
||||
|
||||
* Make sure to run `apt-get-remove` to destroy any components required to build but not actually run your application. Usually, this involves creating multi-line Dockerfile directives, as seen below. The following example shows how to remove `curl` and `python-pip` after they are used to install the Python `requests` package, all in a single Dockerfile directive:
|
||||
* Make sure to run `apt-get-remove` to destroy any components required to build
|
||||
but not actually run your application. Usually, this involves creating
|
||||
multi-line Dockerfile directives, as seen below. The following example shows
|
||||
how to remove `curl` and `python-pip` after they are used to install the
|
||||
Python `requests` package, all in a single Dockerfile directive:
|
||||
|
||||
```shell
|
||||
RUN apt-get update && \
|
||||
|
@ -107,22 +111,21 @@ RUN apt-get update && \
|
|||
rm -rf /var/lib/apt/lists/
|
||||
```
|
||||
|
||||
> **Note**: Keep in mind, any file introduced in one directive of
|
||||
your Dockerfile can only be removed in the same directive (and not
|
||||
in subsequent directives in your Dockerfile).
|
||||
> **Note**: Files introduced in one directive of your Dockerfile can only be
|
||||
> removed in the same directive (and not in subsequent directives in your Dockerfile).
|
||||
|
||||
### Keep required components up-to-date
|
||||
|
||||
Your images are comprised of open-source libraries and packages that amass
|
||||
vulnerabilities over time and are consequently patched. To optimize your
|
||||
vulnerabilities over time and are consequently patched. To optimize your
|
||||
product’s integrity, you must keep your images up-to-date:
|
||||
|
||||
* Periodically update your base image's version, especially if you’re using a
|
||||
version deemed to be vulnerable.
|
||||
version deemed to be vulnerable.
|
||||
|
||||
* Re-build your image periodically. Directives including commands such as
|
||||
`apt-get install ...` pull the latest versions of dependencies, which may
|
||||
include security fixes.
|
||||
* Re-build your image periodically. Directives including commands such as
|
||||
`apt-get install ...` pull the latest versions of dependencies, which may
|
||||
include security fixes.
|
||||
|
||||
### Scan your own private repositories
|
||||
|
||||
|
@ -134,9 +137,8 @@ Program.
|
|||
|
||||
## Create and maintain your publisher profile in the Store
|
||||
|
||||
Let the Docker community
|
||||
know who you are. Add your details, your company story, and what you do. At
|
||||
the very minimum, we require:
|
||||
Let the Docker community know who you are. Add your details, your company
|
||||
story, and what you do. At the very minimum, we require:
|
||||
|
||||
* Legal entity name
|
||||
* Company website
|
||||
|
@ -168,41 +170,42 @@ discoverable:
|
|||
11. Installation instructions
|
||||
12. Link to license agreements
|
||||
|
||||
#### How the manifest information is displayed in the UI
|
||||
### How the manifest information is displayed in the UI
|
||||
|
||||
(Please note that this is an approximate representation. We frequently make enhancements to the look and some elements might shift around.)
|
||||
(Please note that this is an approximate representation. We frequently make
|
||||
enhancements to the look and some elements might shift around.)
|
||||
|
||||

|
||||
|
||||
## Support your users
|
||||
|
||||
Docker users who download your content from the Store might need your help
|
||||
later, so be prepared for questions! The information you provide with your
|
||||
later, so be prepared for questions! The information you provide with your
|
||||
submission will save support time in the future.
|
||||
|
||||
### Support information
|
||||
|
||||
If you provide support along with your content, include that information. Is
|
||||
there a support website? What email address can users contact for help? Are
|
||||
If you provide support along with your content, include that information. Is
|
||||
there a support website? What email address can users contact for help? Are
|
||||
there self-help or troubleshooting resources available?
|
||||
|
||||
### Support SLA
|
||||
|
||||
Include a Service Level Agreement (SLA) for each image you're offering for the
|
||||
Store. An SLA is your commitment to your users about the nature and level of
|
||||
Store. An SLA is your commitment to your users about the nature and level of
|
||||
support you provide to them. Make sure your SLA includes support hours and
|
||||
response-time expectations, where applicable.
|
||||
|
||||
## Security and Audit Policies
|
||||
## Security and audit policies
|
||||
|
||||
### Docker Security Scanning
|
||||
|
||||
We use Docker Security Scanning to automatically and continuously assess your
|
||||
products’ integrity. The tool deconstructs images, conducts a binary scan of
|
||||
products’ integrity. The tool deconstructs images, conducts a binary scan of
|
||||
the bits to identify the open-source components present in each image layer, and
|
||||
associates those components with known vulnerabilities and exposures. We then
|
||||
associates those components with known vulnerabilities and exposures. We then
|
||||
share the scan results with you as the publisher, so that you can modify your
|
||||
images’ content accordingly. Your scan results are private, and are never
|
||||
images’ content accordingly. Your scan results are private, and are never
|
||||
shared with end customers or other publishers.
|
||||
|
||||
To interpret the results, refer to the
|
||||
|
@ -210,52 +213,54 @@ To interpret the results, refer to the
|
|||
|
||||
#### Classification of issues
|
||||
|
||||
* All Scan results will include the CVE numbers and a CVSS (Common Vulnerability Scoring System) Score.
|
||||
* All Scan results will include the CVE numbers and a CVSS (Common Vulnerability
|
||||
Scoring System) Score.
|
||||
|
||||
* CVE Identifiers (also referred to by the community as "CVE names," "CVE
|
||||
* CVE Identifiers (also referred to by the community as "CVE names," "CVE
|
||||
numbers," "CVE entries," "CVE-IDs," and "CVEs") are unique identifiers for
|
||||
publicly-known, cyber-security vulnerabilities.
|
||||
|
||||
* The Common Vulnerability Scoring System (CVSS) provides an open
|
||||
framework for communicating the characteristics and impacts of
|
||||
IT vulnerabilities. Its quantitative model ensures repeatable,
|
||||
accurate measurement while enabling users to see the underlying
|
||||
vulnerability characteristics that were used to generate the scores.
|
||||
As a result, CVSS is well-suited as a standard measurement system
|
||||
for industries, organizations, and governments that need accurate
|
||||
and consistent vulnerability-impact scores. CVSS is commonly used
|
||||
to prioritize vulnerability-remediation activities, and calculate
|
||||
the severity of vulnerabilities discovered on systems. The
|
||||
National Vulnerability Database (NVD) provides CVSS scores for
|
||||
almost all known vulnerabilities.
|
||||
* The Common Vulnerability Scoring System (CVSS) provides an open
|
||||
framework for communicating the characteristics and impacts of
|
||||
IT vulnerabilities. Its quantitative model ensures repeatable,
|
||||
accurate measurement while enabling users to see the underlying
|
||||
vulnerability characteristics that were used to generate the scores.
|
||||
As a result, CVSS is well-suited as a standard measurement system
|
||||
for industries, organizations, and governments that need accurate
|
||||
and consistent vulnerability-impact scores. CVSS is commonly used
|
||||
to prioritize vulnerability-remediation activities, and calculate
|
||||
the severity of vulnerabilities discovered on systems. The
|
||||
National Vulnerability Database (NVD) provides CVSS scores for
|
||||
almost all known vulnerabilities.
|
||||
|
||||
* Docker classifies the severity of issues per CVSS range, Docker classification, and service level agreement (SLA) as follows.
|
||||
* Docker classifies the severity of issues per CVSS range, Docker classification,
|
||||
and service level agreement (SLA) as follows.
|
||||
|
||||
| CVSS range | Docker classification | SLA for fixing issues |
|
||||
|:-----|:--------|:------|
|
||||
| 7.0 to 10.0 | Critical | Within 72 hours of notification |
|
||||
| 4.0 to 6.9 | Major | Within 7 days of notification |
|
||||
| 0.1 to 3.9 | Minor | No SLA. Best-effort to fix or address in documentation. |
|
||||
| CVSS range | Docker classification | SLA for fixing issues |
|
||||
|:-----|:--------|:------|
|
||||
| 7.0 to 10.0 | Critical | Within 72 hours of notification |
|
||||
| 4.0 to 6.9 | Major | Within 7 days of notification |
|
||||
| 0.1 to 3.9 | Minor | No SLA. Best-effort to fix or address in documentation. |
|
||||
|
||||
* In addition to CVSS, the Docker Security team can identify or classify
|
||||
vulnerabilities that need to be fixed, and categorize them in the
|
||||
minor-to-critical range.
|
||||
vulnerabilities that need to be fixed, and categorize them in the
|
||||
minor-to-critical range.
|
||||
|
||||
* The publisher is presented with initial scan results, including all components
|
||||
with their CVEs and their CVSS scores.
|
||||
with their CVEs and their CVSS scores.
|
||||
|
||||
* If you use Docker’s Scanning Service, you can subscribe to a notification
|
||||
service for new vulnerabilities.
|
||||
service for new vulnerabilities.
|
||||
|
||||
* Failure to meet above SLAs may cause the listing is put on “hold”.
|
||||
* Failure to meet above SLAs may cause the listing is put on “hold”.
|
||||
|
||||
* A warning label shows up on the marketplace listing. An email is sent to the
|
||||
users who have downloaded and subscribed for notifications.
|
||||
users who have downloaded and subscribed for notifications.
|
||||
|
||||
* A Repo’s listing can stay in the "hold" state for a maximum of 1 month, after
|
||||
which the listing will be revoked.
|
||||
which the listing will be revoked.
|
||||
|
||||
### Usage Audit and Reporting
|
||||
### Usage audit and reporting
|
||||
|
||||
Unless otherwise negotiated, an audit of activity on publisher content will be
|
||||
retained for no less than 180 days.
|
||||
|
@ -297,7 +302,7 @@ the partner.
|
|||
Docker Certified Container images and plugins are meant to differentiate high
|
||||
quality content on Docker Store. Customers can consume Certified Containers with
|
||||
confidence knowing that both Docker and the publisher will stand behind the
|
||||
solution. Further details can be found in the [Docker Partner Program Guide](https://www.docker.com/partnerprogramguide){: target="_blank" class="_"}.
|
||||
solution. Further details can be found in the [Docker Partner Program Guide](https://www.docker.com/partnerprogramguide){: target="_blank" class="_"}.
|
||||
|
||||
#### What are the benefits of Docker Certified?
|
||||
|
||||
|
@ -305,7 +310,7 @@ Docker Store will promote Docker Certified Containers and Plugins running on
|
|||
Docker Certified Infrastructure trusted and high quality content. With over 8B
|
||||
image pulls and access to Docker’s large customer base, a publisher can
|
||||
differentiate their content by certifying their images and plugins. With a
|
||||
revenue share agreement, Docker can be a channel for your content. The Docker
|
||||
revenue share agreement, Docker can be a channel for your content. The Docker
|
||||
Certified badge can also be listed alongside external references to your
|
||||
product.
|
||||
|
||||
|
@ -330,10 +335,10 @@ on Docker Store.
|
|||
All Docker Certified Container images and plugins running on Docker Certified
|
||||
Infrastructure come with SLA based support provided by the publisher and Docker.
|
||||
Normally, a customer contacts the publisher for container and application level
|
||||
issues. Likewise, a customer will contact Docker for Docker Edition support.
|
||||
issues. Likewise, a customer will contact Docker for Docker Edition support.
|
||||
In the case where a customer calls Docker (or vice versa) about an issue on the
|
||||
application, Docker will advise the customer about the publisher support process
|
||||
and will perform a handover directly to the publisher if required. TSAnet is
|
||||
and will perform a handover directly to the publisher if required. TSAnet is
|
||||
required for exchange of support tickets between the publisher and Docker.
|
||||
|
||||
#### How does a publisher apply to the Docker Certified program?
|
||||
|
@ -344,20 +349,20 @@ Partner](https://goto.docker.com/partners){: target="_blank" class="_"}
|
|||
* Requires acceptance of partnership agreement for completion
|
||||
|
||||
* Identify commercial content that can be listed on Store and includes a support
|
||||
offering
|
||||
offering
|
||||
|
||||
* Test your image against the Docker CS Engine 1.12+ or on a Docker Certified
|
||||
Infrastructure version 17.03 and above (Plugins must run on 17.03 and above)
|
||||
Infrastructure version 17.03 and above (Plugins must run on 17.03 and above)
|
||||
|
||||
* Submit your image for Certification through the publisher portal. Docker will
|
||||
scan the image and work with you to address vulnerabilities. Docker will also
|
||||
conduct a best practices review of the image.
|
||||
scan the image and work with you to address vulnerabilities. Docker will also
|
||||
conduct a best practices review of the image.
|
||||
|
||||
* Be a [TSAnet](https://www.tsanet.org/){: target="_blank" class="_"} member or
|
||||
join the Docker Limited Group.
|
||||
join the Docker Limited Group.
|
||||
|
||||
* Upon completion of Certification criteria, and acceptance by
|
||||
Docker, Publisher’s product page will be updated to reflect Certified status.
|
||||
Docker, Publisher’s product page will be updated to reflect Certified status.
|
||||
|
||||
#### Is there a fee to join the program?
|
||||
|
||||
|
@ -368,13 +373,13 @@ the initial period.
|
|||
|
||||
Many Official images will transition to the Docker Certified program and will be
|
||||
maintained and updated by the original owner of the software. Docker will
|
||||
continue to maintain of some base OS images and language frameworks.
|
||||
continue to maintain some of the base OS images and language frameworks.
|
||||
|
||||
#### How will certification of plugins be handled?
|
||||
|
||||
Docker Certification program recognizes the need to apply special scrutiny and
|
||||
testing to containers that access system level interfaces like storage volumes
|
||||
and networking. Docker identifies these special containers as “Plugins” which
|
||||
require additional testing by the publisher or Docker. These plugins employ the
|
||||
and networking. Docker identifies these special containers as “Plugins” which
|
||||
require additional testing by the publisher or Docker. These plugins employ the
|
||||
V2 Plugin Architecture that was first made available in 1.12 (experimental) and
|
||||
now available in Docker Enterprise Edition 17.03
|
||||
|
|
|
@ -0,0 +1,208 @@
|
|||
---
|
||||
description: Docker Store frequently asked questions
|
||||
keywords: Docker, docker, store, purchase images
|
||||
title: Docker Store Publisher FAQs
|
||||
---
|
||||
|
||||
## Certification program
|
||||
|
||||
### What is the certification program for images and plugins, and what are some benefits?
|
||||
|
||||
The Docker Certification program for Infrastructure, Images, and Plugins is
|
||||
designed for both technology partners and enterprise customers to recognize
|
||||
high-quality Containers and Plugins, provide collaborative support, and ensure
|
||||
compatibility with Docker EE. Docker Certification is aligned to the available
|
||||
Docker EE infrastructure and gives enterprises a trusted way to run more
|
||||
technology in containers with support from both Docker and the publisher. The
|
||||
[Docker Technology Partner guide](https://www.docker.com/partners/partner-program#/technology_partner)
|
||||
explains the Technology Partner program and the Docker Certification Program for
|
||||
Infrastructure, Images, and Plugins in more detail.
|
||||
|
||||
## Publisher signup and approval
|
||||
|
||||
### How do I get started with the publisher signup and approval process?
|
||||
|
||||
Start by applying to be a Docker Technology Partner at https://goto.docker.com/partner and click on "Publisher".
|
||||
|
||||
* Requires acceptance of partnership agreement for completion
|
||||
* Identify content that can be listed on Store and includes a support offering
|
||||
* Test your image against Docker Certified Infrastructure version 17.03 and
|
||||
above (Plugins must run on 17.03 and above).
|
||||
* Submit your image for Certification through the publisher portal. Docker will
|
||||
scan the image and work with you to address vulnerabilities. Docker will also
|
||||
conduct a best practices review of the image.
|
||||
* Be a TSAnet member or join the Docker Limited Group.
|
||||
* Upon completion of Certification criteria, and acceptance by Docker,
|
||||
Publisher’s product page will be updated to reflect Certified status.
|
||||
|
||||
### What is the Docker Store Publisher Program application timeline?
|
||||
|
||||
1-2 weeks.
|
||||
|
||||
### Can we have a group of people work on the same product and publish to Store? (This replicates our internal workflow where more than one person is working on Dockerizing our product.)
|
||||
|
||||
Yes. You can submit your content as a team.
|
||||
|
||||
## Product submission
|
||||
|
||||
### How long does it typically take to have an image approved?
|
||||
|
||||
2 Weeks.
|
||||
|
||||
### Once a product is published, what is the process for pushing a new build (1.2, 1.3)? Will we simply edit the same product, adding the newly tagged repos?
|
||||
|
||||
Edit the same product and update with the newly tagged repos.
|
||||
|
||||
### On the Information page, organization details are required. Do we need to fill those in again for every product we publish, or will they be carried over? And if we change them for a later image publish, will they be updated for all images published by our organization?
|
||||
|
||||
Organization details need to be filled in only once. Updating organization info
|
||||
once will update this for all images published by your organization.
|
||||
|
||||
### On the page for another vendor’s product on Docker store, I see the following chunks of data: How do these fields map to the following that are required in the publish process?
|
||||
|
||||
#### Fields I see
|
||||
|
||||
* Description
|
||||
* License
|
||||
* Feedback
|
||||
* Contributing Guidelines
|
||||
* Documentation
|
||||
|
||||
#### Fields in the publish process
|
||||
|
||||
* Product description
|
||||
* Support link
|
||||
* Documentation link
|
||||
* Screenshots
|
||||
* Tier description
|
||||
* Installation instructions
|
||||
|
||||
*Description* maps to *Product description* in the publish process.
|
||||
*License* maps to *Support Link* in the publish process.
|
||||
*Documentation* maps to *Documentation Link* in the publish process.
|
||||
*Feedback* is provided via customer reviews. https://store.docker.com/images/node?tab=reviews is an example.
|
||||
*Tier Description* is what you see once users get entitled to a plan. For instance, in https://store.docker.com/images/openmaptiles-openstreetmap-maps/plans/f1fc533a-76f0-493a-80a1-4e0a2b38a563?tab=instructions `A detailed street map of any place on a planet. Evaluation and non-production use. Production use license available separately` is what this publisher entered in the Tier description
|
||||
*Installation instructions* is documentation on installing your software. In this case the documentation is just `Just launch the container and the map is going to be available on port 80 - ready-to-use - with instructions and list of available styles.` (We recommend more details for any content thats a certification candidate).
|
||||
|
||||
### How can I remove a submission? I don’t want to currently have this image published as it is missing several information.
|
||||
|
||||
If you would like your submission removed, let us know by contacting us at
|
||||
publisher-support@docker.com. We are redesigning our publisher portal, and will
|
||||
present this capability to you soon. ETA for ability to delete submissions that
|
||||
are not yet live is Q4 2017.
|
||||
|
||||
### Can publishers publish multi-container apps?
|
||||
|
||||
Yes. Publishers can provide multiple images and add a compose file in the
|
||||
install instructions to describe how the multi-container app can be used. For
|
||||
now, we recommend asking publishers to look at this example from Microsoft
|
||||
https://store.docker.com/images/mssql-server-linux where they have Supported
|
||||
Tags listed in the Install instructions (you don't necessarily have to list it
|
||||
in the readme).
|
||||
|
||||
### Regarding source repo tags: it says not to use “latest”. However, if we want users to be able to download the images without specifying a tag, then presumably an image tagged “latest” is required. So how do we go about that?
|
||||
|
||||
You can not submit "latest" tags via the certification/store publish workflow.
|
||||
The reason we do this is so that users are aware of the exact version they
|
||||
download. To make the user experience easy we have a copy widget that users can
|
||||
use to copy the pull command and paste in their command line. Here is a
|
||||
[screenshot](https://user-images.githubusercontent.com/2453622/32354702-1bec633a-bfe8-11e7-9f80-a02c26b1b10c.png)
|
||||
to provide additional clarity.
|
||||
|
||||
### I added a new repository via the publish flow, but Store displays older repositories. What gives?
|
||||
|
||||
Go to `Plans and Pricing` section and update the repository in the `Plans and Pricing` page to the correct repository and resubmit. Here is a
|
||||
[screenshot](https://user-images.githubusercontent.com/2453622/32343986-85386882-bfc2-11e7-8afe-918056608f98.png)
|
||||
to add clarity. This is a UX issue on our side, and we plan on addressing it in
|
||||
Q4 '17.
|
||||
|
||||
### Can I submit more than 2 plans on Store?
|
||||
|
||||
Not yet. ETA to present more than 2 plans is Q1 2018.
|
||||
|
||||
## Licensing, terms and conditions, and pricing
|
||||
> **Note**: Check out BYOL Document first! (@kickingthetv TBD)
|
||||
|
||||
### What options are presented to users to pull an image?
|
||||
|
||||
We provide users the following options to access your software
|
||||
* logged-in users.
|
||||
* users who have accepted ToS
|
||||
* all users (including users without Docker Identity)
|
||||
Here is a [screenshot](https://user-images.githubusercontent.com/2453622/32067299-00cf1210-ba83-11e7-89f8-15deed6fef62.png) to describe how publishers can update the options provided to customers.
|
||||
|
||||
### If something is published as a free tier, for subscribed users only, does a user have to explicitly click Accept on the license terms for which we provide the link before they can download the image?
|
||||
Yes
|
||||
|
||||
### Do you have a license enforcement system for docker images sold on store? How are they protected, once they have been downloaded? What happens if a customer stop paying for the image I am selling after, let's say, 2 months?
|
||||
|
||||
We provide the following licensing option to customers:
|
||||
* Bring your own License or BYOL.
|
||||
|
||||
The expectation is that the publisher would take care of License Keys within the
|
||||
container. The License Key itself can be presented to the customer via Docker
|
||||
Store. We expect the Publisher to build short circuits into the container, so
|
||||
the container stops running once the License Key expires. Once a customer
|
||||
cancels, or if the customer subscription expires - the customer will not be able
|
||||
to download updates from the Store.
|
||||
|
||||
If a user cancels their subscription, they will not be able to download updates
|
||||
from the Store. The container may continue running. If you have a licensing
|
||||
scheme built into the container, the licensing scheme can be a forcing function
|
||||
and stop the container. (_We do not build anything into the container, it is up to the publisher_).
|
||||
|
||||
### How does a customer transition from a Trial to a Paid subscription? Question assumes these are two separate pulls from Store, or can they just drop in a license via Store?
|
||||
|
||||
Publisher can provide two different tokens or let customers use the same token
|
||||
and internally map the customer to a paid plan vs a free trial.
|
||||
|
||||
### What are Docker Store pricing plans like? Can I have metered pricing?
|
||||
|
||||
As a publisher you can charge a subscription fee every month in USD. The amount
|
||||
is determined by you. We are working on other pricing options. If you have
|
||||
feedback about pricing, send us an email at publisher-support@docker.com
|
||||
|
||||
### As a publisher, I have not setup any payment account. How does money get to me if my commercial content gets purchased by customers?
|
||||
|
||||
We (Docker) will cut you a check post a revenue share. Your Docker Store Vendor
|
||||
Agreement should cover specifics.
|
||||
|
||||
### How does Docker handle Export control? Can individual countries be specified if differing from Docker's list of embargoed countries?
|
||||
|
||||
We provide export control via blacklisting several countries, IPs and users
|
||||
based on the national export compliance database. Any export control we do is
|
||||
across all products, we do not selectively blacklist versions and products for
|
||||
specific groups. Send us an email at publisher-support if you have questions
|
||||
|
||||
## Analytics
|
||||
|
||||
### Where can I view customer insights?
|
||||
|
||||
Analytics reports are only available to Publishers with Certified or Commercial
|
||||
Content. Go to https://store.docker.com/publisher/center and click on "Actions"
|
||||
for the product you'd like to view analytics for. Here is a
|
||||
[screenshot](https://user-images.githubusercontent.com/2453622/32352202-6e87ce6e-bfdd-11e7-8fb0-08fe5a3e8930.png).
|
||||
|
||||
### How will metrics differentiate between Free and Paid subscribers?
|
||||
|
||||
The Analytics reports will contain information about the Subscriber and the
|
||||
relevant product plan. You will be able to identify subscribers for each plan
|
||||
for each product.
|
||||
|
||||
### Can I preview my submission before publishing?
|
||||
|
||||
Yes. You can preview your submission including the image you've submitted, the look and feel of the detail page and any markdown descriptions you might have.
|
||||
|
||||
Here are a few screenshots that illustrate the preview experience for markdown content.
|
||||
Product Description preview [screenshot](https://user-images.githubusercontent.com/2453622/32344591-9cd6b456-bfc4-11e7-9505-1f7e8235f812.png).
|
||||
Install instructions description preview [screenshot](https://user-images.githubusercontent.com/2453622/32344592-9cf2e234-bfc4-11e7-9e60-d773b62eae07.png).
|
||||
|
||||
## Other FAQs
|
||||
|
||||
### Can a publisher respond to a review of their product?
|
||||
|
||||
Yes
|
||||
|
||||
### Can I have a publish by date for my content?
|
||||
|
||||
Not yet. Potential ETA Q2 2018.
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Docker Store trust chain
|
||||
keywords: trust, chain, store
|
||||
keywords: trust, chain, store, security
|
||||
---
|
||||
|
||||
## For consumers
|
||||
|
@ -28,7 +28,7 @@ verify completion of the process when pulling an image from Docker Store:
|
|||
DOCKER_CONTENT_TRUST=1 docker run <image>
|
||||
```
|
||||
|
||||
## For producers
|
||||
## For publishers
|
||||
|
||||
The Docker Store has a thorough and well-defined certification process to ensure
|
||||
top-quality content from producers is delivered to consumers in a trusted
|
||||
|
|
Loading…
Reference in New Issue