mirror of
https://github.com/docker/docs.git
synced 2026-03-27 22:38:54 +07:00
* Raw content addition * Merge default-backend info here * Moved to interlock-vip info * Incorporate Euan's changes Add examples for sticky_session_cookie and redirects * Fix indentation issue * 1013: Move desktop ent content to docs-private * fix yaml spacing error * 1013 - Fix ToC indentation, missing images * 1010, 1011 - Update user instructions, add new screenshot * update Jenkinsfile * update jenkinsfile with very important protections So we're lucky we're not using the master branch to update our swarm services here because if we someone had pushed to it, it would have triggered a docs.docker.com build. This is becuase this Jenkinsfile, which has been merged from the docker.github.io project has the content for updating docs.docker.com and not beta.docs.docker.com. Maria and I have worked out a potential solution to this problem and I hope to implement it today. * Fix the DDE Overview ToC * make Jenkinsfile serve private and public docs After a couple of Jenkins-based mix-ups it became obvious we needed a Jenkinsfile that would serve both public and private projects, that we could move between repos without worry. This Jenkinsfile knows which images to build and push and which swarm services to update because of the use of git_url and branch conditions. * make jenkinsfile serve private and public docs After a couple of Jenkins-based mix-ups it became obvious we needed a Jenkinsfile that would serve both public and private projects, that we could move between repos without worry. This Jenkinsfile knows which images to build and push and which swarm services to update because of the use of git_url and branch conditions. * Address review comments from Ben and GuillaumeT * fix image path * Fix review comments from Mathieu and Guillaume * fix pending review comments * Add documentation for --service-cluster-ip-range flag https://github.com/docker/orca/pull/16417 adds support to make service cluster IP range subnet configurable for UCP install via the --service-cluster-ip-range flag * Added a period. * Add documentation for UCP install page Signed-off-by: Arko Dasgupta <arko.dasgupta@docker.com> * Add OS support statement * Add Assemble docs * Update ToC to include Assemble topics * Remove version pack install section * Adding APP CLI guide for customer beta2 Signed-off-by: Nigel Poulton <nigelpoulton@hotmail.com> * Fix broken cross-refs * fix the navigation * Update version packs The default version pack is now 3.0 We don't publicly advertise the Community version pack as its usage is for internal testing only. Signed-off-by: Mathieu Champlon <mathieu.champlon@docker.com> * bumped headings by one level + minor updates * 1006 - Adding Docker Template content * Update ToC to add Docker template entry * Adding the CLI reference topic and an updated toc * Added CLI reference, updated toc, fixed broken links * replaced hardcoded names with 'username' * Add registry-cli plugin reference Signed-off-by: Sebastiaan van Stijn <github@gone.nl> * Update docker_registry docs * Add docker template reference docs Signed-off-by: Sebastiaan van Stijn <github@gone.nl> * Raw content addition * Moved to interlock-vip info * Fix indentation issue * 1013: Move desktop ent content to docs-private * fix yaml spacing error * 1013 - Fix ToC indentation, missing images * 1010, 1011 - Update user instructions, add new screenshot * Fix the DDE Overview ToC * Sync forked amberjack branch with docs-private (#1068) * Service labels info * Tuning info * Update info * New deploy landing page info * Offline install info * New production info * New upgrade info * New landing page info * Canary info * Context info * Landing page info * Interlock VIP mode info * Labels reference info * Redirects info * Service clusters info * Sessions info * SSL info * TLS info * Websockets info * Incorporated latest change from Netlify site * Images * Moved to images directory * Moved info * Moved info * Moved info * Moved info * Moved info * Changed default port based on github.io update * Add HideInfoHeaders based on github.io update * HideInfoHeaders in code sample * Wording and tag updates * Tag and link updates * Fix some minor issues in vfs storage-driver section - Fix mention of `storage-drivers` instead of `storage-opts` - Repeat the selected driver in the second `daemon.json` example - Remove mention of `CE` as this driver can be used on Docker EE (although it's mainly intending for debugging, so not a "supported" driver) Signed-off-by: Sebastiaan van Stijn <github@gone.nl> * Wording cleanup * Intra-doc links * Link titles * Wording and link changes * Remove site URL from link path * Removed Kube GC Known issue from UCP 3.1.4 * Update release-notes.md DTR info Edits on 2.5.10 and 2.6.4 entries Add upgrade warning information Updated engine info per Andrew's input Added Component table info per Mark * Update DTR release notes * Fixed dates * Fixed formatting issues * Temporary - review later * Remove stage compose file for docs-private * Update compose-version to 1.24.0 https://github.com/docker/compose/releases/tag/1.24.0 Signed-off-by: Sebastiaan van Stijn <github@gone.nl> * re-add removed Jenkinsfile * Added moby#36951 to 18.09.4 release notes * Wording and link updates * Updated Offline Bundles for March Patch * Update release notes for 1.23.2 and 1.24.0 Signed-off-by: Ulysses Souza <ulysses.souza@docker.com> * Link to client bundle instructions * Minor edits - Moved dates to be consistent with other release notes - Made grammar a little more consistent * Update index.md : #### host or none - network (#8425) * Update index.md : #### host or none - network Choosing specific network for a build instead of the [network_mode]. network_mode doesn't work when providing a network for a particular build rather it skips the block and move to next service thus using network. * Minor syntax updates * Update index.md those changes were a result of conflict that i tried to resolve. * add slack webhook to Jenkinsfile * add slack webhook to Jenkinsfile * Update release-notes.md * add slack webhook to Jenkinsfile * Fix labels-reference link * Add pip dependencies to compose doc for alpine (#8554) * Add pip dependencies to compose doc for alpine Signed-off-by: Ulysses Souza <ulysses.souza@docker.com> * Minor edit * Audit branch (#8564) * Update trust-with-remote-ucp.md * Fix link texts * Addresses 8446 * Update trust_delegation.md * - Addresses 8446 - Cleans up broken links - Fixes vague link texts Addresses 8446 Update trust_delegation.md * Update running_ssh_service.md * Update running_ssh_service.md Fixed formatting and wording. Also moved note above the code. * Update running_ssh_service.md Fixed typo. * Compose: Update build docs, Add --quiet flag * Fix destroy reference page link Relates to https://github.com/docker/docker.github.io/pull/8441 * Rephrase Ubuntu 14.04 note * Revert "Compose: Update build docs, Add --quiet flag" * # This is a combination of 4 commits. - Addresses 8446 - Cleans up broken links - Fixes vague link texts Addresses 8446 Update trust_delegation.md - Addresses 8446 - Cleans up broken links - Fixes vague link texts Addresses 8446 Update trust_delegation.md Update trust-with-remote-ucp.md - Addresses 8446 - Cleans up broken links - Fixes vague link texts Fix destroy reference page link Relates to https://github.com/docker/docker.github.io/pull/8441 * - Addresses 8446 - Cleans up broken links - Fixes vague link texts * Addresses 8446 with text and link cleanup. * Update syntax language from none to bash * Update index.md * Remove merge conflict * Include Ubuntu version in Dockerfile more recent versions of Ubuntu don't work with the given Dockerfile * Adding Azure note (#8566) * Adding Azure note * Rephrase additional line and update link * Fix typo * Update configs.md * Adding Azure note (#8566) * Adding Azure note * Rephrase additional line and update link * Final edit * Updated the 3.1.4 release notes to include Centos 7.6 support * update jenkinsfile with very important protections So we're lucky we're not using the master branch to update our swarm services here because if we someone had pushed to it, it would have triggered a docs.docker.com build. This is becuase this Jenkinsfile, which has been merged from the docker.github.io project has the content for updating docs.docker.com and not beta.docs.docker.com. Maria and I have worked out a potential solution to this problem and I hope to implement it today. * add protection to Jenkinsfile * fix git url protection in jenkinsfile * typo fix friendlyname -> friendlyhello * Storage backend data migration updates Fix incorrect API command, add backup updates Update incorrect commands * --unmanaged-cni is not a valid option for upgrade * Update to UCP known issues * Update UCP release notes * Update release-notes.md * make jenkinsfile serve private and public docs After a couple of Jenkins-based mix-ups it became obvious we needed a Jenkinsfile that would serve both public and private projects, that we could move between repos without worry. This Jenkinsfile knows which images to build and push and which swarm services to update because of the use of git_url and branch conditions. * make jenkinsfile serve private and public docs After a couple of Jenkins-based mix-ups it became obvious we needed a Jenkinsfile that would serve both public and private projects, that we could move between repos without worry. This Jenkinsfile knows which images to build and push and which swarm services to update because of the use of git_url and branch conditions. * make jenkinsfile serve private and public docs After a couple of Jenkins-based mix-ups it became obvious we needed a Jenkinsfile that would serve both public and private projects, that we could move between repos without worry. This Jenkinsfile knows which images to build and push and which swarm services to update because of the use of git_url and branch conditions. * Add HSTS warning for specifying --dtr-external-url * Typo on logging driver name * Addressed engineering feedback * Netlify redirects interlock (#8595) * Added netlify redirect * Remove redundant "be" * Update the "role-based access control" link On page "https://docs.docker.com/ee/ucp/user-access/", update the hyperlink "role-based access control" to point to "https://docs.docker.com/ee/ucp/authorization/" instead of "https://docs.docker.com/ee/access-control". * Add UCP user password limitation * Revert "Updated the UCP 3.1.4 release notes to include Centos 7.6 support" * Adding emphasis on Static IP requirement (#7276) * Adding emphasis on Static IP requirement We had a customer (00056641) who changed IPs like this all at once, and they are in a messy status. We should make it clear that static IP is absolutely required. ```***-ucp-0-dw original="10.15.89.6" updated="10.15.89.7" ***-ucp-1-dw original="10.15.89.5" updated="10.15.89.6" ***-ucp-2-dw original="10.15.89.7" updated="10.15.89.5" ``` * Link to prod requirement of static IP addresses * Adding warning about layer7 config (#8617) * Adding warning about layer7 config Adding warning about layer7 config not being included in the backup * Text edit * Sync published with master (#8619) * Update install.md add note: 8 character password minimum length * Include Ubuntu version in Dockerfile more recent versions of Ubuntu don't work with the given Dockerfile * Updated the 3.1.4 release notes to include Centos 7.6 support * Remove redundant "be" * Update the "role-based access control" link On page "https://docs.docker.com/ee/ucp/user-access/", update the hyperlink "role-based access control" to point to "https://docs.docker.com/ee/ucp/authorization/" instead of "https://docs.docker.com/ee/access-control". * Add UCP user password limitation * Revert "Updated the UCP 3.1.4 release notes to include Centos 7.6 support" * Adding emphasis on Static IP requirement (#7276) * Adding emphasis on Static IP requirement We had a customer (00056641) who changed IPs like this all at once, and they are in a messy status. We should make it clear that static IP is absolutely required. ```***-ucp-0-dw original="10.15.89.6" updated="10.15.89.7" ***-ucp-1-dw original="10.15.89.5" updated="10.15.89.6" ***-ucp-2-dw original="10.15.89.7" updated="10.15.89.5" ``` * Link to prod requirement of static IP addresses * Adding warning about layer7 config (#8617) * Adding warning about layer7 config Adding warning about layer7 config not being included in the backup * Text edit * Add the 'Install on Azure' page back to the TOC for UCP 3.0 (#8623) * Add the Install on Azure page back to the UCP 3.0 TOC * Fix the copy / paste error on Install on UCP * Fix Liquid syntax error in "reset user password" ``` Liquid Warning: Liquid syntax error (line 33): Expected end_of_string but found number in "{{ index .Spec.TaskTemplate.ContainerSpec.Args 0 }}" in ee/ucp/authorization/reset-user-password.md ``` Signed-off-by: Sebastiaan van Stijn <github@gone.nl> * Fix link text * Patch release notes 04 2019 (#8633) * Add version update for Engine/UCP * Add DTR version updates * Added April Offline Bundles * Engine release notes update * Update release-notes.md * Update release-notes.md * Minor edit * Minor edit * Add 2.4.11 DTR info * Remove statement about supporting CNI plugin (#8594) * Remove statement about supporting CNI plugin * Update install-cni-plugin.md * Removing internal JIRA links * Use site parameter to use latest compose file versions in examples (#8630) * Use site parameter to use latest compose file versions in examples Make sure that examples use the latest version of the compose file format, to encourage using the latest version, and to prevent users from running into "not supported by this version" problems when copy/pasting, and combining examples that use different versions. Also add a note about `version: x` not being equivalent to `version: x.latest`. Note that there are still some examples using fixed versions in the UCP sections; we need to evaluate those to make sure the right (and supported) versions are used for UCP (which may be different than "latest"). Signed-off-by: Sebastiaan van Stijn <github@gone.nl> * Address some v3/v2 issues, and YAML syntax error Signed-off-by: Sebastiaan van Stijn <github@gone.nl> * Minor edit * Final updates - Added note around v2 and v3 versioning - Updated note for v3 to match the v2 update * compose-file: remove reference to custom init path (#8628) * compose-file: remove reference to custom init path This option was never functional, and was not intended to be added to the "container create" API, so let's remove it, because it has been removed in Docker 17.05, and was broken in versions before that; see - docker/docker-py#2309 Remove init_path from create - moby/moby#32355 --init-path does not seem to work - moby/moby#32470 remove --init-path from client Signed-off-by: Sebastiaan van Stijn <github@gone.nl> * Update index.md * Remove extra which Change below line From AUFS, which can suffer noticeable latencies when searching for files in images with many layers To AUFS can suffer noticeable latencies when searching for files in images with many layers * Fix a broken link * Add documentation for --service-cluster-ip-range flag https://github.com/docker/orca/pull/16417 adds support to make service cluster IP range subnet configurable for UCP install via the --service-cluster-ip-range flag * Added a period. * Add documentation for UCP install page Signed-off-by: Arko Dasgupta <arko.dasgupta@docker.com> * Redirect to current version of page, since it's reached EOL * Revert "Netlify redirects interlock (#8595)" This reverts commita7793edc74. * UCP Install on Azure Patch (#8522) * Fix grammar on the 2nd pre-req, and did markdown formatting on the rest :) * Correct Pod-CIDR Warning * Content cleanup Please check that I haven't changed the meaning of the updated prerequisites. * Create a new section on configuring the IP Count value, also responded to feedback from Follis, Steve R and Xinfeng. * Incorporated Steven F's feedback and Issue 8551 * Provide a warning when setting a small IP Count variable * Final edits * Update install-on-azure.md * Following feedback I have expanded on the 0644 azure.json file permissions and Added the --existing-config file to the UCP install command * Removed Orchestrator Tag Pre Req from Azure Docs * Clarifying need for 0644 permissions * Improved backup commands (#8597) * Improved backup commands DTR image backup command improvements: 1. Local and NFS mount image backup commands were invalid (incorrectly used -C flag). Replaced them with commands that work. 2. The new commands automatically populate the correct replica ID and add a datestamp to the backup filename. DTR Metadata backup command improvements: DTR metadata backups are more difficult than they need to be and generate many support tickets. I updated the DTR command to avoid common user pitfalls: 1. The prior metadata backup command was subject to user error. Improved the command to automatically collect the DTR version and select a replica. 2. Improved security of the command by automatically collecting UCP CA certificate for verification rather than using --ucp-insecure-tls flag. 3. Improved the backup filename by adding the backed-up version information and date of backup. Knowledge of the version information is required for restoring a backup. 4. Described these improvements for the user. Image backup commands were tested with local and NFS image storage. The metadata backup command was tested by running it directly on a DTR node and through a UCP client bundle with multiple replicas. * Technical and editorial review * More edits * line 8; remove unnecessary a (#8672) * line 8; remove unnecessary a * Minor edit * Updated the UCP Logging page to include UCP 3.1 screenshots (#8646) * Added examples (#8599) * Added examples Added examples with more detail and automation to help customers backup DTR without creating support tickets. * Linked to explanation of example command @omegamormegil I removed the example with prepopulated fields, as I think it doesn't add much, and will only add confusion. Users who need this much detail can run the basic command and follow the terminal prompts. We can re-add in a follow-up PR, if you think that example is crucial to this page. * Remove deadlink in the Interlock ToC (#8668) * Found a deadlink in the Interlock ToC * Added Redirect * Sync published with master (#8673) * Revert "Netlify redirects interlock (#8595)" This reverts commita7793edc74. * UCP Install on Azure Patch (#8522) * Fix grammar on the 2nd pre-req, and did markdown formatting on the rest :) * Correct Pod-CIDR Warning * Content cleanup Please check that I haven't changed the meaning of the updated prerequisites. * Create a new section on configuring the IP Count value, also responded to feedback from Follis, Steve R and Xinfeng. * Incorporated Steven F's feedback and Issue 8551 * Provide a warning when setting a small IP Count variable * Final edits * Update install-on-azure.md * Following feedback I have expanded on the 0644 azure.json file permissions and Added the --existing-config file to the UCP install command * Removed Orchestrator Tag Pre Req from Azure Docs * Clarifying need for 0644 permissions * Improved backup commands (#8597) * Improved backup commands DTR image backup command improvements: 1. Local and NFS mount image backup commands were invalid (incorrectly used -C flag). Replaced them with commands that work. 2. The new commands automatically populate the correct replica ID and add a datestamp to the backup filename. DTR Metadata backup command improvements: DTR metadata backups are more difficult than they need to be and generate many support tickets. I updated the DTR command to avoid common user pitfalls: 1. The prior metadata backup command was subject to user error. Improved the command to automatically collect the DTR version and select a replica. 2. Improved security of the command by automatically collecting UCP CA certificate for verification rather than using --ucp-insecure-tls flag. 3. Improved the backup filename by adding the backed-up version information and date of backup. Knowledge of the version information is required for restoring a backup. 4. Described these improvements for the user. Image backup commands were tested with local and NFS image storage. The metadata backup command was tested by running it directly on a DTR node and through a UCP client bundle with multiple replicas. * Technical and editorial review * More edits * line 8; remove unnecessary a (#8672) * line 8; remove unnecessary a * Minor edit * Updated the UCP Logging page to include UCP 3.1 screenshots (#8646) * Added examples (#8599) * Added examples Added examples with more detail and automation to help customers backup DTR without creating support tickets. * Linked to explanation of example command @omegamormegil I removed the example with prepopulated fields, as I think it doesn't add much, and will only add confusion. Users who need this much detail can run the basic command and follow the terminal prompts. We can re-add in a follow-up PR, if you think that example is crucial to this page. * Remove deadlink in the Interlock ToC (#8668) * Found a deadlink in the Interlock ToC * Added Redirect * Published (#8674) * add slack webhook to Jenkinsfile * make jenkinsfile serve private and public docs After a couple of Jenkins-based mix-ups it became obvious we needed a Jenkinsfile that would serve both public and private projects, that we could move between repos without worry. This Jenkinsfile knows which images to build and push and which swarm services to update because of the use of git_url and branch conditions. * Sync published with master (#8619) * Update install.md add note: 8 character password minimum length * Include Ubuntu version in Dockerfile more recent versions of Ubuntu don't work with the given Dockerfile * Updated the 3.1.4 release notes to include Centos 7.6 support * Remove redundant "be" * Update the "role-based access control" link On page "https://docs.docker.com/ee/ucp/user-access/", update the hyperlink "role-based access control" to point to "https://docs.docker.com/ee/ucp/authorization/" instead of "https://docs.docker.com/ee/access-control". * Add UCP user password limitation * Revert "Updated the UCP 3.1.4 release notes to include Centos 7.6 support" * Adding emphasis on Static IP requirement (#7276) * Adding emphasis on Static IP requirement We had a customer (00056641) who changed IPs like this all at once, and they are in a messy status. We should make it clear that static IP is absolutely required. ```***-ucp-0-dw original="10.15.89.6" updated="10.15.89.7" ***-ucp-1-dw original="10.15.89.5" updated="10.15.89.6" ***-ucp-2-dw original="10.15.89.7" updated="10.15.89.5" ``` * Link to prod requirement of static IP addresses * Adding warning about layer7 config (#8617) * Adding warning about layer7 config Adding warning about layer7 config not being included in the backup * Text edit * Sync published with master (#8673) * Revert "Netlify redirects interlock (#8595)" This reverts commita7793edc74. * UCP Install on Azure Patch (#8522) * Fix grammar on the 2nd pre-req, and did markdown formatting on the rest :) * Correct Pod-CIDR Warning * Content cleanup Please check that I haven't changed the meaning of the updated prerequisites. * Create a new section on configuring the IP Count value, also responded to feedback from Follis, Steve R and Xinfeng. * Incorporated Steven F's feedback and Issue 8551 * Provide a warning when setting a small IP Count variable * Final edits * Update install-on-azure.md * Following feedback I have expanded on the 0644 azure.json file permissions and Added the --existing-config file to the UCP install command * Removed Orchestrator Tag Pre Req from Azure Docs * Clarifying need for 0644 permissions * Improved backup commands (#8597) * Improved backup commands DTR image backup command improvements: 1. Local and NFS mount image backup commands were invalid (incorrectly used -C flag). Replaced them with commands that work. 2. The new commands automatically populate the correct replica ID and add a datestamp to the backup filename. DTR Metadata backup command improvements: DTR metadata backups are more difficult than they need to be and generate many support tickets. I updated the DTR command to avoid common user pitfalls: 1. The prior metadata backup command was subject to user error. Improved the command to automatically collect the DTR version and select a replica. 2. Improved security of the command by automatically collecting UCP CA certificate for verification rather than using --ucp-insecure-tls flag. 3. Improved the backup filename by adding the backed-up version information and date of backup. Knowledge of the version information is required for restoring a backup. 4. Described these improvements for the user. Image backup commands were tested with local and NFS image storage. The metadata backup command was tested by running it directly on a DTR node and through a UCP client bundle with multiple replicas. * Technical and editorial review * More edits * line 8; remove unnecessary a (#8672) * line 8; remove unnecessary a * Minor edit * Updated the UCP Logging page to include UCP 3.1 screenshots (#8646) * Added examples (#8599) * Added examples Added examples with more detail and automation to help customers backup DTR without creating support tickets. * Linked to explanation of example command @omegamormegil I removed the example with prepopulated fields, as I think it doesn't add much, and will only add confusion. Users who need this much detail can run the basic command and follow the terminal prompts. We can re-add in a follow-up PR, if you think that example is crucial to this page. * Remove deadlink in the Interlock ToC (#8668) * Found a deadlink in the Interlock ToC * Added Redirect * Trying to fix command rendering of '--format "{{ .Names }}"' (#8678) * Trying to fix command rendering of '--format "{{ .Names }}"' --format "{{ .Names }}" is showing up in the markup but is rendering as --format "" in the published version. Added {% raw %} tags to try to fix. * Fixed heading inconsistency * Trying to fix command rendering of '--format "{{ .Names }}"' (#8677) * Trying to fix command rendering of '--format "{{ .Names }}"' --format "{{ .Names }}" is showing up in the markup but is rendering as --format "" in the published version. Added {% raw %} tags to try to fix. * Update concatenated to chained * Minor fix * interlock --> ucp-interlock (#8675) * interlock --> ucp-interlock * Fixed code samples - Use the latest UCP version and the latest ucp-interlock image - Leverage ucp page version Jekyll variable * Typo * Final syntax fix * Update backup.md * Sync published with master (#8685) * Revert "Netlify redirects interlock (#8595)" This reverts commita7793edc74. * UCP Install on Azure Patch (#8522) * Fix grammar on the 2nd pre-req, and did markdown formatting on the rest :) * Correct Pod-CIDR Warning * Content cleanup Please check that I haven't changed the meaning of the updated prerequisites. * Create a new section on configuring the IP Count value, also responded to feedback from Follis, Steve R and Xinfeng. * Incorporated Steven F's feedback and Issue 8551 * Provide a warning when setting a small IP Count variable * Final edits * Update install-on-azure.md * Following feedback I have expanded on the 0644 azure.json file permissions and Added the --existing-config file to the UCP install command * Removed Orchestrator Tag Pre Req from Azure Docs * Clarifying need for 0644 permissions * Improved backup commands (#8597) * Improved backup commands DTR image backup command improvements: 1. Local and NFS mount image backup commands were invalid (incorrectly used -C flag). Replaced them with commands that work. 2. The new commands automatically populate the correct replica ID and add a datestamp to the backup filename. DTR Metadata backup command improvements: DTR metadata backups are more difficult than they need to be and generate many support tickets. I updated the DTR command to avoid common user pitfalls: 1. The prior metadata backup command was subject to user error. Improved the command to automatically collect the DTR version and select a replica. 2. Improved security of the command by automatically collecting UCP CA certificate for verification rather than using --ucp-insecure-tls flag. 3. Improved the backup filename by adding the backed-up version information and date of backup. Knowledge of the version information is required for restoring a backup. 4. Described these improvements for the user. Image backup commands were tested with local and NFS image storage. The metadata backup command was tested by running it directly on a DTR node and through a UCP client bundle with multiple replicas. * Technical and editorial review * More edits * line 8; remove unnecessary a (#8672) * line 8; remove unnecessary a * Minor edit * Updated the UCP Logging page to include UCP 3.1 screenshots (#8646) * Added examples (#8599) * Added examples Added examples with more detail and automation to help customers backup DTR without creating support tickets. * Linked to explanation of example command @omegamormegil I removed the example with prepopulated fields, as I think it doesn't add much, and will only add confusion. Users who need this much detail can run the basic command and follow the terminal prompts. We can re-add in a follow-up PR, if you think that example is crucial to this page. * Remove deadlink in the Interlock ToC (#8668) * Found a deadlink in the Interlock ToC * Added Redirect * Published (#8674) * add slack webhook to Jenkinsfile * make jenkinsfile serve private and public docs After a couple of Jenkins-based mix-ups it became obvious we needed a Jenkinsfile that would serve both public and private projects, that we could move between repos without worry. This Jenkinsfile knows which images to build and push and which swarm services to update because of the use of git_url and branch conditions. * Sync published with master (#8619) * Update install.md add note: 8 character password minimum length * Include Ubuntu version in Dockerfile more recent versions of Ubuntu don't work with the given Dockerfile * Updated the 3.1.4 release notes to include Centos 7.6 support * Remove redundant "be" * Update the "role-based access control" link On page "https://docs.docker.com/ee/ucp/user-access/", update the hyperlink "role-based access control" to point to "https://docs.docker.com/ee/ucp/authorization/" instead of "https://docs.docker.com/ee/access-control". * Add UCP user password limitation * Revert "Updated the UCP 3.1.4 release notes to include Centos 7.6 support" * Adding emphasis on Static IP requirement (#7276) * Adding emphasis on Static IP requirement We had a customer (00056641) who changed IPs like this all at once, and they are in a messy status. We should make it clear that static IP is absolutely required. ```***-ucp-0-dw original="10.15.89.6" updated="10.15.89.7" ***-ucp-1-dw original="10.15.89.5" updated="10.15.89.6" ***-ucp-2-dw original="10.15.89.7" updated="10.15.89.5" ``` * Link to prod requirement of static IP addresses * Adding warning about layer7 config (#8617) * Adding warning about layer7 config Adding warning about layer7 config not being included in the backup * Text edit * Sync published with master (#8673) * Revert "Netlify redirects interlock (#8595)" This reverts commita7793edc74. * UCP Install on Azure Patch (#8522) * Fix grammar on the 2nd pre-req, and did markdown formatting on the rest :) * Correct Pod-CIDR Warning * Content cleanup Please check that I haven't changed the meaning of the updated prerequisites. * Create a new section on configuring the IP Count value, also responded to feedback from Follis, Steve R and Xinfeng. * Incorporated Steven F's feedback and Issue 8551 * Provide a warning when setting a small IP Count variable * Final edits * Update install-on-azure.md * Following feedback I have expanded on the 0644 azure.json file permissions and Added the --existing-config file to the UCP install command * Removed Orchestrator Tag Pre Req from Azure Docs * Clarifying need for 0644 permissions * Improved backup commands (#8597) * Improved backup commands DTR image backup command improvements: 1. Local and NFS mount image backup commands were invalid (incorrectly used -C flag). Replaced them with commands that work. 2. The new commands automatically populate the correct replica ID and add a datestamp to the backup filename. DTR Metadata backup command improvements: DTR metadata backups are more difficult than they need to be and generate many support tickets. I updated the DTR command to avoid common user pitfalls: 1. The prior metadata backup command was subject to user error. Improved the command to automatically collect the DTR version and select a replica. 2. Improved security of the command by automatically collecting UCP CA certificate for verification rather than using --ucp-insecure-tls flag. 3. Improved the backup filename by adding the backed-up version information and date of backup. Knowledge of the version information is required for restoring a backup. 4. Described these improvements for the user. Image backup commands were tested with local and NFS image storage. The metadata backup command was tested by running it directly on a DTR node and through a UCP client bundle with multiple replicas. * Technical and editorial review * More edits * line 8; remove unnecessary a (#8672) * line 8; remove unnecessary a * Minor edit * Updated the UCP Logging page to include UCP 3.1 screenshots (#8646) * Added examples (#8599) * Added examples Added examples with more detail and automation to help customers backup DTR without creating support tickets. * Linked to explanation of example command @omegamormegil I removed the example with prepopulated fields, as I think it doesn't add much, and will only add confusion. Users who need this much detail can run the basic command and follow the terminal prompts. We can re-add in a follow-up PR, if you think that example is crucial to this page. * Remove deadlink in the Interlock ToC (#8668) * Found a deadlink in the Interlock ToC * Added Redirect * Trying to fix command rendering of '--format "{{ .Names }}"' (#8678) * Trying to fix command rendering of '--format "{{ .Names }}"' --format "{{ .Names }}" is showing up in the markup but is rendering as --format "" in the published version. Added {% raw %} tags to try to fix. * Fixed heading inconsistency * Trying to fix command rendering of '--format "{{ .Names }}"' (#8677) * Trying to fix command rendering of '--format "{{ .Names }}"' --format "{{ .Names }}" is showing up in the markup but is rendering as --format "" in the published version. Added {% raw %} tags to try to fix. * Update concatenated to chained * Minor fix * interlock --> ucp-interlock (#8675) * interlock --> ucp-interlock * Fixed code samples - Use the latest UCP version and the latest ucp-interlock image - Leverage ucp page version Jekyll variable * Typo * Final syntax fix * Update backup.md * Removed Reference to Interlock Preview Image, and added relevant UCP Image Org and Tag * Fix syntax error which caused the master build to fail * Preview page.ucp_org output * Sync published with master (#8693) (#8694) * Adding Azure note (#8566) * Adding Azure note * Rephrase additional line and update link * Revert "Netlify redirects interlock (#8595)" This reverts commita7793edc74. * UCP Install on Azure Patch (#8522) * Fix grammar on the 2nd pre-req, and did markdown formatting on the rest :) * Correct Pod-CIDR Warning * Content cleanup Please check that I haven't changed the meaning of the updated prerequisites. * Create a new section on configuring the IP Count value, also responded to feedback from Follis, Steve R and Xinfeng. * Incorporated Steven F's feedback and Issue 8551 * Provide a warning when setting a small IP Count variable * Final edits * Update install-on-azure.md * Following feedback I have expanded on the 0644 azure.json file permissions and Added the --existing-config file to the UCP install command * Removed Orchestrator Tag Pre Req from Azure Docs * Clarifying need for 0644 permissions * Improved backup commands (#8597) * Improved backup commands DTR image backup command improvements: 1. Local and NFS mount image backup commands were invalid (incorrectly used -C flag). Replaced them with commands that work. 2. The new commands automatically populate the correct replica ID and add a datestamp to the backup filename. DTR Metadata backup command improvements: DTR metadata backups are more difficult than they need to be and generate many support tickets. I updated the DTR command to avoid common user pitfalls: 1. The prior metadata backup command was subject to user error. Improved the command to automatically collect the DTR version and select a replica. 2. Improved security of the command by automatically collecting UCP CA certificate for verification rather than using --ucp-insecure-tls flag. 3. Improved the backup filename by adding the backed-up version information and date of backup. Knowledge of the version information is required for restoring a backup. 4. Described these improvements for the user. Image backup commands were tested with local and NFS image storage. The metadata backup command was tested by running it directly on a DTR node and through a UCP client bundle with multiple replicas. * Technical and editorial review * More edits * line 8; remove unnecessary a (#8672) * line 8; remove unnecessary a * Minor edit * Updated the UCP Logging page to include UCP 3.1 screenshots (#8646) * Added examples (#8599) * Added examples Added examples with more detail and automation to help customers backup DTR without creating support tickets. * Linked to explanation of example command @omegamormegil I removed the example with prepopulated fields, as I think it doesn't add much, and will only add confusion. Users who need this much detail can run the basic command and follow the terminal prompts. We can re-add in a follow-up PR, if you think that example is crucial to this page. * Remove deadlink in the Interlock ToC (#8668) * Found a deadlink in the Interlock ToC * Added Redirect * Published (#8674) * add slack webhook to Jenkinsfile * make jenkinsfile serve private and public docs After a couple of Jenkins-based mix-ups it became obvious we needed a Jenkinsfile that would serve both public and private projects, that we could move between repos without worry. This Jenkinsfile knows which images to build and push and which swarm services to update because of the use of git_url and branch conditions. * Sync published with master (#8619) * Update install.md add note: 8 character password minimum length * Include Ubuntu version in Dockerfile more recent versions of Ubuntu don't work with the given Dockerfile * Updated the 3.1.4 release notes to include Centos 7.6 support * Remove redundant "be" * Update the "role-based access control" link On page "https://docs.docker.com/ee/ucp/user-access/", update the hyperlink "role-based access control" to point to "https://docs.docker.com/ee/ucp/authorization/" instead of "https://docs.docker.com/ee/access-control". * Add UCP user password limitation * Revert "Updated the UCP 3.1.4 release notes to include Centos 7.6 support" * Adding emphasis on Static IP requirement (#7276) * Adding emphasis on Static IP requirement We had a customer (00056641) who changed IPs like this all at once, and they are in a messy status. We should make it clear that static IP is absolutely required. ```***-ucp-0-dw original="10.15.89.6" updated="10.15.89.7" ***-ucp-1-dw original="10.15.89.5" updated="10.15.89.6" ***-ucp-2-dw original="10.15.89.7" updated="10.15.89.5" ``` * Link to prod requirement of static IP addresses * Adding warning about layer7 config (#8617) * Adding warning about layer7 config Adding warning about layer7 config not being included in the backup * Text edit * Sync published with master (#8673) * Revert "Netlify redirects interlock (#8595)" This reverts commita7793edc74. * UCP Install on Azure Patch (#8522) * Fix grammar on the 2nd pre-req, and did markdown formatting on the rest :) * Correct Pod-CIDR Warning * Content cleanup Please check that I haven't changed the meaning of the updated prerequisites. * Create a new section on configuring the IP Count value, also responded to feedback from Follis, Steve R and Xinfeng. * Incorporated Steven F's feedback and Issue 8551 * Provide a warning when setting a small IP Count variable * Final edits * Update install-on-azure.md * Following feedback I have expanded on the 0644 azure.json file permissions and Added the --existing-config file to the UCP install command * Removed Orchestrator Tag Pre Req from Azure Docs * Clarifying need for 0644 permissions * Improved backup commands (#8597) * Improved backup commands DTR image backup command improvements: 1. Local and NFS mount image backup commands were invalid (incorrectly used -C flag). Replaced them with commands that work. 2. The new commands automatically populate the correct replica ID and add a datestamp to the backup filename. DTR Metadata backup command improvements: DTR metadata backups are more difficult than they need to be and generate many support tickets. I updated the DTR command to avoid common user pitfalls: 1. The prior metadata backup command was subject to user error. Improved the command to automatically collect the DTR version and select a replica. 2. Improved security of the command by automatically collecting UCP CA certificate for verification rather than using --ucp-insecure-tls flag. 3. Improved the backup filename by adding the backed-up version information and date of backup. Knowledge of the version information is required for restoring a backup. 4. Described these improvements for the user. Image backup commands were tested with local and NFS image storage. The metadata backup command was tested by running it directly on a DTR node and through a UCP client bundle with multiple replicas. * Technical and editorial review * More edits * line 8; remove unnecessary a (#8672) * line 8; remove unnecessary a * Minor edit * Updated the UCP Logging page to include UCP 3.1 screenshots (#8646) * Added examples (#8599) * Added examples Added examples with more detail and automation to help customers backup DTR without creating support tickets. * Linked to explanation of example command @omegamormegil I removed the example with prepopulated fields, as I think it doesn't add much, and will only add confusion. Users who need this much detail can run the basic command and follow the terminal prompts. We can re-add in a follow-up PR, if you think that example is crucial to this page. * Remove deadlink in the Interlock ToC (#8668) * Found a deadlink in the Interlock ToC * Added Redirect * Trying to fix command rendering of '--format "{{ .Names }}"' (#8678) * Trying to fix command rendering of '--format "{{ .Names }}"' --format "{{ .Names }}" is showing up in the markup but is rendering as --format "" in the published version. Added {% raw %} tags to try to fix. * Fixed heading inconsistency * Trying to fix command rendering of '--format "{{ .Names }}"' (#8677) * Trying to fix command rendering of '--format "{{ .Names }}"' --format "{{ .Names }}" is showing up in the markup but is rendering as --format "" in the published version. Added {% raw %} tags to try to fix. * Update concatenated to chained * Minor fix * interlock --> ucp-interlock (#8675) * interlock --> ucp-interlock * Fixed code samples - Use the latest UCP version and the latest ucp-interlock image - Leverage ucp page version Jekyll variable * Typo * Final syntax fix * Update backup.md * Removed Reference to Interlock Preview Image, and added relevant UCP Image Org and Tag * Fix syntax error which caused the master build to fail * docs: fix typo in removal of named volumes (#8686) * Updated the ToC for Upgrading Interlock * Removed the Previous Interlock SSL Page * Moved Redirect to latest page * Update index.md (#8690) Fix typo - missing word. * Update bind-mounts.md (#8696) * Minor edits (#8708) * Minor edits - Standardized setting of replica ID as per @caervs - Fix broken link * Consistency edits - Standardized setting of replica ID - Added note that this command only works on Linux * Standardize replica setting - Update commands for creating tar files for local and NFS-mounted images * Fixed broken 'important changes' link (#8721) * Interlock fix - remove haproxy and custom template files (#8722) * Removed haproxy and custom template info * Delete file * Delete file * Render DTR version (#8726) * Release notes for 2.0.4.0 win (Edge) Signed-off-by: Mathieu Champlon <mathieu.champlon@docker.com> * Release notes for 2.0.4.0 mac (Edge) Signed-off-by: Mathieu Champlon <mathieu.champlon@docker.com> * Update-edge-release-notes.md Minor updates to the proposed content. Looks good otherwise. * Updated edge-release-notes (Windows) Minor edits * Added Docker-Compose awslogs example (#8638) * Added docker compose aws logs information * Fixed formatting and text - Signed off by @bermudezmt * Fix: duplicate paragraph `depends_on` (#8539) * Fix: duplicate paragraph `depends_on` Amend duplicate paragraph `depends_on` in Compose file reference doc. * Fix: add missing blank line * Updated Engine/DTR/UCP version info (#8744) * Updated Engine/DTR/UCP version info * Fixed version * Updates for May patch * Release notes update (May) (#8763) * Latest info including known issues * Updates for 2.6.6, 2.5.11, 2.4.12 * Added 18.09.6 updates * Added link * Fixed link error * Syntax error * 2.6.6 info cleanup * Added Hub info * Added Hub info for 2.6.6 * Added Hub info for 3.1.7 * Link fix * Update line items for DTR 2.6.6 * Add line break after Known Issues - Affects 2.5.11. * Edit line items Minor edits and formatting fixes * Remove outdated links/fix links (#8760) * Fix dates * Fix dates * Fix dates * Fixed syntax error (#8732) * Fixed syntax error Last edit to the REPLICA_ID command introduced a syntax error by adding an extra ')'. Removed it. * Fix replica ID setting examples - Accept suggestion from @thajeztah based on product testing - Apply change to page examples - Remove NFS backup example based on the following errors: tar: /var/lib/docker/volumes/dtr-registry-nfs-36e6bf87816d: Cannot stat: No such file or directory tar: Exiting with failure status due to previous errors * Update header for example tar * Fixed link title * Fixed link title * Added new example and deprecation info (#8773) * Updated multi-stage build doc (#8769) Changed the 'as' keyword to 'AS' to match the Dockerfile reference docs here: https://docs.docker.com/engine/reference/builder/#from * Fix typo (#8766) * Fixed a sentence (#8728) * Fixed a sentence * Minor edit * Update configure-tls.md (#8719) * Update upgrade.md (#8718) * Update index.md (#8717) * Update configure-tls.md (#8716) * Add TOC entry for Hub page title change (#8777) * Update upgrade.md * Fix left navigation TOC * Update get-started.md (#8713) * Update tmpfs.md (#8711) * Add an indentation in compose-gettingstarted.md (#8487) * Add an indentation * Fix messaging on service dependencies * Sync master with published (#8779) * Sync published with master (#8693) * Adding Azure note (#8566) * Adding Azure note * Rephrase additional line and update link * Revert "Netlify redirects interlock (#8595)" This reverts commita7793edc74. * UCP Install on Azure Patch (#8522) * Fix grammar on the 2nd pre-req, and did markdown formatting on the rest :) * Correct Pod-CIDR Warning * Content cleanup Please check that I haven't changed the meaning of the updated prerequisites. * Create a new section on configuring the IP Count value, also responded to feedback from Follis, Steve R and Xinfeng. * Incorporated Steven F's feedback and Issue 8551 * Provide a warning when setting a small IP Count variable * Final edits * Update install-on-azure.md * Following feedback I have expanded on the 0644 azure.json file permissions and Added the --existing-config file to the UCP install command * Removed Orchestrator Tag Pre Req from Azure Docs * Clarifying need for 0644 permissions * Improved backup commands (#8597) * Improved backup commands DTR image backup command improvements: 1. Local and NFS mount image backup commands were invalid (incorrectly used -C flag). Replaced them with commands that work. 2. The new commands automatically populate the correct replica ID and add a datestamp to the backup filename. DTR Metadata backup command improvements: DTR metadata backups are more difficult than they need to be and generate many support tickets. I updated the DTR command to avoid common user pitfalls: 1. The prior metadata backup command was subject to user error. Improved the command to automatically collect the DTR version and select a replica. 2. Improved security of the command by automatically collecting UCP CA certificate for verification rather than using --ucp-insecure-tls flag. 3. Improved the backup filename by adding the backed-up version information and date of backup. Knowledge of the version information is required for restoring a backup. 4. Described these improvements for the user. Image backup commands were tested with local and NFS image storage. The metadata backup command was tested by running it directly on a DTR node and through a UCP client bundle with multiple replicas. * Technical and editorial review * More edits * line 8; remove unnecessary a (#8672) * line 8; remove unnecessary a * Minor edit * Updated the UCP Logging page to include UCP 3.1 screenshots (#8646) * Added examples (#8599) * Added examples Added examples with more detail and automation to help customers backup DTR without creating support tickets. * Linked to explanation of example command @omegamormegil I removed the example with prepopulated fields, as I think it doesn't add much, and will only add confusion. Users who need this much detail can run the basic command and follow the terminal prompts. We can re-add in a follow-up PR, if you think that example is crucial to this page. * Remove deadlink in the Interlock ToC (#8668) * Found a deadlink in the Interlock ToC * Added Redirect * Published (#8674) * add slack webhook to Jenkinsfile * make jenkinsfile serve private and public docs After a couple of Jenkins-based mix-ups it became obvious we needed a Jenkinsfile that would serve both public and private projects, that we could move between repos without worry. This Jenkinsfile knows which images to build and push and which swarm services to update because of the use of git_url and branch conditions. * Sync published with master (#8619) * Update install.md add note: 8 character password minimum length * Include Ubuntu version in Dockerfile more recent versions of Ubuntu don't work with the given Dockerfile * Updated the 3.1.4 release notes to include Centos 7.6 support * Remove redundant "be" * Update the "role-based access control" link On page "https://docs.docker.com/ee/ucp/user-access/", update the hyperlink "role-based access control" to point to "https://docs.docker.com/ee/ucp/authorization/" instead of "https://docs.docker.com/ee/access-control". * Add UCP user password limitation * Revert "Updated the UCP 3.1.4 release notes to include Centos 7.6 support" * Adding emphasis on Static IP requirement (#7276) * Adding emphasis on Static IP requirement We had a customer (00056641) who changed IPs like this all at once, and they are in a messy status. We should make it clear that static IP is absolutely required. ```***-ucp-0-dw original="10.15.89.6" updated="10.15.89.7" ***-ucp-1-dw original="10.15.89.5" updated="10.15.89.6" ***-ucp-2-dw original="10.15.89.7" updated="10.15.89.5" ``` * Link to prod requirement of static IP addresses * Adding warning about layer7 config (#8617) * Adding warning about layer7 config Adding warning about layer7 config not being included in the backup * Text edit * Sync published with master (#8673) * Revert "Netlify redirects interlock (#8595)" This reverts commita7793edc74. * UCP Install on Azure Patch (#8522) * Fix grammar on the 2nd pre-req, and did markdown formatting on the rest :) * Correct Pod-CIDR Warning * Content cleanup Please check that I haven't changed the meaning of the updated prerequisites. * Create a new section on configuring the IP Count value, also responded to feedback from Follis, Steve R and Xinfeng. * Incorporated Steven F's feedback and Issue 8551 * Provide a warning when setting a small IP Count variable * Final edits * Update install-on-azure.md * Following feedback I have expanded on the 0644 azure.json file permissions and Added the --existing-config file to the UCP install command * Removed Orchestrator Tag Pre Req from Azure Docs * Clarifying need for 0644 permissions * Improved backup commands (#8597) * Improved backup commands DTR image backup command improvements: 1. Local and NFS mount image backup commands were invalid (incorrectly used -C flag). Replaced them with commands that work. 2. The new commands automatically populate the correct replica ID and add a datestamp to the backup filename. DTR Metadata backup command improvements: DTR metadata backups are more difficult than they need to be and generate many support tickets. I updated the DTR command to avoid common user pitfalls: 1. The prior metadata backup command was subject to user error. Improved the command to automatically collect the DTR version and select a replica. 2. Improved security of the command by automatically collecting UCP CA certificate for verification rather than using --ucp-insecure-tls flag. 3. Improved the backup filename by adding the backed-up version information and date of backup. Knowledge of the version information is required for restoring a backup. 4. Described these improvements for the user. Image backup commands were tested with local and NFS image storage. The metadata backup command was tested by running it directly on a DTR node and through a UCP client bundle with multiple replicas. * Technical and editorial review * More edits * line 8; remove unnecessary a (#8672) * line 8; remove unnecessary a * Minor edit * Updated the UCP Logging page to include UCP 3.1 screenshots (#8646) * Added examples (#8599) * Added examples Added examples with more detail and automation to help customers backup DTR without creating support tickets. * Linked to explanation of example command @omegamormegil I removed the example with prepopulated fields, as I think it doesn't add much, and will only add confusion. Users who need this much detail can run the basic command and follow the terminal prompts. We can re-add in a follow-up PR, if you think that example is crucial to this page. * Remove deadlink in the Interlock ToC (#8668) * Found a deadlink in the Interlock ToC * Added Redirect * Trying to fix command rendering of '--format "{{ .Names }}"' (#8678) * Trying to fix command rendering of '--format "{{ .Names }}"' --format "{{ .Names }}" is showing up in the markup but is rendering as --format "" in the published version. Added {% raw %} tags to try to fix. * Fixed heading inconsistency * Trying to fix command rendering of '--format "{{ .Names }}"' (#8677) * Trying to fix command rendering of '--format "{{ .Names }}"' --format "{{ .Names }}" is showing up in the markup but is rendering as --format "" in the published version. Added {% raw %} tags to try to fix. * Update concatenated to chained * Minor fix * interlock --> ucp-interlock (#8675) * interlock --> ucp-interlock * Fixed code samples - Use the latest UCP version and the latest ucp-interlock image - Leverage ucp page version Jekyll variable * Typo * Final syntax fix * Update backup.md * Removed Reference to Interlock Preview Image, and added relevant UCP Image Org and Tag * Fix syntax error which caused the master build to fail * Sync published with master (#8695) * Sync published with master (#8693) (#8694) * Adding Azure note (#8566) * Adding Azure note * Rephrase additional line and update link * Revert "Netlify redirects interlock (#8595)" This reverts commita7793edc74. * UCP Install on Azure Patch (#8522) * Fix grammar on the 2nd pre-req, and did markdown formatting on the rest :) * Correct Pod-CIDR Warning * Content cleanup Please check that I haven't changed the meaning of the updated prerequisites. * Create a new section on configuring the IP Count value, also responded to feedback from Follis, Steve R and Xinfeng. * Incorporated Steven F's feedback and Issue 8551 * Provide a warning when setting a small IP Count variable * Final edits * Update install-on-azure.md * Following feedback I have expanded on the 0644 azure.json file permissions and Added the --existing-config file to the UCP install command * Removed Orchestrator Tag Pre Req from Azure Docs * Clarifying need for 0644 permissions * Improved backup commands (#8597) * Improved backup commands DTR image backup command improvements: 1. Local and NFS mount image backup commands were invalid (incorrectly used -C flag). Replaced them with commands that work. 2. The new commands automatically populate the correct replica ID and add a datestamp to the backup filename. DTR Metadata backup command improvements: DTR metadata backups are more difficult than they need to be and generate many support tickets. I updated the DTR command to avoid common user pitfalls: 1. The prior metadata backup command was subject to user error. Improved the command to automatically collect the DTR version and select a replica. 2. Improved security of the command by automatically collecting UCP CA certificate for verification rather than using --ucp-insecure-tls flag. 3. Improved the backup filename by adding the backed-up version information and date of backup. Knowledge of the version information is required for restoring a backup. 4. Described these improvements for the user. Image backup commands were tested with local and NFS image storage. The metadata backup command was tested by running it directly on a DTR node and through a UCP client bundle with multiple replicas. * Technical and editorial review * More edits * line 8; remove unnecessary a (#8672) * line 8; remove unnecessary a * Minor edit * Updated the UCP Logging page to include UCP 3.1 screenshots (#8646) * Added examples (#8599) * Added examples Added examples with more detail and automation to help customers backup DTR without creating support tickets. * Linked to explanation of example command @omegamormegil I removed the example with prepopulated fields, as I think it doesn't add much, and will only add confusion. Users who need this much detail can run the basic command and follow the terminal prompts. We can re-add in a follow-up PR, if you think that example is crucial to this page. * Remove deadlink in the Interlock ToC (#8668) * Found a deadlink in the Interlock ToC * Added Redirect * Published (#8674) * add slack webhook to Jenkinsfile * make jenkinsfile serve private and public docs After a couple of Jenkins-based mix-ups it became obvious we needed a Jenkinsfile that would serve both public and private projects, that we could move between repos without worry. This Jenkinsfile knows which images to build and push and which swarm services to update because of the use of git_url and branch conditions. * Sync published with master (#8619) * Update install.md add note: 8 character password minimum length * Include Ubuntu version in Dockerfile more recent versions of Ubuntu don't work with the given Dockerfile * Updated the 3.1.4 release notes to include Centos 7.6 support * Remove redundant "be" * Update the "role-based access control" link On page "https://docs.docker.com/ee/ucp/user-access/", update the hyperlink "role-based access control" to point to "https://docs.docker.com/ee/ucp/authorization/" instead of "https://docs.docker.com/ee/access-control". * Add UCP user password limitation * Revert "Updated the UCP 3.1.4 release notes to include Centos 7.6 support" * Adding emphasis on Static IP requirement (#7276) * Adding emphasis on Static IP requirement We had a customer (00056641) who changed IPs like this all at once, and they are in a messy status. We should make it clear that static IP is absolutely required. ```***-ucp-0-dw original="10.15.89.6" updated="10.15.89.7" ***-ucp-1-dw original="10.15.89.5" updated="10.15.89.6" ***-ucp-2-dw original="10.15.89.7" updated="10.15.89.5" ``` * Link to prod requirement of static IP addresses * Adding warning about layer7 config (#8617) * Adding warning about layer7 config Adding warning about layer7 config not being included in the backup * Text edit * Sync published with master (#8673) * Revert "Netlify redirects interlock (#8595)" This reverts commita7793edc74. * UCP Install on Azure Patch (#8522) * Fix grammar on the 2nd pre-req, and did markdown formatting on the rest :) * Correct Pod-CIDR Warning * Content cleanup Please check that I haven't changed the meaning of the updated prerequisites. * Create a new section on configuring the IP Count value, also responded to feedback from Follis, Steve R and Xinfeng. * Incorporated Steven F's feedback and Issue 8551 * Provide a warning when setting a small IP Count variable * Final edits * Update install-on-azure.md * Following feedback I have expanded on the 0644 azure.json file permissions and Added the --existing-config file to the UCP install command * Removed Orchestrator Tag Pre Req from Azure Docs * Clarifying need for 0644 permissions * Improved backup commands (#8597) * Improved backup commands DTR image backup command improvements: 1. Local and NFS mount image backup commands were invalid (incorrectly used -C flag). Replaced them with commands that work. 2. The new commands automatically populate the correct replica ID and add a datestamp to the backup filename. DTR Metadata backup command improvements: DTR metadata backups are more difficult than they need to be and generate many support tickets. I updated the DTR command to avoid common user pitfalls: 1. The prior metadata backup command was subject to user error. Improved the command to automatically collect the DTR version and select a replica. 2. Improved security of the command by automatically collecting UCP CA certificate for verification rather than using --ucp-insecure-tls flag. 3. Improved the backup filename by adding the backed-up version information and date of backup. Knowledge of the version information is required for restoring a backup. 4. Described these improvements for the user. Image backup commands were tested with local and NFS image storage. The metadata backup command was tested by running it directly on a DTR node and through a UCP client bundle with multiple replicas. * Technical and editorial review * More edits * line 8; remove unnecessary a (#8672) * line 8; remove unnecessary a * Minor edit * Updated the UCP Logging page to include UCP 3.1 screenshots (#8646) * Added examples (#8599) * Added examples Added examples with more detail and automation to help customers backup DTR without creating support tickets. * Linked to explanation of example command @omegamormegil I removed the example with prepopulated fields, as I think it doesn't add much, and will only add confusion. Users who need this much detail can run the basic command and follow the terminal prompts. We can re-add in a follow-up PR, if you think that example is crucial to this page. * Remove deadlink in the Interlock ToC (#8668) * Found a deadlink in the Interlock ToC * Added Redirect * Trying to fix command rendering of '--format "{{ .Names }}"' (#8678) * Trying to fix command rendering of '--format "{{ .Names }}"' --format "{{ .Names }}" is showing up in the markup but is rendering as --format "" in the published version. Added {% raw %} tags to try to fix. * Fixed heading inconsistency * Trying to fix command rendering of '--format "{{ .Names }}"' (#8677) * Trying to fix command rendering of '--format "{{ .Names }}"' --format "{{ .Names }}" is showing up in the markup but is rendering as --format "" in the published version. Added {% raw %} tags to try to fix. * Update concatenated to chained * Minor fix * interlock --> ucp-interlock (#8675) * interlock --> ucp-interlock * Fixed code samples - Use the latest UCP version and the latest ucp-interlock image - Leverage ucp page version Jekyll variable * Typo * Final syntax fix * Update backup.md * Removed Reference to Interlock Preview Image, and added relevant UCP Image Org and Tag * Fix syntax error which caused the master build to fail * docs: fix typo in removal of named volumes (#8686) * Sync published with master (#8709) * Sync published with master (#8693) (#8694) * Adding Azure note (#8566) * Rephrase additional line and update link * Revert "Netlify redirects interlock (#8595)" This reverts commita7793edc74. * UCP Install on Azure Patch (#8522) * Improved backup commands (#8597) * Improved backup commands DTR image backup command improvements: 1. Local and NFS mount image ba… * Follow-up cleanup (#1069) * Delete interlock_service_clusters.png~HEAD * Delete interlock_service_clusters.png~Raw content addition * Clean up interlock files for Amberjack * Remove merge markers in toc.yml Signed-off-by: Sebastiaan van Stijn <github@gone.nl> * Add correct UCP interlock TOC entries Fingers crossed on this one - did it from the browser. :D * added api reference, fixed tech review comments * Added patch release changelogs * Update docker cli reference for 19.03 Signed-off-by: Sebastiaan van Stijn <github@gone.nl> * SAML SCIM update (#1073) * Added SCIM entry * SCIM content * Updates per Ryan's feedback * Removed delete * Update per Ryan's feedback * Minor wording changes * Additional endpoints added * Update per Ryan's feedback * Metadata updates * Anchor links added * Updates per Maria * Adding links to Docker for Mac and Windows Community content * OSCAL TOC entry (#1083) * Added Docker Desktop Enterprise 2.0.0.4-ent changelogs Signed-off-by: Ulrich VACHON <ulrich.vachon@docker.com> * minor updates to the public beta release notes * gMSA info (#1074) * Added gMSA note. * Added gMSA bullet * Added gMSA info * Changes per Drew's feedback * Updates per Drew's feedback * Moved content per feedback * Moved content per feedback * Updates per Drew's feedback * Update per feedback * Update release-notes.md * Update release notes Public beta * iSCSI info (#1075) * Added raw content * Added iscsi options * Added iSCSI entry * Images * Clean up * Updates per feedback * Updates per Anusha * Update to iscsi parameter * Added updates per Deep's feedback * Updates per Deep's feedback * Updated iSCSI parameter description * Update page versions for UCP and DTR
1009 lines
49 KiB
YAML
1009 lines
49 KiB
YAML
command: docker service create
|
|
short: Create a new service
|
|
long: |-
|
|
Creates a service as described by the specified parameters. You must run this
|
|
command on a manager node.
|
|
usage: docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]
|
|
pname: docker service
|
|
plink: docker_service.yaml
|
|
options:
|
|
- option: config
|
|
value_type: config
|
|
description: Specify configurations to expose to the service
|
|
deprecated: false
|
|
min_api_version: "1.30"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: constraint
|
|
value_type: list
|
|
description: Placement constraints
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: container-label
|
|
value_type: list
|
|
description: Container labels
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: credential-spec
|
|
value_type: credential-spec
|
|
description: Credential spec for managed service account (Windows only)
|
|
deprecated: false
|
|
min_api_version: "1.29"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: detach
|
|
shorthand: d
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: |
|
|
Exit immediately instead of waiting for the service to converge
|
|
deprecated: false
|
|
min_api_version: "1.29"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: dns
|
|
value_type: list
|
|
description: Set custom DNS servers
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: dns-option
|
|
value_type: list
|
|
description: Set DNS options
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: dns-search
|
|
value_type: list
|
|
description: Set custom DNS search domains
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: endpoint-mode
|
|
value_type: string
|
|
default_value: vip
|
|
description: Endpoint mode (vip or dnsrr)
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: entrypoint
|
|
value_type: command
|
|
description: Overwrite the default ENTRYPOINT of the image
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: env
|
|
shorthand: e
|
|
value_type: list
|
|
description: Set environment variables
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: env-file
|
|
value_type: list
|
|
description: Read in a file of environment variables
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: generic-resource
|
|
value_type: list
|
|
description: User defined resources
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: group
|
|
value_type: list
|
|
description: Set one or more supplementary user groups for the container
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: health-cmd
|
|
value_type: string
|
|
description: Command to run to check health
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: health-interval
|
|
value_type: duration
|
|
description: Time between running the check (ms|s|m|h)
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: health-retries
|
|
value_type: int
|
|
default_value: "0"
|
|
description: Consecutive failures needed to report unhealthy
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: health-start-period
|
|
value_type: duration
|
|
description: |
|
|
Start period for the container to initialize before counting retries towards unstable (ms|s|m|h)
|
|
deprecated: false
|
|
min_api_version: "1.29"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: health-timeout
|
|
value_type: duration
|
|
description: Maximum time to allow one check to run (ms|s|m|h)
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: host
|
|
value_type: list
|
|
description: Set one or more custom host-to-IP mappings (host:ip)
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: hostname
|
|
value_type: string
|
|
description: Container hostname
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: init
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: |
|
|
Use an init inside each service container to forward signals and reap processes
|
|
deprecated: false
|
|
min_api_version: "1.37"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: isolation
|
|
value_type: string
|
|
description: Service container isolation mode
|
|
deprecated: false
|
|
min_api_version: "1.35"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: label
|
|
shorthand: l
|
|
value_type: list
|
|
description: Service labels
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: limit-cpu
|
|
value_type: decimal
|
|
description: Limit CPUs
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: limit-memory
|
|
value_type: bytes
|
|
default_value: "0"
|
|
description: Limit Memory
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: log-driver
|
|
value_type: string
|
|
description: Logging driver for service
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: log-opt
|
|
value_type: list
|
|
description: Logging driver options
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: mode
|
|
value_type: string
|
|
default_value: replicated
|
|
description: Service mode (replicated or global)
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: mount
|
|
value_type: mount
|
|
description: Attach a filesystem mount to the service
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: name
|
|
value_type: string
|
|
description: Service name
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: network
|
|
value_type: network
|
|
description: Network attachments
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: no-healthcheck
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: Disable any container-specified HEALTHCHECK
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: no-resolve-image
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: |
|
|
Do not query the registry to resolve image digest and supported platforms
|
|
deprecated: false
|
|
min_api_version: "1.30"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: placement-pref
|
|
value_type: pref
|
|
description: Add a placement preference
|
|
deprecated: false
|
|
min_api_version: "1.28"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: publish
|
|
shorthand: p
|
|
value_type: port
|
|
description: Publish a port as a node port
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: quiet
|
|
shorthand: q
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: Suppress progress output
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: read-only
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: Mount the container's root filesystem as read only
|
|
deprecated: false
|
|
min_api_version: "1.28"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: replicas
|
|
value_type: uint
|
|
description: Number of tasks
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: replicas-max-per-node
|
|
value_type: uint64
|
|
default_value: "0"
|
|
description: Maximum number of tasks per node (default 0 = unlimited)
|
|
deprecated: false
|
|
min_api_version: "1.40"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: reserve-cpu
|
|
value_type: decimal
|
|
description: Reserve CPUs
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: reserve-memory
|
|
value_type: bytes
|
|
default_value: "0"
|
|
description: Reserve Memory
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: restart-condition
|
|
value_type: string
|
|
description: |
|
|
Restart when condition is met ("none"|"on-failure"|"any") (default "any")
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: restart-delay
|
|
value_type: duration
|
|
description: Delay between restart attempts (ns|us|ms|s|m|h) (default 5s)
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: restart-max-attempts
|
|
value_type: uint
|
|
description: Maximum number of restarts before giving up
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: restart-window
|
|
value_type: duration
|
|
description: Window used to evaluate the restart policy (ns|us|ms|s|m|h)
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: rollback-delay
|
|
value_type: duration
|
|
default_value: 0s
|
|
description: Delay between task rollbacks (ns|us|ms|s|m|h) (default 0s)
|
|
deprecated: false
|
|
min_api_version: "1.28"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: rollback-failure-action
|
|
value_type: string
|
|
description: |
|
|
Action on rollback failure ("pause"|"continue") (default "pause")
|
|
deprecated: false
|
|
min_api_version: "1.28"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: rollback-max-failure-ratio
|
|
value_type: float
|
|
default_value: "0"
|
|
description: Failure rate to tolerate during a rollback (default 0)
|
|
deprecated: false
|
|
min_api_version: "1.28"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: rollback-monitor
|
|
value_type: duration
|
|
default_value: 0s
|
|
description: |
|
|
Duration after each task rollback to monitor for failure (ns|us|ms|s|m|h) (default 5s)
|
|
deprecated: false
|
|
min_api_version: "1.28"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: rollback-order
|
|
value_type: string
|
|
description: |
|
|
Rollback order ("start-first"|"stop-first") (default "stop-first")
|
|
deprecated: false
|
|
min_api_version: "1.29"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: rollback-parallelism
|
|
value_type: uint64
|
|
default_value: "1"
|
|
description: |
|
|
Maximum number of tasks rolled back simultaneously (0 to roll back all at once)
|
|
deprecated: false
|
|
min_api_version: "1.28"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: secret
|
|
value_type: secret
|
|
description: Specify secrets to expose to the service
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: stop-grace-period
|
|
value_type: duration
|
|
description: |
|
|
Time to wait before force killing a container (ns|us|ms|s|m|h) (default 10s)
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: stop-signal
|
|
value_type: string
|
|
description: Signal to stop the container
|
|
deprecated: false
|
|
min_api_version: "1.28"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: sysctl
|
|
value_type: list
|
|
description: Sysctl options
|
|
deprecated: false
|
|
min_api_version: "1.40"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: tty
|
|
shorthand: t
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: Allocate a pseudo-TTY
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: update-delay
|
|
value_type: duration
|
|
default_value: 0s
|
|
description: Delay between updates (ns|us|ms|s|m|h) (default 0s)
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: update-failure-action
|
|
value_type: string
|
|
description: |
|
|
Action on update failure ("pause"|"continue"|"rollback") (default "pause")
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: update-max-failure-ratio
|
|
value_type: float
|
|
default_value: "0"
|
|
description: Failure rate to tolerate during an update (default 0)
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: update-monitor
|
|
value_type: duration
|
|
default_value: 0s
|
|
description: |
|
|
Duration after each task update to monitor for failure (ns|us|ms|s|m|h) (default 5s)
|
|
deprecated: false
|
|
min_api_version: "1.25"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: update-order
|
|
value_type: string
|
|
description: |
|
|
Update order ("start-first"|"stop-first") (default "stop-first")
|
|
deprecated: false
|
|
min_api_version: "1.29"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: update-parallelism
|
|
value_type: uint64
|
|
default_value: "1"
|
|
description: |
|
|
Maximum number of tasks updated simultaneously (0 to update all at once)
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: user
|
|
shorthand: u
|
|
value_type: string
|
|
description: 'Username or UID (format: <name|uid>[:<group|gid>])'
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: with-registry-auth
|
|
value_type: bool
|
|
default_value: "false"
|
|
description: Send registry authentication details to swarm agents
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
- option: workdir
|
|
shorthand: w
|
|
value_type: string
|
|
description: Working directory inside the container
|
|
deprecated: false
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: false
|
|
examples: "### Create a service\n\n```bash\n$ docker service create --name redis redis:3.0.6\n\ndmu1ept4cxcfe8k8lhtux3ro3\n\n$
|
|
docker service create --mode global --name redis2 redis:3.0.6\n\na8q9dasaafudfs8q8w32udass\n\n$
|
|
docker service ls\n\nID NAME MODE REPLICAS IMAGE\ndmu1ept4cxcf
|
|
\ redis replicated 1/1 redis:3.0.6\na8q9dasaafud redis2 global 1/1
|
|
\ redis:3.0.6\n```\n\n#### Create a service using an image on a private registry\n\nIf
|
|
your image is available on a private registry which requires login, use the\n`--with-registry-auth`
|
|
flag with `docker service create`, after logging in. If\nyour image is stored on
|
|
`registry.example.com`, which is a private registry, use\na command like the following:\n\n```bash\n$
|
|
docker login registry.example.com\n\n$ docker service create \\\n --with-registry-auth
|
|
\\\n --name my_service \\\n registry.example.com/acme/my_image:latest\n```\n\nThis
|
|
passes the login token from your local client to the swarm nodes where the\nservice
|
|
is deployed, using the encrypted WAL logs. With this information, the\nnodes are
|
|
able to log into the registry and pull the image.\n\n### Create a service with 5
|
|
replica tasks (--replicas)\n\nUse the `--replicas` flag to set the number of replica
|
|
tasks for a replicated\nservice. The following command creates a `redis` service
|
|
with `5` replica tasks:\n\n```bash\n$ docker service create --name redis --replicas=5
|
|
redis:3.0.6\n\n4cdgfyky7ozwh3htjfw0d12qv\n```\n\nThe above command sets the *desired*
|
|
number of tasks for the service. Even\nthough the command returns immediately, actual
|
|
scaling of the service may take\nsome time. The `REPLICAS` column shows both the
|
|
*actual* and *desired* number\nof replica tasks for the service.\n\nIn the following
|
|
example the desired state is `5` replicas, but the current\nnumber of `RUNNING`
|
|
tasks is `3`:\n\n```bash\n$ docker service ls\n\nID NAME MODE REPLICAS
|
|
\ IMAGE\n4cdgfyky7ozw redis replicated 3/5 redis:3.0.7\n```\n\nOnce all
|
|
the tasks are created and `RUNNING`, the actual number of tasks is\nequal to the
|
|
desired number:\n\n```bash\n$ docker service ls\n\nID NAME MODE REPLICAS
|
|
\ IMAGE\n4cdgfyky7ozw redis replicated 5/5 redis:3.0.7\n```\n\n### Create
|
|
a service with secrets\n\nUse the `--secret` flag to give a container access to
|
|
a\n[secret](secret_create.md).\n\nCreate a service specifying a secret:\n\n```bash\n$
|
|
docker service create --name redis --secret secret.json redis:3.0.6\n\n4cdgfyky7ozwh3htjfw0d12qv\n```\n\nCreate
|
|
a service specifying the secret, target, user/group ID, and mode:\n\n```bash\n$
|
|
docker service create --name redis \\\n --secret source=ssh-key,target=ssh \\\n
|
|
\ --secret source=app-key,target=app,uid=1000,gid=1001,mode=0400 \\\n redis:3.0.6\n\n4cdgfyky7ozwh3htjfw0d12qv\n```\n\nTo
|
|
grant a service access to multiple secrets, use multiple `--secret` flags.\n\nSecrets
|
|
are located in `/run/secrets` in the container. If no target is\nspecified, the
|
|
name of the secret will be used as the in memory file in the\ncontainer. If a target
|
|
is specified, that will be the filename. In the\nexample above, two files will
|
|
be created: `/run/secrets/ssh` and\n`/run/secrets/app` for each of the secret targets
|
|
specified.\n\n### Create a service with a rolling update policy\n\n```bash\n$ docker
|
|
service create \\\n --replicas 10 \\\n --name redis \\\n --update-delay 10s \\\n
|
|
\ --update-parallelism 2 \\\n redis:3.0.6\n```\n\nWhen you run a [service update](service_update.md),
|
|
the scheduler updates a\nmaximum of 2 tasks at a time, with `10s` between updates.
|
|
For more information,\nrefer to the [rolling updates\ntutorial](https://docs.docker.com/engine/swarm/swarm-tutorial/rolling-update/).\n\n###
|
|
Set environment variables (-e, --env)\n\nThis sets an environment variable for all
|
|
tasks in a service. For example:\n\n```bash\n$ docker service create \\\n --name
|
|
redis_2 \\\n --replicas 5 \\\n --env MYVAR=foo \\\n redis:3.0.6\n```\n\nTo specify
|
|
multiple environment variables, specify multiple `--env` flags, each\nwith a separate
|
|
key-value pair.\n\n```bash\n$ docker service create \\\n --name redis_2 \\\n --replicas
|
|
5 \\\n --env MYVAR=foo \\\n --env MYVAR2=bar \\\n redis:3.0.6\n```\n\n### Create
|
|
a service with specific hostname (--hostname)\n\nThis option sets the docker service
|
|
containers hostname to a specific string.\nFor example:\n\n```bash\n$ docker service
|
|
create --name redis --hostname myredis redis:3.0.6\n```\n\n### Set metadata on a
|
|
service (-l, --label)\n\nA label is a `key=value` pair that applies metadata to
|
|
a service. To label a\nservice with two labels:\n\n```bash\n$ docker service create
|
|
\\\n --name redis_2 \\\n --label com.example.foo=\"bar\"\n --label bar=baz \\\n
|
|
\ redis:3.0.6\n```\n\nFor more information about labels, refer to [apply custom\nmetadata](https://docs.docker.com/engine/userguide/labels-custom-metadata/).\n\n###
|
|
Add bind mounts, volumes or memory filesystems\n\nDocker supports three different
|
|
kinds of mounts, which allow containers to read\nfrom or write to files or directories,
|
|
either on the host operating system, or\non memory filesystems. These types are
|
|
_data volumes_ (often referred to simply\nas volumes), _bind mounts_, _tmpfs_, and
|
|
_named pipes_.\n\nA **bind mount** makes a file or directory on the host available
|
|
to the\ncontainer it is mounted within. A bind mount may be either read-only or\nread-write.
|
|
For example, a container might share its host's DNS information by\nmeans of a bind
|
|
mount of the host's `/etc/resolv.conf` or a container might\nwrite logs to its host's
|
|
`/var/log/myContainerLogs` directory. If you use\nbind mounts and your host and
|
|
containers have different notions of permissions,\naccess controls, or other such
|
|
details, you will run into portability issues.\n\nA **named volume** is a mechanism
|
|
for decoupling persistent data needed by your\ncontainer from the image used to
|
|
create the container and from the host machine.\nNamed volumes are created and managed
|
|
by Docker, and a named volume persists\neven when no container is currently using
|
|
it. Data in named volumes can be\nshared between a container and the host machine,
|
|
as well as between multiple\ncontainers. Docker uses a _volume driver_ to create,
|
|
manage, and mount volumes.\nYou can back up or restore volumes using Docker commands.\n\nA
|
|
**tmpfs** mounts a tmpfs inside a container for volatile data.\n\nA **npipe** mounts
|
|
a named pipe from the host into the container.\n\nConsider a situation where your
|
|
image starts a lightweight web server. You could\nuse that image as a base image,
|
|
copy in your website's HTML files, and package\nthat into another image. Each time
|
|
your website changed, you'd need to update\nthe new image and redeploy all of the
|
|
containers serving your website. A better\nsolution is to store the website in a
|
|
named volume which is attached to each of\nyour web server containers when they
|
|
start. To update the website, you just\nupdate the named volume.\n\nFor more information
|
|
about named volumes, see\n[Data Volumes](https://docs.docker.com/engine/tutorials/dockervolumes/).\n\nThe
|
|
following table describes options which apply to both bind mounts and named\nvolumes
|
|
in a service:\n\n<table>\n <tr>\n <th>Option</th>\n <th>Required</th>\n <th>Description</th>\n
|
|
\ </tr>\n <tr>\n <td><b>type</b></td>\n <td></td>\n <td>\n <p>The
|
|
type of mount, can be either <tt>volume</tt>, <tt>bind</tt>, <tt>tmpfs</tt>, or
|
|
<tt>npipe</tt>. Defaults to <tt>volume</tt> if no type is specified.\n <ul>\n
|
|
\ <li><tt>volume</tt>: mounts a <a href=\"https://docs.docker.com/engine/reference/commandline/volume_create/\">managed
|
|
volume</a>\n into the container.</li> <li><tt>bind</tt>:\n bind-mounts
|
|
a directory or file from the host into the container.</li>\n <li><tt>tmpfs</tt>:
|
|
mount a tmpfs in the container</li>\n <li><tt>npipe</tt>: mounts named pipe
|
|
from the host into the container (Windows containers only).</li>\n </ul></p>\n
|
|
\ </td>\n </tr>\n <tr>\n <td><b>src</b> or <b>source</b></td>\n <td>for
|
|
<tt>type=bind</tt> and <tt>type=npipe</tt></td>\n <td>\n <ul>\n <li>\n
|
|
\ <tt>type=volume</tt>: <tt>src</tt> is an optional way to specify the name
|
|
of the volume (for example, <tt>src=my-volume</tt>).\n If the named volume
|
|
does not exist, it is automatically created. If no <tt>src</tt> is specified, the
|
|
volume is\n assigned a random name which is guaranteed to be unique on
|
|
the host, but may not be unique cluster-wide.\n A randomly-named volume
|
|
has the same lifecycle as its container and is destroyed when the <i>container</i>\n
|
|
\ is destroyed (which is upon <tt>service update</tt>, or when scaling or
|
|
re-balancing the service)\n </li>\n <li>\n <tt>type=bind</tt>:
|
|
<tt>src</tt> is required, and specifies an absolute path to the file or directory
|
|
to bind-mount\n (for example, <tt>src=/path/on/host/</tt>). An error is
|
|
produced if the file or directory does not exist.\n </li>\n <li>\n
|
|
\ <tt>type=tmpfs</tt>: <tt>src</tt> is not supported.\n </li>\n </ul>\n
|
|
\ </td>\n </tr>\n <tr>\n <td><p><b>dst</b> or <b>destination</b> or <b>target</b></p></td>\n
|
|
\ <td>yes</td>\n <td>\n <p>Mount path inside the container, for example
|
|
<tt>/some/path/in/container/</tt>.\n If the path does not exist in the container's
|
|
filesystem, the Engine creates\n a directory at the specified location before
|
|
mounting the volume or bind mount.</p>\n </td>\n </tr>\n <tr>\n <td><p><b>readonly</b>
|
|
or <b>ro</b></p></td>\n <td></td>\n <td>\n <p>The Engine mounts binds
|
|
and volumes <tt>read-write</tt> unless <tt>readonly</tt> option\n is given
|
|
when mounting the bind or volume. Note that setting <tt>readonly</tt> for a\n bind-mount
|
|
does not make its submounts <tt>readonly</tt> on the current Linux implementation.
|
|
See also <tt>bind-nonrecursive</tt>.\n <ul>\n <li><tt>true</tt> or <tt>1</tt>
|
|
or no value: Mounts the bind or volume read-only.</li>\n <li><tt>false</tt>
|
|
or <tt>0</tt>: Mounts the bind or volume read-write.</li>\n </ul></p>\n </td>\n
|
|
\ </tr>\n</table>\n\n#### Options for Bind Mounts\n\nThe following options can only
|
|
be used for bind mounts (`type=bind`):\n\n\n<table>\n <tr>\n <th>Option</th>\n
|
|
\ <th>Description</th>\n </tr>\n <tr>\n <td><b>bind-propagation</b></td>\n
|
|
\ <td>\n <p>See the <a href=\"#bind-propagation\">bind propagation section</a>.</p>\n
|
|
\ </td>\n </tr>\n <tr>\n <td><b>consistency</b></td>\n <td>\n <p>The
|
|
consistency requirements for the mount; one of\n <ul>\n <li><tt>default</tt>:
|
|
Equivalent to <tt>consistent</tt>.</li>\n <li><tt>consistent</tt>: Full
|
|
consistency. The container runtime and the host maintain an identical view of the
|
|
mount at all times.</li>\n <li><tt>cached</tt>: The host's view of the
|
|
mount is authoritative. There may be delays before updates made on the host are
|
|
visible within a container.</li>\n <li><tt>delegated</tt>: The container
|
|
runtime's view of the mount is authoritative. There may be delays before updates
|
|
made in a container are visible on the host.</li>\n </ul>\n </p>\n </td>\n
|
|
\ </tr>\n <tr>\n <td><b>bind-nonrecursive</b></td>\n <td>\n By default,
|
|
submounts are recursively bind-mounted as well. However, this behavior can be confusing
|
|
when a\n bind mount is configured with <tt>readonly</tt> option, because submounts
|
|
are not mounted as read-only.\n Set <tt>bind-nonrecursive</tt> to disable recursive
|
|
bind-mount.<br />\n <br />\n A value is optional:<br />\n <br />\n
|
|
\ <ul>\n <li><tt>true</tt> or <tt>1</tt>: Disables recursive bind-mount.</li>\n
|
|
\ <li><tt>false</tt> or <tt>0</tt>: Default if you do not provide a value.
|
|
Enables recursive bind-mount.</li>\n </ul>\n </td>\n </tr>\n</table>\n\n#####
|
|
Bind propagation\n\nBind propagation refers to whether or not mounts created within
|
|
a given\nbind mount or named volume can be propagated to replicas of that mount.
|
|
Consider\na mount point `/mnt`, which is also mounted on `/tmp`. The propation settings\ncontrol
|
|
whether a mount on `/tmp/a` would also be available on `/mnt/a`. Each\npropagation
|
|
setting has a recursive counterpoint. In the case of recursion,\nconsider that `/tmp/a`
|
|
is also mounted as `/foo`. The propagation settings\ncontrol whether `/mnt/a` and/or
|
|
`/tmp/a` would exist.\n\nThe `bind-propagation` option defaults to `rprivate` for
|
|
both bind mounts and\nvolume mounts, and is only configurable for bind mounts. In
|
|
other words, named\nvolumes do not support bind propagation.\n\n- **`shared`**:
|
|
Sub-mounts of the original mount are exposed to replica mounts,\n and
|
|
sub-mounts of replica mounts are also propagated to the\n original
|
|
mount.\n- **`slave`**: similar to a shared mount, but only in one direction. If
|
|
the\n original mount exposes a sub-mount, the replica mount can see
|
|
it.\n However, if the replica mount exposes a sub-mount, the original\n
|
|
\ mount cannot see it.\n- **`private`**: The mount is private. Sub-mounts
|
|
within it are not exposed to\n replica mounts, and sub-mounts of
|
|
replica mounts are not\n exposed to the original mount.\n- **`rshared`**:
|
|
The same as shared, but the propagation also extends to and from\n mount
|
|
points nested within any of the original or replica mount\n points.\n-
|
|
**`rslave`**: The same as `slave`, but the propagation also extends to and from\n
|
|
\ mount points nested within any of the original or replica mount\n
|
|
\ points.\n- **`rprivate`**: The default. The same as `private`,
|
|
meaning that no mount points\n anywhere within the original or
|
|
replica mount points propagate\n in either direction.\n\nFor more
|
|
information about bind propagation, see the\n[Linux kernel documentation for shared
|
|
subtree](https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt).\n\n####
|
|
Options for named volumes\n\nThe following options can only be used for named volumes
|
|
(`type=volume`):\n\n\n<table>\n <tr>\n <th>Option</th>\n <th>Description</th>\n
|
|
\ </tr>\n <tr>\n <td><b>volume-driver</b></td>\n <td>\n <p>Name of the
|
|
volume-driver plugin to use for the volume. Defaults to\n <tt>\"local\"</tt>,
|
|
to use the local volume driver to create the volume if the\n volume does not
|
|
exist.</p>\n </td>\n </tr>\n <tr>\n <td><b>volume-label</b></td>\n <td>\n
|
|
\ One or more custom metadata (\"labels\") to apply to the volume upon\n creation.
|
|
For example,\n <tt>volume-label=mylabel=hello-world,my-other-label=hello-mars</tt>.
|
|
For more\n information about labels, refer to\n <a href=\"https://docs.docker.com/engine/userguide/labels-custom-metadata/\">apply
|
|
custom metadata</a>.\n </td>\n </tr>\n <tr>\n <td><b>volume-nocopy</b></td>\n
|
|
\ <td>\n By default, if you attach an empty volume to a container, and files
|
|
or\n directories already existed at the mount-path in the container (<tt>dst</tt>),\n
|
|
\ the Engine copies those files and directories into the volume, allowing\n
|
|
\ the host to access them. Set <tt>volume-nocopy</tt> to disable copying files\n
|
|
\ from the container's filesystem to the volume and mount the empty volume.<br
|
|
/>\n <br />\n A value is optional:<br />\n <br />\n <ul>\n <li><tt>true</tt>
|
|
or <tt>1</tt>: Default if you do not provide a value. Disables copying.</li>\n <li><tt>false</tt>
|
|
or <tt>0</tt>: Enables copying.</li>\n </ul>\n </td>\n </tr>\n <tr>\n
|
|
\ <td><b>volume-opt</b></td>\n <td>\n Options specific to a given volume
|
|
driver, which will be passed to the\n driver when creating the volume. Options
|
|
are provided as a comma-separated\n list of key/value pairs, for example,\n
|
|
\ <tt>volume-opt=some-option=some-value,volume-opt=some-other-option=some-other-value</tt>.\n
|
|
\ For available options for a given driver, refer to that driver's\n documentation.\n
|
|
\ </td>\n </tr>\n</table>\n\n\n#### Options for tmpfs\n\nThe following options
|
|
can only be used for tmpfs mounts (`type=tmpfs`);\n\n\n<table>\n <tr>\n <th>Option</th>\n
|
|
\ <th>Description</th>\n </tr>\n <tr>\n <td><b>tmpfs-size</b></td>\n <td>Size
|
|
of the tmpfs mount in bytes. Unlimited by default in Linux.</td>\n </tr>\n <tr>\n
|
|
\ <td><b>tmpfs-mode</b></td>\n <td>File mode of the tmpfs in octal. (e.g. <tt>\"700\"</tt>
|
|
or <tt>\"0700\"</tt>.) Defaults to <tt>\"1777\"</tt> in Linux.</td>\n </tr>\n</table>\n\n\n####
|
|
Differences between \"--mount\" and \"--volume\"\n\nThe `--mount` flag supports
|
|
most options that are supported by the `-v`\nor `--volume` flag for `docker run`,
|
|
with some important exceptions:\n\n- The `--mount` flag allows you to specify a
|
|
volume driver and volume driver\n options *per volume*, without creating the volumes
|
|
in advance. In contrast,\n `docker run` allows you to specify a single volume driver
|
|
which is shared\n by all volumes, using the `--volume-driver` flag.\n\n- The `--mount`
|
|
flag allows you to specify custom metadata (\"labels\") for a volume,\n before
|
|
the volume is created.\n\n- When you use `--mount` with `type=bind`, the host-path
|
|
must refer to an *existing*\n path on the host. The path will not be created for
|
|
you and the service will fail\n with an error if the path does not exist.\n\n-
|
|
The `--mount` flag does not allow you to relabel a volume with `Z` or `z` flags,\n
|
|
\ which are used for `selinux` labeling.\n\n#### Create a service using a named
|
|
volume\n\nThe following example creates a service that uses a named volume:\n\n```bash\n$
|
|
docker service create \\\n --name my-service \\\n --replicas 3 \\\n --mount type=volume,source=my-volume,destination=/path/in/container,volume-label=\"color=red\",volume-label=\"shape=round\"
|
|
\\\n nginx:alpine\n```\n\nFor each replica of the service, the engine requests
|
|
a volume named \"my-volume\"\nfrom the default (\"local\") volume driver where the
|
|
task is deployed. If the\nvolume does not exist, the engine creates a new volume
|
|
and applies the \"color\"\nand \"shape\" labels.\n\nWhen the task is started, the
|
|
volume is mounted on `/path/in/container/` inside\nthe container.\n\nBe aware that
|
|
the default (\"local\") volume is a locally scoped volume driver.\nThis means that
|
|
depending on where a task is deployed, either that task gets a\n*new* volume named
|
|
\"my-volume\", or shares the same \"my-volume\" with other tasks\nof the same service.
|
|
Multiple containers writing to a single shared volume can\ncause data corruption
|
|
if the software running inside the container is not\ndesigned to handle concurrent
|
|
processes writing to the same location. Also take\ninto account that containers
|
|
can be re-scheduled by the Swarm orchestrator and\nbe deployed on a different node.\n\n####
|
|
Create a service that uses an anonymous volume\n\nThe following command creates
|
|
a service with three replicas with an anonymous\nvolume on `/path/in/container`:\n\n```bash\n$
|
|
docker service create \\\n --name my-service \\\n --replicas 3 \\\n --mount type=volume,destination=/path/in/container
|
|
\\\n nginx:alpine\n```\n\nIn this example, no name (`source`) is specified for
|
|
the volume, so a new volume\nis created for each task. This guarantees that each
|
|
task gets its own volume,\nand volumes are not shared between tasks. Anonymous volumes
|
|
are removed after\nthe task using them is complete.\n\n#### Create a service that
|
|
uses a bind-mounted host directory\n\nThe following example bind-mounts a host directory
|
|
at `/path/in/container` in\nthe containers backing the service:\n\n```bash\n$ docker
|
|
service create \\\n --name my-service \\\n --mount type=bind,source=/path/on/host,destination=/path/in/container
|
|
\\\n nginx:alpine\n```\n\n### Set service mode (--mode)\n\nThe service mode determines
|
|
whether this is a _replicated_ service or a _global_\nservice. A replicated service
|
|
runs as many tasks as specified, while a global\nservice runs on each active node
|
|
in the swarm.\n\nThe following command creates a global service:\n\n```bash\n$ docker
|
|
service create \\\n --name redis_2 \\\n --mode global \\\n redis:3.0.6\n```\n\n###
|
|
Specify service constraints (--constraint)\n\nYou can limit the set of nodes where
|
|
a task can be scheduled by defining\nconstraint expressions. Multiple constraints
|
|
find nodes that satisfy every\nexpression (AND match). Constraints can match node
|
|
or Docker Engine labels as\nfollows:\n\n\n<table>\n <tr>\n <th>node attribute</th>\n
|
|
\ <th>matches</th>\n <th>example</th>\n </tr>\n <tr>\n <td><tt>node.id</tt></td>\n
|
|
\ <td>Node ID</td>\n <td><tt>node.id==2ivku8v2gvtg4</tt></td>\n </tr>\n <tr>\n
|
|
\ <td><tt>node.hostname</tt></td>\n <td>Node hostname</td>\n <td><tt>node.hostname!=node-2</tt></td>\n
|
|
\ </tr>\n <tr>\n <td><tt>node.role</tt></td>\n <td>Node role</td>\n <td><tt>node.role==manager</tt></td>\n
|
|
\ </tr>\n <tr>\n <td><tt>node.labels</tt></td>\n <td>user defined node labels</td>\n
|
|
\ <td><tt>node.labels.security==high</tt></td>\n </tr>\n <tr>\n <td><tt>engine.labels</tt></td>\n
|
|
\ <td>Docker Engine's labels</td>\n <td><tt>engine.labels.operatingsystem==ubuntu
|
|
14.04</tt></td>\n </tr>\n</table>\n\n\n`engine.labels` apply to Docker Engine labels
|
|
like operating system,\ndrivers, etc. Swarm administrators add `node.labels` for
|
|
operational purposes by\nusing the [`docker node update`](node_update.md) command.\n\nFor
|
|
example, the following limits tasks for the redis service to nodes where the\nnode
|
|
type label equals queue:\n\n```bash\n$ docker service create \\\n --name redis_2
|
|
\\\n --constraint 'node.labels.type == queue' \\\n redis:3.0.6\n```\n\n### Specify
|
|
service placement preferences (--placement-pref)\n\nYou can set up the service to
|
|
divide tasks evenly over different categories of\nnodes. One example of where this
|
|
can be useful is to balance tasks over a set\nof datacenters or availability zones.
|
|
The example below illustrates this:\n\n```bash\n$ docker service create \\\n --replicas
|
|
9 \\\n --name redis_2 \\\n --placement-pref 'spread=node.labels.datacenter' \\\n
|
|
\ redis:3.0.6\n```\n\nThis uses `--placement-pref` with a `spread` strategy (currently
|
|
the only\nsupported strategy) to spread tasks evenly over the values of the `datacenter`\nnode
|
|
label. In this example, we assume that every node has a `datacenter` node\nlabel
|
|
attached to it. If there are three different values of this label among\nnodes in
|
|
the swarm, one third of the tasks will be placed on the nodes\nassociated with each
|
|
value. This is true even if there are more nodes with one\nvalue than another. For
|
|
example, consider the following set of nodes:\n\n- Three nodes with `node.labels.datacenter=east`\n-
|
|
Two nodes with `node.labels.datacenter=south`\n- One node with `node.labels.datacenter=west`\n\nSince
|
|
we are spreading over the values of the `datacenter` label and the\nservice has
|
|
9 replicas, 3 replicas will end up in each datacenter. There are\nthree nodes associated
|
|
with the value `east`, so each one will get one of the\nthree replicas reserved
|
|
for this value. There are two nodes with the value\n`south`, and the three replicas
|
|
for this value will be divided between them,\nwith one receiving two replicas and
|
|
another receiving just one. Finally, `west`\nhas a single node that will get all
|
|
three replicas reserved for `west`.\n\nIf the nodes in one category (for example,
|
|
those with\n`node.labels.datacenter=south`) can't handle their fair share of tasks
|
|
due to\nconstraints or resource limitations, the extra tasks will be assigned to
|
|
other\nnodes instead, if possible.\n\nBoth engine labels and node labels are supported
|
|
by placement preferences. The\nexample above uses a node label, because the label
|
|
is referenced with\n`node.labels.datacenter`. To spread over the values of an engine
|
|
label, use\n`--placement-pref spread=engine.labels.<labelname>`.\n\nIt is possible
|
|
to add multiple placement preferences to a service. This\nestablishes a hierarchy
|
|
of preferences, so that tasks are first divided over\none category, and then further
|
|
divided over additional categories. One example\nof where this may be useful is
|
|
dividing tasks fairly between datacenters, and\nthen splitting the tasks within
|
|
each datacenter over a choice of racks. To add\nmultiple placement preferences,
|
|
specify the `--placement-pref` flag multiple\ntimes. The order is significant, and
|
|
the placement preferences will be applied\nin the order given when making scheduling
|
|
decisions.\n\nThe following example sets up a service with multiple placement preferences.\nTasks
|
|
are spread first over the various datacenters, and then over racks\n(as indicated
|
|
by the respective labels):\n\n```bash\n$ docker service create \\\n --replicas
|
|
9 \\\n --name redis_2 \\\n --placement-pref 'spread=node.labels.datacenter' \\\n
|
|
\ --placement-pref 'spread=node.labels.rack' \\\n redis:3.0.6\n```\n\nWhen updating
|
|
a service with `docker service update`, `--placement-pref-add`\nappends a new placement
|
|
preference after all existing placement preferences.\n`--placement-pref-rm` removes
|
|
an existing placement preference that matches the\nargument.\n\n### Specify maximum
|
|
replicas per node (--replicas-max-per-node)\n\nUse the `--replicas-max-per-node`
|
|
flag to set the maximum number of replica tasks that can run on a node.\nThe following
|
|
command creates a nginx service with 2 replica tasks but only one replica task per
|
|
node.\n\nOne example where this can be useful is to balance tasks over a set of
|
|
data centers together with `--placement-pref`\nand let `--replicas-max-per-node`
|
|
setting make sure that replicas are not migrated to another datacenter during\nmaintenance
|
|
or datacenter failure.\n\nThe example below illustrates this:\n\n```bash\n$ docker
|
|
service create \\\n --name nginx \\\n --replicas 2 \\\n --replicas-max-per-node
|
|
1 \\\n --placement-pref 'spread=node.labels.datacenter' \\\n nginx\n```\n\n###
|
|
Attach a service to an existing network (--network)\n\nYou can use overlay networks
|
|
to connect one or more services within the swarm.\n\nFirst, create an overlay network
|
|
on a manager node the docker network create\ncommand:\n\n```bash\n$ docker network
|
|
create --driver overlay my-network\n\netjpu59cykrptrgw0z0hk5snf\n```\n\nAfter you
|
|
create an overlay network in swarm mode, all manager nodes have\naccess to the network.\n\nWhen
|
|
you create a service and pass the `--network` flag to attach the service to\nthe
|
|
overlay network:\n\n```bash\n$ docker service create \\\n --replicas 3 \\\n --network
|
|
my-network \\\n --name my-web \\\n nginx\n\n716thylsndqma81j6kkkb5aus\n```\n\nThe
|
|
swarm extends my-network to each node running the service.\n\nContainers on the
|
|
same network can access each other using\n[service discovery](https://docs.docker.com/engine/swarm/networking/#use-swarm-mode-service-discovery).\n\nLong
|
|
form syntax of `--network` allows to specify list of aliases and driver options:
|
|
\ \n`--network name=my-network,alias=web1,driver-opt=field1=value1`\n\n### Publish
|
|
service ports externally to the swarm (-p, --publish)\n\nYou can publish service
|
|
ports to make them available externally to the swarm\nusing the `--publish` flag.
|
|
The `--publish` flag can take two different styles\nof arguments. The short version
|
|
is positional, and allows you to specify the\npublished port and target port separated
|
|
by a colon.\n\n```bash\n$ docker service create --name my_web --replicas 3 --publish
|
|
8080:80 nginx\n```\n\nThere is also a long format, which is easier to read and allows
|
|
you to specify\nmore options. The long format is preferred. You cannot specify the
|
|
service's\nmode when using the short format. Here is an example of using the long
|
|
format\nfor the same service as above:\n\n```bash\n$ docker service create --name
|
|
my_web --replicas 3 --publish published=8080,target=80 nginx\n```\n\nThe options
|
|
you can specify are:\n\n<table>\n<thead>\n<tr>\n <th>Option</th>\n <th>Short syntax</th>\n
|
|
\ <th>Long syntax</th>\n <th>Description</th>\n</tr>\n</thead>\n<tr>\n <td>published
|
|
and target port</td>\n <td><tt>--publish 8080:80</tt></td>\n <td><tt>--publish
|
|
published=8080,target=80</tt></td>\n <td><p>\n The target port within the container
|
|
and the port to map it to on the\n nodes, using the routing mesh (<tt>ingress</tt>)
|
|
or host-level networking.\n More options are available, later in this table.
|
|
The key-value syntax is\n preferred, because it is somewhat self-documenting.\n
|
|
\ </p></td>\n</tr>\n<tr>\n <td>mode</td>\n <td>Not possible to set using short
|
|
syntax.</td>\n <td><tt>--publish published=8080,target=80,mode=host</tt></td>\n
|
|
\ <td><p>\n The mode to use for binding the port, either <tt>ingress</tt> or
|
|
<tt>host</tt>.\n Defaults to <tt>ingress</tt> to use the routing mesh.\n </p></td>\n</tr>\n<tr>\n
|
|
\ <td>protocol</td>\n <td><tt>--publish 8080:80/tcp</tt></td>\n <td><tt>--publish
|
|
published=8080,target=80,protocol=tcp</tt></td>\n <td><p>\n The protocol to
|
|
use, <tt>tcp</tt> , <tt>udp</tt>, or <tt>sctp</tt>. Defaults to\n <tt>tcp</tt>.
|
|
To bind a port for both protocols, specify the <tt>-p</tt> or\n <tt>--publish</tt>
|
|
flag twice.\n </p></td>\n</tr>\n</table>\n\nWhen you publish a service port using
|
|
`ingress` mode, the swarm routing mesh\nmakes the service accessible at the published
|
|
port on every node regardless if\nthere is a task for the service running on the
|
|
node. If you use `host` mode,\nthe port is only bound on nodes where the service
|
|
is running, and a given port\non a node can only be bound once. You can only set
|
|
the publication mode using\nthe long syntax. For more information refer to\n[Use
|
|
swarm mode routing mesh](https://docs.docker.com/engine/swarm/ingress/).\n\n###
|
|
Provide credential specs for managed service accounts (Windows only)\n\nThis option
|
|
is only used for services using Windows containers. The\n`--credential-spec` must
|
|
be in the format `file://<filename>` or\n`registry://<value-name>`.\n\nWhen using
|
|
the `file://<filename>` format, the referenced file must be\npresent in the `CredentialSpecs`
|
|
subdirectory in the docker data directory,\nwhich defaults to `C:\\ProgramData\\Docker\\`
|
|
on Windows. For example,\nspecifying `file://spec.json` loads `C:\\ProgramData\\Docker\\CredentialSpecs\\spec.json`.\n\nWhen
|
|
using the `registry://<value-name>` format, the credential spec is\nread from the
|
|
Windows registry on the daemon's host. The specified\nregistry value must be located
|
|
in:\n\n HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Virtualization\\Containers\\CredentialSpecs\n\n\n###
|
|
Create services using templates\n\nYou can use templates for some flags of `service
|
|
create`, using the syntax\nprovided by the Go's [text/template](http://golang.org/pkg/text/template/)
|
|
package.\n\nThe supported flags are the following :\n\n- `--hostname`\n- `--mount`\n-
|
|
`--env`\n\nValid placeholders for the Go template are listed below:\n\n\n<table>\n
|
|
\ <tr>\n <th>Placeholder</th>\n <th>Description</th>\n </tr>\n <tr>\n <td><tt>.Service.ID</tt></td>\n
|
|
\ <td>Service ID</td>\n </tr>\n <tr>\n <td><tt>.Service.Name</tt></td>\n
|
|
\ <td>Service name</td>\n </tr>\n <tr>\n <td><tt>.Service.Labels</tt></td>\n
|
|
\ <td>Service labels</td>\n </tr>\n <tr>\n <td><tt>.Node.ID</tt></td>\n <td>Node
|
|
ID</td>\n </tr>\n <tr>\n <td><tt>.Node.Hostname</tt></td>\n <td>Node Hostname</td>\n
|
|
\ </tr>\n <tr>\n <td><tt>.Task.ID</tt></td>\n <td>Task ID</td>\n </tr>\n
|
|
\ <tr>\n <td><tt>.Task.Name</tt></td>\n <td>Task name</td>\n </tr>\n <tr>\n
|
|
\ <td><tt>.Task.Slot</tt></td>\n <td>Task slot</td>\n </tr>\n</table>\n\n\n####
|
|
Template example\n\nIn this example, we are going to set the template of the created
|
|
containers based on the\nservice's name, the node's ID and hostname where it sits.\n\n```bash\n$
|
|
docker service create --name hosttempl \\\n --hostname=\"{{.Node.Hostname}}-{{.Node.ID}}-{{.Service.Name}}\"\\\n
|
|
\ busybox top\n\nva8ew30grofhjoychbr6iot8c\n\n$ docker service
|
|
ps va8ew30grofhjoychbr6iot8c\n\nID NAME IMAGE NODE
|
|
\ DESIRED STATE CURRENT STATE ERROR PORTS\nwo41w8hg8qan
|
|
\ hosttempl.1 busybox:latest@sha256:29f5d56d12684887bdfa50dcd29fc31eea4aaf4ad3bec43daf19026a7ce69912
|
|
\ 2e7a8a9c4da2 Running Running about a minute ago\n\n$ docker inspect --format=\"{{.Config.Hostname}}\"
|
|
2e7a8a9c4da2-wo41w8hg8qanxwjwsg4kxpprj-hosttempl\n\nx3ti0erg11rjpg64m75kej2mz-hosttempl\n```\n\n###
|
|
Specify isolation mode (Windows)\n\nBy default, tasks scheduled on Windows nodes
|
|
are run using the default isolation mode\nconfigured for this particular node. To
|
|
force a specific isolation mode, you can use\nthe `--isolation` flag:\n\n```bash\n$
|
|
docker service create --name myservice --isolation=process microsoft/nanoserver\n```\n\nSupported
|
|
isolation modes on Windows are:\n- `default`: use default settings specified on
|
|
the node running the task\n- `process`: use process isolation (Windows server only)\n-
|
|
`hyperv`: use Hyper-V isolation\n\n### Create services requesting Generic Resources\n\nYou
|
|
can narrow the kind of nodes your task can land on through the using the\n`--generic-resource`
|
|
flag (if the nodes advertise these resources):\n\n```bash\n$ docker service create
|
|
--name cuda \\\n --generic-resource \"NVIDIA-GPU=2\" \\\n
|
|
\ --generic-resource \"SSD=1\" \\\n nvidia/cuda\n```"
|
|
deprecated: false
|
|
min_api_version: "1.24"
|
|
experimental: false
|
|
experimentalcli: false
|
|
kubernetes: false
|
|
swarm: true
|
|
|