summaryrefslogtreecommitdiff
path: root/devdocs/docker/engine%2Fswarm%2Fservices%2Findex.html
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2024-04-07 13:41:34 -0500
committerCraig Jennings <c@cjennings.net>2024-04-07 13:41:34 -0500
commit754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 (patch)
treef1190704f78f04a2b0b4c977d20fe96a828377f1 /devdocs/docker/engine%2Fswarm%2Fservices%2Findex.html
new repository
Diffstat (limited to 'devdocs/docker/engine%2Fswarm%2Fservices%2Findex.html')
-rw-r--r--devdocs/docker/engine%2Fswarm%2Fservices%2Findex.html154
1 files changed, 154 insertions, 0 deletions
diff --git a/devdocs/docker/engine%2Fswarm%2Fservices%2Findex.html b/devdocs/docker/engine%2Fswarm%2Fservices%2Findex.html
new file mode 100644
index 00000000..2efc2b4d
--- /dev/null
+++ b/devdocs/docker/engine%2Fswarm%2Fservices%2Findex.html
@@ -0,0 +1,154 @@
+<h1>Deploy services to a swarm</h1>
+
+<p>Swarm services use a <em>declarative</em> model, which means that you define the desired state of the service, and rely upon Docker to maintain this state. The state includes information such as (but not limited to):</p> <ul> <li>the image name and tag the service containers should run</li> <li>how many containers participate in the service</li> <li>whether any ports are exposed to clients outside the swarm</li> <li>whether the service should start automatically when Docker starts</li> <li>the specific behavior that happens when the service is restarted (such as whether a rolling restart is used)</li> <li>characteristics of the nodes where the service can run (such as resource constraints and placement preferences)</li> </ul> <p>For an overview of swarm mode, see <a href="../key-concepts/index">Swarm mode key concepts</a>. For an overview of how services work, see <a href="../how-swarm-mode-works/services/index">How services work</a>.</p> <h2 id="create-a-service">Create a service</h2> <p>To create a single-replica service with no extra configuration, you only need to supply the image name. This command starts an Nginx service with a randomly-generated name and no published ports. This is a naive example, since you can’t interact with the Nginx service.</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create nginx
+</pre></div> <p>The service is scheduled on an available node. To confirm that the service was created and started successfully, use the <code class="language-plaintext highlighter-rouge">docker service ls</code> command:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service ls
+
+ID NAME MODE REPLICAS IMAGE PORTS
+a3iixnklxuem quizzical_lamarr replicated 1/1 docker.io/library/nginx@sha256:41ad9967ea448d7c2b203c699b429abe1ed5af331cd92533900c6d77490e0268
+</pre></div> <p>Created services do not always run right away. A service can be in a pending state if its image is unavailable, if no node meets the requirements you configure for the service, or other reasons. See <a href="../how-swarm-mode-works/services/index#pending-services">Pending services</a> for more information.</p> <p>To provide a name for your service, use the <code class="language-plaintext highlighter-rouge">--name</code> flag:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create --name my_web nginx
+</pre></div> <p>Just like with standalone containers, you can specify a command that the service’s containers should run, by adding it after the image name. This example starts a service called <code class="language-plaintext highlighter-rouge">helloworld</code> which uses an <code class="language-plaintext highlighter-rouge">alpine</code> image and runs the command <code class="language-plaintext highlighter-rouge">ping docker.com</code>:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create --name helloworld alpine ping docker.com
+</pre></div> <p>You can also specify an image tag for the service to use. This example modifies the previous one to use the <code class="language-plaintext highlighter-rouge">alpine:3.6</code> tag:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create --name helloworld alpine:3.6 ping docker.com
+</pre></div> <p>For more details about image tag resolution, see <a href="#specify-the-image-version-a-service-should-use">Specify the image version the service should use</a>.</p> <h3 id="gmsa-for-swarm">gMSA for Swarm</h3> <p>Swarm now allows using a Docker Config as a gMSA credential spec - a requirement for Active Directory-authenticated applications. This reduces the burden of distributing credential specs to the nodes they’re used on.</p> <p>The following example assumes a gMSA and its credential spec (called credspec.json) already exists, and that the nodes being deployed to are correctly configured for the gMSA.</p> <p>To use a Config as a credential spec, first create the Docker Config containing the credential spec:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker config create credspec credspec.json
+</pre></div> <p>Now, you should have a Docker Config named credspec, and you can create a service using this credential spec. To do so, use the --credential-spec flag with the config name, like this:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create --credential-spec="config://credspec" &lt;your image&gt;
+</pre></div> <p>Your service will use the gMSA credential spec when it starts, but unlike a typical Docker Config (used by passing the --config flag), the credential spec will not be mounted into the container.</p> <h3 id="create-a-service-using-an-image-on-a-private-registry">Create a service using an image on a private registry</h3> <p>If your image is available on a private registry which requires login, use the <code class="language-plaintext highlighter-rouge">--with-registry-auth</code> flag with <code class="language-plaintext highlighter-rouge">docker service create</code>, after logging in. If your image is stored on <code class="language-plaintext highlighter-rouge">registry.example.com</code>, which is a private registry, use a command like the following:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker login registry.example.com
+
+$ docker service create \
+ --with-registry-auth \
+ --name my_service \
+ registry.example.com/acme/my_image:latest
+</pre></div> <p>This passes the login token from your local client to the swarm nodes where the service is deployed, using the encrypted WAL logs. With this information, the nodes are able to log into the registry and pull the image.</p> <h3 id="provide-credential-specs-for-managed-service-accounts">Provide credential specs for managed service accounts</h3> <p>In Enterprise Edition 3.0, security is improved through the centralized distribution and management of Group Managed Service Account(gMSA) credentials using Docker Config functionality. Swarm now allows using a Docker Config as a gMSA credential spec, which reduces the burden of distributing credential specs to the nodes on which they are used.</p> <p><strong>Note</strong>: This option is only applicable to services using Windows containers.</p> <p>Credential spec files are applied at runtime, eliminating the need for host-based credential spec files or registry entries - no gMSA credentials are written to disk on worker nodes. You can make credential specs available to Docker Engine running swarm kit worker nodes before a container starts. When deploying a service using a gMSA-based config, the credential spec is passed directly to the runtime of containers in that service.</p> <p>The <code class="language-plaintext highlighter-rouge">--credential-spec</code> must be one of the following formats:</p> <ul> <li>
+<code class="language-plaintext highlighter-rouge">file://&lt;filename&gt;</code>: The referenced file must be present in the <code class="language-plaintext highlighter-rouge">CredentialSpecs</code> subdirectory in the docker data directory, which defaults to <code class="language-plaintext highlighter-rouge">C:\ProgramData\Docker\</code> on Windows. For example, specifying <code class="language-plaintext highlighter-rouge">file://spec.json</code> loads <code class="language-plaintext highlighter-rouge">C:\ProgramData\Docker\CredentialSpecs\spec.json</code>.</li> <li>
+<code class="language-plaintext highlighter-rouge">registry://&lt;value-name&gt;</code>: The credential spec is read from the Windows registry on the daemon’s host.</li> <li>
+<code class="language-plaintext highlighter-rouge">config://&lt;config-name&gt;</code>: The config name is automatically converted to the config ID in the CLI. The credential spec contained in the specified <code class="language-plaintext highlighter-rouge">config</code> is used.</li> </ul> <p>The following simple example retrieves the gMSA name and JSON contents from your Active Directory (AD) instance:</p> <div class="highlight"><pre class="highlight" data-language="">$ name="mygmsa"
+$ contents="{...}"
+$ echo $contents &gt; contents.json
+</pre></div> <p>Make sure that the nodes to which you are deploying are correctly configured for the gMSA.</p> <p>To use a Config as a credential spec, create a Docker Config in a credential spec file named <code class="language-plaintext highlighter-rouge">credpspec.json</code>. You can specify any name for the name of the <code class="language-plaintext highlighter-rouge">config</code>.</p> <div class="highlight"><pre class="highlight" data-language="">$ docker config create --label com.docker.gmsa.name=mygmsa credspec credspec.json
+</pre></div> <p>Now you can create a service using this credential spec. Specify the <code class="language-plaintext highlighter-rouge">--credential-spec</code> flag with the config name:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create --credential-spec="config://credspec" &lt;your image&gt;
+</pre></div> <p>Your service uses the gMSA credential spec when it starts, but unlike a typical Docker Config (used by passing the --config flag), the credential spec is not mounted into the container.</p> <h2 id="update-a-service">Update a service</h2> <p>You can change almost everything about an existing service using the <code class="language-plaintext highlighter-rouge">docker service update</code> command. When you update a service, Docker stops its containers and restarts them with the new configuration.</p> <p>Since Nginx is a web service, it works much better if you publish port 80 to clients outside the swarm. You can specify this when you create the service, using the <code class="language-plaintext highlighter-rouge">-p</code> or <code class="language-plaintext highlighter-rouge">--publish</code> flag. When updating an existing service, the flag is <code class="language-plaintext highlighter-rouge">--publish-add</code>. There is also a <code class="language-plaintext highlighter-rouge">--publish-rm</code> flag to remove a port that was previously published.</p> <p>Assuming that the <code class="language-plaintext highlighter-rouge">my_web</code> service from the previous section still exists, use the following command to update it to publish port 80.</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service update --publish-add 80 my_web
+</pre></div> <p>To verify that it worked, use <code class="language-plaintext highlighter-rouge">docker service ls</code>:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service ls
+
+ID NAME MODE REPLICAS IMAGE PORTS
+4nhxl7oxw5vz my_web replicated 1/1 docker.io/library/nginx@sha256:41ad9967ea448d7c2b203c699b429abe1ed5af331cd92533900c6d77490e0268 *:0-&gt;80/tcp
+</pre></div> <p>For more information on how publishing ports works, see <a href="#publish-ports">publish ports</a>.</p> <p>You can update almost every configuration detail about an existing service, including the image name and tag it runs. See <a href="#update-a-services-image-after-creation">Update a service’s image after creation</a>.</p> <h2 id="remove-a-service">Remove a service</h2> <p>To remove a service, use the <code class="language-plaintext highlighter-rouge">docker service remove</code> command. You can remove a service by its ID or name, as shown in the output of the <code class="language-plaintext highlighter-rouge">docker service ls</code> command. The following command removes the <code class="language-plaintext highlighter-rouge">my_web</code> service.</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service remove my_web
+</pre></div> <h2 id="service-configuration-details">Service configuration details</h2> <p>The following sections provide details about service configuration. This topic does not cover every flag or scenario. In almost every instance where you can define a configuration at service creation, you can also update an existing service’s configuration in a similar way.</p> <p>See the command-line references for <a href="../../reference/commandline/service_create/index"><code class="language-plaintext highlighter-rouge">docker service create</code></a> and <a href="../../reference/commandline/service_update/index"><code class="language-plaintext highlighter-rouge">docker service update</code></a>, or run one of those commands with the <code class="language-plaintext highlighter-rouge">--help</code> flag.</p> <h3 id="configure-the-runtime-environment">Configure the runtime environment</h3> <p>You can configure the following options for the runtime environment in the container:</p> <ul> <li>environment variables using the <code class="language-plaintext highlighter-rouge">--env</code> flag</li> <li>the working directory inside the container using the <code class="language-plaintext highlighter-rouge">--workdir</code> flag</li> <li>the username or UID using the <code class="language-plaintext highlighter-rouge">--user</code> flag</li> </ul> <p>The following service’s containers have an environment variable <code class="language-plaintext highlighter-rouge">$MYVAR</code> set to <code class="language-plaintext highlighter-rouge">myvalue</code>, run from the <code class="language-plaintext highlighter-rouge">/tmp/</code> directory, and run as the <code class="language-plaintext highlighter-rouge">my_user</code> user.</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create --name helloworld \
+ --env MYVAR=myvalue \
+ --workdir /tmp \
+ --user my_user \
+ alpine ping docker.com
+</pre></div> <h3 id="update-the-command-an-existing-service-runs">Update the command an existing service runs</h3> <p>To update the command an existing service runs, you can use the <code class="language-plaintext highlighter-rouge">--args</code> flag. The following example updates an existing service called <code class="language-plaintext highlighter-rouge">helloworld</code> so that it runs the command <code class="language-plaintext highlighter-rouge">ping docker.com</code> instead of whatever command it was running before:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service update --args "ping docker.com" helloworld
+</pre></div> <h3 id="specify-the-image-version-a-service-should-use">Specify the image version a service should use</h3> <p>When you create a service without specifying any details about the version of the image to use, the service uses the version tagged with the <code class="language-plaintext highlighter-rouge">latest</code> tag. You can force the service to use a specific version of the image in a few different ways, depending on your desired outcome.</p> <p>An image version can be expressed in several different ways:</p> <ul> <li> <p>If you specify a tag, the manager (or the Docker client, if you use <a href="#image_resolution_with_trust">content trust</a>) resolves that tag to a digest. When the request to create a container task is received on a worker node, the worker node only sees the digest, not the tag.</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create --name="myservice" ubuntu:16.04
+</pre></div> <p>Some tags represent discrete releases, such as <code class="language-plaintext highlighter-rouge">ubuntu:16.04</code>. Tags like this almost always resolve to a stable digest over time. It is recommended that you use this kind of tag when possible.</p> <p>Other types of tags, such as <code class="language-plaintext highlighter-rouge">latest</code> or <code class="language-plaintext highlighter-rouge">nightly</code>, may resolve to a new digest often, depending on how often an image’s author updates the tag. It is not recommended to run services using a tag which is updated frequently, to prevent different service replica tasks from using different image versions.</p> </li> <li> <p>If you don’t specify a version at all, by convention the image’s <code class="language-plaintext highlighter-rouge">latest</code> tag is resolved to a digest. Workers use the image at this digest when creating the service task.</p> <p>Thus, the following two commands are equivalent:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create --name="myservice" ubuntu
+
+$ docker service create --name="myservice" ubuntu:latest
+</pre></div> </li> <li> <p>If you specify a digest directly, that exact version of the image is always used when creating service tasks.</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create \
+ --name="myservice" \
+ ubuntu:16.04@sha256:35bc48a1ca97c3971611dc4662d08d131869daa692acb281c7e9e052924e38b1
+</pre></div> </li> </ul> <p>When you create a service, the image’s tag is resolved to the specific digest the tag points to <strong>at the time of service creation</strong>. Worker nodes for that service use that specific digest forever unless the service is explicitly updated. This feature is particularly important if you do use often-changing tags such as <code class="language-plaintext highlighter-rouge">latest</code>, because it ensures that all service tasks use the same version of the image.</p> <blockquote id="image_resolution_with_trust"> <p><strong>Note</strong>: If <a href="../../security/trust/index">content trust</a> is enabled, the client actually resolves the image’s tag to a digest before contacting the swarm manager, to verify that the image is signed. Thus, if you use content trust, the swarm manager receives the request pre-resolved. In this case, if the client cannot resolve the image to a digest, the request fails.</p> </blockquote> <p>If the manager can’t resolve the tag to a digest, each worker node is responsible for resolving the tag to a digest, and different nodes may use different versions of the image. If this happens, a warning like the following is logged, substituting the placeholders for real information.</p> <pre data-language="">unable to pin image &lt;IMAGE-NAME&gt; to digest: &lt;REASON&gt;
+</pre> <p>To see an image’s current digest, issue the command <code class="language-plaintext highlighter-rouge">docker inspect &lt;IMAGE&gt;:&lt;TAG&gt;</code> and look for the <code class="language-plaintext highlighter-rouge">RepoDigests</code> line. The following is the current digest for <code class="language-plaintext highlighter-rouge">ubuntu:latest</code> at the time this content was written. The output is truncated for clarity.</p> <div class="highlight"><pre class="highlight" data-language="">$ docker inspect ubuntu:latest
+</pre></div> <div class="highlight"><pre class="highlight" data-language="">"RepoDigests": [
+ "ubuntu@sha256:35bc48a1ca97c3971611dc4662d08d131869daa692acb281c7e9e052924e38b1"
+],
+</pre></div> <p>After you create a service, its image is never updated unless you explicitly run <code class="language-plaintext highlighter-rouge">docker service update</code> with the <code class="language-plaintext highlighter-rouge">--image</code> flag as described below. Other update operations such as scaling the service, adding or removing networks or volumes, renaming the service, or any other type of update operation do not update the service’s image.</p> <h3 id="update-a-services-image-after-creation">Update a service’s image after creation</h3> <p>Each tag represents a digest, similar to a Git hash. Some tags, such as <code class="language-plaintext highlighter-rouge">latest</code>, are updated often to point to a new digest. Others, such as <code class="language-plaintext highlighter-rouge">ubuntu:16.04</code>, represent a released software version and are not expected to update to point to a new digest often if at all. When you create a service, it is constrained to create tasks using a specific digest of an image until you update the service using <code class="language-plaintext highlighter-rouge">service update</code> with the <code class="language-plaintext highlighter-rouge">--image</code> flag.</p> <p>When you run <code class="language-plaintext highlighter-rouge">service update</code> with the <code class="language-plaintext highlighter-rouge">--image</code> flag, the swarm manager queries Docker Hub or your private Docker registry for the digest the tag currently points to and updates the service tasks to use that digest.</p> <blockquote> <p><strong>Note</strong>: If you use <a href="#image_resolution_with_trust">content trust</a>, the Docker client resolves image and the swarm manager receives the image and digest, rather than a tag.</p> </blockquote> <p>Usually, the manager can resolve the tag to a new digest and the service updates, redeploying each task to use the new image. If the manager can’t resolve the tag or some other problem occurs, the next two sections outline what to expect.</p> <h4 id="if-the-manager-resolves-the-tag">If the manager resolves the tag</h4> <p>If the swarm manager can resolve the image tag to a digest, it instructs the worker nodes to redeploy the tasks and use the image at that digest.</p> <ul> <li> <p>If a worker has cached the image at that digest, it uses it.</p> </li> <li> <p>If not, it attempts to pull the image from Docker Hub or the private registry.</p> <ul> <li> <p>If it succeeds, the task is deployed using the new image.</p> </li> <li> <p>If the worker fails to pull the image, the service fails to deploy on that worker node. Docker tries again to deploy the task, possibly on a different worker node.</p> </li> </ul> </li> </ul> <h4 id="if-the-manager-cannot-resolve-the-tag">If the manager cannot resolve the tag</h4> <p>If the swarm manager cannot resolve the image to a digest, all is not lost:</p> <ul> <li> <p>The manager instructs the worker nodes to redeploy the tasks using the image at that tag.</p> </li> <li> <p>If the worker has a locally cached image that resolves to that tag, it uses that image.</p> </li> <li> <p>If the worker does not have a locally cached image that resolves to the tag, the worker tries to connect to Docker Hub or the private registry to pull the image at that tag.</p> <ul> <li> <p>If this succeeds, the worker uses that image.</p> </li> <li> <p>If this fails, the task fails to deploy and the manager tries again to deploy the task, possibly on a different worker node.</p> </li> </ul> </li> </ul> <h3 id="publish-ports">Publish ports</h3> <p>When you create a swarm service, you can publish that service’s ports to hosts outside the swarm in two ways:</p> <ul> <li> <p><a href="#publish-a-services-ports-using-the-routing-mesh">You can rely on the routing mesh</a>. When you publish a service port, the swarm makes the service accessible at the target port on every node, regardless of whether there is a task for the service running on that node or not. This is less complex and is the right choice for many types of services.</p> </li> <li> <p><a href="#publish-a-services-ports-directly-on-the-swarm-node">You can publish a service task’s port directly on the swarm node</a> where that service is running. This bypasses the routing mesh and provides the maximum flexibility, including the ability for you to develop your own routing framework. However, you are responsible for keeping track of where each task is running and routing requests to the tasks, and load-balancing across the nodes.</p> </li> </ul> <p>Keep reading for more information and use cases for each of these methods.</p> <h4 id="publish-a-services-ports-using-the-routing-mesh">Publish a service’s ports using the routing mesh</h4> <p>To publish a service’s ports externally to the swarm, use the <code class="language-plaintext highlighter-rouge">--publish &lt;PUBLISHED-PORT&gt;:&lt;SERVICE-PORT&gt;</code> flag. The swarm makes the service accessible at the published port <strong>on every swarm node</strong>. If an external host connects to that port on any swarm node, the routing mesh routes it to a task. The external host does not need to know the IP addresses or internally-used ports of the service tasks to interact with the service. When a user or process connects to a service, any worker node running a service task may respond. For more details about swarm service networking, see <a href="https://docs.docker.com/network/overlay">Manage swarm service networks</a>.</p> <h5 id="example-run-a-three-task-nginx-service-on-10-node-swarm">Example: Run a three-task Nginx service on 10-node swarm</h5> <p>Imagine that you have a 10-node swarm, and you deploy an Nginx service running three tasks on a 10-node swarm:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create --name my_web \
+ --replicas 3 \
+ --publish published=8080,target=80 \
+ nginx
+</pre></div> <p>Three tasks run on up to three nodes. You don’t need to know which nodes are running the tasks; connecting to port 8080 on <strong>any</strong> of the 10 nodes connects you to one of the three <code class="language-plaintext highlighter-rouge">nginx</code> tasks. You can test this using <code class="language-plaintext highlighter-rouge">curl</code>. The following example assumes that <code class="language-plaintext highlighter-rouge">localhost</code> is one of the swarm nodes. If this is not the case, or <code class="language-plaintext highlighter-rouge">localhost</code> does not resolve to an IP address on your host, substitute the host’s IP address or resolvable host name.</p> <p>The HTML output is truncated:</p> <div class="highlight"><pre class="highlight" data-language="">$ curl localhost:8080
+
+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;title&gt;Welcome to nginx!&lt;/title&gt;
+...truncated...
+&lt;/html&gt;
+</pre></div> <p>Subsequent connections may be routed to the same swarm node or a different one.</p> <h4 id="publish-a-services-ports-directly-on-the-swarm-node">Publish a service’s ports directly on the swarm node</h4> <p>Using the routing mesh may not be the right choice for your application if you need to make routing decisions based on application state or you need total control of the process for routing requests to your service’s tasks. To publish a service’s port directly on the node where it is running, use the <code class="language-plaintext highlighter-rouge">mode=host</code> option to the <code class="language-plaintext highlighter-rouge">--publish</code> flag.</p> <blockquote> <p><strong>Note</strong>: If you publish a service’s ports directly on the swarm node using <code class="language-plaintext highlighter-rouge">mode=host</code> and also set <code class="language-plaintext highlighter-rouge">published=&lt;PORT&gt;</code> this creates an implicit limitation that you can only run one task for that service on a given swarm node. You can work around this by specifying <code class="language-plaintext highlighter-rouge">published</code> without a port definition, which causes Docker to assign a random port for each task.</p> <p>In addition, if you use <code class="language-plaintext highlighter-rouge">mode=host</code> and you do not use the <code class="language-plaintext highlighter-rouge">--mode=global</code> flag on <code class="language-plaintext highlighter-rouge">docker service create</code>, it is difficult to know which nodes are running the service to route work to them.</p> </blockquote> <h5 id="example-run-an-nginx-web-server-service-on-every-swarm-node">Example: Run an <code class="language-plaintext highlighter-rouge">nginx</code> web server service on every swarm node</h5> <p><a href="https://hub.docker.com/_/nginx/">nginx</a> is an open source reverse proxy, load balancer, HTTP cache, and a web server. If you run nginx as a service using the routing mesh, connecting to the nginx port on any swarm node shows you the web page for (effectively) <strong>a random swarm node</strong> running the service.</p> <p>The following example runs nginx as a service on each node in your swarm and exposes nginx port locally on each swarm node.</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create \
+ --mode global \
+ --publish mode=host,target=80,published=8080 \
+ --name=nginx \
+ nginx:latest
+</pre></div> <p>You can reach the nginx server on port 8080 of every swarm node. If you add a node to the swarm, a nginx task is started on it. You cannot start another service or container on any swarm node which binds to port 8080.</p> <blockquote> <p><strong>Note</strong>: This is a naive example. Creating an application-layer routing framework for a multi-tiered service is complex and out of scope for this topic.</p> </blockquote> <h3 id="connect-the-service-to-an-overlay-network">Connect the service to an overlay network</h3> <p>You can use overlay networks to connect one or more services within the swarm.</p> <p>First, create overlay network on a manager node using the <code class="language-plaintext highlighter-rouge">docker network create</code> command with the <code class="language-plaintext highlighter-rouge">--driver overlay</code> flag.</p> <div class="highlight"><pre class="highlight" data-language="">$ docker network create --driver overlay my-network
+</pre></div> <p>After you create an overlay network in swarm mode, all manager nodes have access to the network.</p> <p>You can create a new service and pass the <code class="language-plaintext highlighter-rouge">--network</code> flag to attach the service to the overlay network:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create \
+ --replicas 3 \
+ --network my-network \
+ --name my-web \
+ nginx
+</pre></div> <p>The swarm extends <code class="language-plaintext highlighter-rouge">my-network</code> to each node running the service.</p> <p>You can also connect an existing service to an overlay network using the <code class="language-plaintext highlighter-rouge">--network-add</code> flag.</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service update --network-add my-network my-web
+</pre></div> <p>To disconnect a running service from a network, use the <code class="language-plaintext highlighter-rouge">--network-rm</code> flag.</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service update --network-rm my-network my-web
+</pre></div> <p>For more information on overlay networking and service discovery, refer to <a href="https://docs.docker.com/network/overlay">Attach services to an overlay network</a> and <a href="https://docs.docker.com/network/overlay/">Docker swarm mode overlay network security model</a>.</p> <h3 id="grant-a-service-access-to-secrets">Grant a service access to secrets</h3> <p>To create a service with access to Docker-managed secrets, use the <code class="language-plaintext highlighter-rouge">--secret</code> flag. For more information, see <a href="../secrets/index">Manage sensitive strings (secrets) for Docker services</a></p> <h3 id="customize-a-services-isolation-mode">Customize a service’s isolation mode</h3> <p>Docker allows you to specify a swarm service’s isolation mode. <strong>This setting applies to Windows hosts only and is ignored for Linux hosts.</strong> The isolation mode can be one of the following:</p> <ul> <li> <p><code class="language-plaintext highlighter-rouge">default</code>: Use the default isolation mode configured for the Docker host, as configured by the <code class="language-plaintext highlighter-rouge">-exec-opt</code> flag or <code class="language-plaintext highlighter-rouge">exec-opts</code> array in <code class="language-plaintext highlighter-rouge">daemon.json</code>. If the daemon does not specify an isolation technology, <code class="language-plaintext highlighter-rouge">process</code> is the default for Windows Server, and <code class="language-plaintext highlighter-rouge">hyperv</code> is the default (and only) choice for Windows 10.</p> </li> <li> <p><code class="language-plaintext highlighter-rouge">process</code>: Run the service tasks as a separate process on the host.</p> <blockquote> <p><strong>Note</strong>: <code class="language-plaintext highlighter-rouge">process</code> isolation mode is only supported on Windows Server. Windows 10 only supports <code class="language-plaintext highlighter-rouge">hyperv</code> isolation mode.</p> </blockquote> </li> <li> <p><code class="language-plaintext highlighter-rouge">hyperv</code>: Run the service tasks as isolated <code class="language-plaintext highlighter-rouge">hyperv</code> tasks. This increases overhead but provides more isolation.</p> </li> </ul> <p>You can specify the isolation mode when creating or updating a new service using the <code class="language-plaintext highlighter-rouge">--isolation</code> flag.</p> <h3 id="control-service-placement">Control service placement</h3> <p>Swarm services provide a few different ways for you to control scale and placement of services on different nodes.</p> <ul> <li> <p>You can specify whether the service needs to run a specific number of replicas or should run globally on every worker node. See <a href="#replicated-or-global-services">Replicated or global services</a>.</p> </li> <li> <p>You can configure the service’s <a href="#reserve-memory-or-cpus-for-a-service">CPU or memory requirements</a>, and the service only runs on nodes which can meet those requirements.</p> </li> <li> <p><a href="#placement-constraints">Placement constraints</a> let you configure the service to run only on nodes with specific (arbitrary) metadata set, and cause the deployment to fail if appropriate nodes do not exist. For instance, you can specify that your service should only run on nodes where an arbitrary label <code class="language-plaintext highlighter-rouge">pci_compliant</code> is set to <code class="language-plaintext highlighter-rouge">true</code>.</p> </li> <li> <p><a href="#placement-preferences">Placement preferences</a> let you apply an arbitrary label with a range of values to each node, and spread your service’s tasks across those nodes using an algorithm. Currently, the only supported algorithm is <code class="language-plaintext highlighter-rouge">spread</code>, which tries to place them evenly. For instance, if you label each node with a label <code class="language-plaintext highlighter-rouge">rack</code> which has a value from 1-10, then specify a placement preference keyed on <code class="language-plaintext highlighter-rouge">rack</code>, then service tasks are placed as evenly as possible across all nodes with the label <code class="language-plaintext highlighter-rouge">rack</code>, after taking other placement constraints, placement preferences, and other node-specific limitations into account.</p> <p>Unlike constraints, placement preferences are best-effort, and a service does not fail to deploy if no nodes can satisfy the preference. If you specify a placement preference for a service, nodes that match that preference are ranked higher when the swarm managers decide which nodes should run the service tasks. Other factors, such as high availability of the service, also factor into which nodes are scheduled to run service tasks. For example, if you have N nodes with the rack label (and then some others), and your service is configured to run N+1 replicas, the +1 is scheduled on a node that doesn’t already have the service on it if there is one, regardless of whether that node has the <code class="language-plaintext highlighter-rouge">rack</code> label or not.</p> </li> </ul> <h4 id="replicated-or-global-services">Replicated or global services</h4> <p>Swarm mode has two types of services: replicated and global. For replicated services, you specify the number of replica tasks for the swarm manager to schedule onto available nodes. For global services, the scheduler places one task on each available node that meets the service’s <a href="#placement-constraints">placement constraints</a> and <a href="#reserve-memory-or-cpus-for-a-service">resource requirements</a>.</p> <p>You control the type of service using the <code class="language-plaintext highlighter-rouge">--mode</code> flag. If you don’t specify a mode, the service defaults to <code class="language-plaintext highlighter-rouge">replicated</code>. For replicated services, you specify the number of replica tasks you want to start using the <code class="language-plaintext highlighter-rouge">--replicas</code> flag. For example, to start a replicated nginx service with 3 replica tasks:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create \
+ --name my_web \
+ --replicas 3 \
+ nginx
+</pre></div> <p>To start a global service on each available node, pass <code class="language-plaintext highlighter-rouge">--mode global</code> to <code class="language-plaintext highlighter-rouge">docker service create</code>. Every time a new node becomes available, the scheduler places a task for the global service on the new node. For example to start a service that runs alpine on every node in the swarm:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create \
+ --name myservice \
+ --mode global \
+ alpine top
+</pre></div> <p>Service constraints let you set criteria for a node to meet before the scheduler deploys a service to the node. You can apply constraints to the service based upon node attributes and metadata or engine metadata. For more information on constraints, refer to the <code class="language-plaintext highlighter-rouge">docker service create</code> <a href="../../reference/commandline/service_create/index">CLI reference</a>.</p> <h4 id="reserve-memory-or-cpus-for-a-service">Reserve memory or CPUs for a service</h4> <p>To reserve a given amount of memory or number of CPUs for a service, use the <code class="language-plaintext highlighter-rouge">--reserve-memory</code> or <code class="language-plaintext highlighter-rouge">--reserve-cpu</code> flags. If no available nodes can satisfy the requirement (for instance, if you request 4 CPUs and no node in the swarm has 4 CPUs), the service remains in a pending state until an appropriate node is available to run its tasks.</p> <h5 id="out-of-memory-exceptions-oome">Out Of Memory Exceptions (OOME)</h5> <p>If your service attempts to use more memory than the swarm node has available, you may experience an Out Of Memory Exception (OOME) and a container, or the Docker daemon, might be killed by the kernel OOM killer. To prevent this from happening, ensure that your application runs on hosts with adequate memory and see <a href="https://docs.docker.com/config/containers/resource_constraints/#understand-the-risks-of-running-out-of-memory">Understand the risks of running out of memory</a>.</p> <p>Swarm services allow you to use resource constraints, placement preferences, and labels to ensure that your service is deployed to the appropriate swarm nodes.</p> <h4 id="placement-constraints">Placement constraints</h4> <p>Use placement constraints to control the nodes a service can be assigned to. In the following example, the service only runs on nodes with the <a href="../manage-nodes/index#add-or-remove-label-metadata">label</a> <code class="language-plaintext highlighter-rouge">region</code> set to <code class="language-plaintext highlighter-rouge">east</code>. If no appropriately-labelled nodes are available, tasks will wait in <code class="language-plaintext highlighter-rouge">Pending</code> until they become available. The <code class="language-plaintext highlighter-rouge">--constraint</code> flag uses an equality operator (<code class="language-plaintext highlighter-rouge">==</code> or <code class="language-plaintext highlighter-rouge">!=</code>). For replicated services, it is possible that all services run on the same node, or each node only runs one replica, or that some nodes don’t run any replicas. For global services, the service runs on every node that meets the placement constraint and any <a href="#reserve-memory-or-cpus-for-a-service">resource requirements</a>.</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create \
+ --name my-nginx \
+ --replicas 5 \
+ --constraint node.labels.region==east \
+ nginx
+</pre></div> <p>You can also use the <code class="language-plaintext highlighter-rouge">constraint</code> service-level key in a <code class="language-plaintext highlighter-rouge">docker-compose.yml</code> file.</p> <p>If you specify multiple placement constraints, the service only deploys onto nodes where they are all met. The following example limits the service to run on all nodes where <code class="language-plaintext highlighter-rouge">region</code> is set to <code class="language-plaintext highlighter-rouge">east</code> and <code class="language-plaintext highlighter-rouge">type</code> is not set to <code class="language-plaintext highlighter-rouge">devel</code>:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create \
+ --name my-nginx \
+ --mode global \
+ --constraint node.labels.region==east \
+ --constraint node.labels.type!=devel \
+ nginx
+</pre></div> <p>You can also use placement constraints in conjunction with placement preferences and CPU/memory constraints. Be careful not to use settings that are not possible to fulfill.</p> <p>For more information on constraints, refer to the <code class="language-plaintext highlighter-rouge">docker service create</code> <a href="../../reference/commandline/service_create/index">CLI reference</a>.</p> <h4 id="placement-preferences">Placement preferences</h4> <p>While <a href="#placement-constraints">placement constraints</a> limit the nodes a service can run on, <em>placement preferences</em> try to place tasks on appropriate nodes in an algorithmic way (currently, only spread evenly). For instance, if you assign each node a <code class="language-plaintext highlighter-rouge">rack</code> label, you can set a placement preference to spread the service evenly across nodes with the <code class="language-plaintext highlighter-rouge">rack</code> label, by value. This way, if you lose a rack, the service is still running on nodes on other racks.</p> <p>Placement preferences are not strictly enforced. If no node has the label you specify in your preference, the service is deployed as though the preference were not set.</p> <blockquote> <p>Placement preferences are ignored for global services.</p> </blockquote> <p>The following example sets a preference to spread the deployment across nodes based on the value of the <code class="language-plaintext highlighter-rouge">datacenter</code> label. If some nodes have <code class="language-plaintext highlighter-rouge">datacenter=us-east</code> and others have <code class="language-plaintext highlighter-rouge">datacenter=us-west</code>, the service is deployed as evenly as possible across the two sets of nodes.</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create \
+ --replicas 9 \
+ --name redis_2 \
+ --placement-pref 'spread=node.labels.datacenter' \
+ redis:3.0.6
+</pre></div> <blockquote> <p>Missing or null labels</p> <p>Nodes which are missing the label used to spread still receive task assignments. As a group, these nodes receive tasks in equal proportion to any of the other groups identified by a specific label value. In a sense, a missing label is the same as having the label with a null value attached to it. If the service should <strong>only</strong> run on nodes with the label being used for the spread preference, the preference should be combined with a constraint.</p> </blockquote> <p>You can specify multiple placement preferences, and they are processed in the order they are encountered. The following example sets up a service with multiple placement preferences. Tasks are spread first over the various datacenters, and then over racks (as indicated by the respective labels):</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create \
+ --replicas 9 \
+ --name redis_2 \
+ --placement-pref 'spread=node.labels.datacenter' \
+ --placement-pref 'spread=node.labels.rack' \
+ redis:3.0.6
+</pre></div> <p>You can also use placement preferences in conjunction with placement constraints or CPU/memory constraints. Be careful not to use settings that are not possible to fulfill.</p> <p>This diagram illustrates how placement preferences work:</p> <p><img src="data:image/png;base64,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" alt="placement preferences example"></p> <p>When updating a service with <code class="language-plaintext highlighter-rouge">docker service update</code>, <code class="language-plaintext highlighter-rouge">--placement-pref-add</code> appends a new placement preference after all existing placement preferences. <code class="language-plaintext highlighter-rouge">--placement-pref-rm</code> removes an existing placement preference that matches the argument.</p> <h3 id="configure-a-services-update-behavior">Configure a service’s update behavior</h3> <p>When you create a service, you can specify a rolling update behavior for how the swarm should apply changes to the service when you run <code class="language-plaintext highlighter-rouge">docker service update</code>. You can also specify these flags as part of the update, as arguments to <code class="language-plaintext highlighter-rouge">docker service update</code>.</p> <p>The <code class="language-plaintext highlighter-rouge">--update-delay</code> flag configures the time delay between updates to a service task or sets of tasks. You can describe the time <code class="language-plaintext highlighter-rouge">T</code> as a combination of the number of seconds <code class="language-plaintext highlighter-rouge">Ts</code>, minutes <code class="language-plaintext highlighter-rouge">Tm</code>, or hours <code class="language-plaintext highlighter-rouge">Th</code>. So <code class="language-plaintext highlighter-rouge">10m30s</code> indicates a 10 minute 30 second delay.</p> <p>By default the scheduler updates 1 task at a time. You can pass the <code class="language-plaintext highlighter-rouge">--update-parallelism</code> flag to configure the maximum number of service tasks that the scheduler updates simultaneously.</p> <p>When an update to an individual task returns a state of <code class="language-plaintext highlighter-rouge">RUNNING</code>, the scheduler continues the update by continuing to another task until all tasks are updated. If, at any time during an update a task returns <code class="language-plaintext highlighter-rouge">FAILED</code>, the scheduler pauses the update. You can control the behavior using the <code class="language-plaintext highlighter-rouge">--update-failure-action</code> flag for <code class="language-plaintext highlighter-rouge">docker service create</code> or <code class="language-plaintext highlighter-rouge">docker service update</code>.</p> <p>In the example service below, the scheduler applies updates to a maximum of 2 replicas at a time. When an updated task returns either <code class="language-plaintext highlighter-rouge">RUNNING</code> or <code class="language-plaintext highlighter-rouge">FAILED</code>, the scheduler waits 10 seconds before stopping the next task to update:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create \
+ --replicas 10 \
+ --name my_web \
+ --update-delay 10s \
+ --update-parallelism 2 \
+ --update-failure-action continue \
+ alpine
+</pre></div> <p>The <code class="language-plaintext highlighter-rouge">--update-max-failure-ratio</code> flag controls what fraction of tasks can fail during an update before the update as a whole is considered to have failed. For example, with <code class="language-plaintext highlighter-rouge">--update-max-failure-ratio 0.1 --update-failure-action pause</code>, after 10% of the tasks being updated fail, the update is paused.</p> <p>An individual task update is considered to have failed if the task doesn’t start up, or if it stops running within the monitoring period specified with the <code class="language-plaintext highlighter-rouge">--update-monitor</code> flag. The default value for <code class="language-plaintext highlighter-rouge">--update-monitor</code> is 30 seconds, which means that a task failing in the first 30 seconds after its started counts towards the service update failure threshold, and a failure after that is not counted.</p> <h3 id="roll-back-to-the-previous-version-of-a-service">Roll back to the previous version of a service</h3> <p>In case the updated version of a service doesn’t function as expected, it’s possible to manually roll back to the previous version of the service using <code class="language-plaintext highlighter-rouge">docker service update</code>’s <code class="language-plaintext highlighter-rouge">--rollback</code> flag. This reverts the service to the configuration that was in place before the most recent <code class="language-plaintext highlighter-rouge">docker service update</code> command.</p> <p>Other options can be combined with <code class="language-plaintext highlighter-rouge">--rollback</code>; for example, <code class="language-plaintext highlighter-rouge">--update-delay 0s</code> to execute the rollback without a delay between tasks:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service update \
+ --rollback \
+ --update-delay 0s
+ my_web
+</pre></div> <p>You can configure a service to roll back automatically if a service update fails to deploy. See <a href="#automatically-roll-back-if-an-update-fails">Automatically roll back if an update fails</a>.</p> <p>Manual rollback is handled at the server side, which allows manually-initiated rollbacks to respect the new rollback parameters. Note that <code class="language-plaintext highlighter-rouge">--rollback</code> cannot be used in conjunction with other flags to <code class="language-plaintext highlighter-rouge">docker service update</code>.</p> <h3 id="automatically-roll-back-if-an-update-fails">Automatically roll back if an update fails</h3> <p>You can configure a service in such a way that if an update to the service causes redeployment to fail, the service can automatically roll back to the previous configuration. This helps protect service availability. You can set one or more of the following flags at service creation or update. If you do not set a value, the default is used.</p> <table> <thead> <tr> <th style="text-align: left">Flag</th> <th style="text-align: left">Default</th> <th style="text-align: left">Description</th> </tr> </thead> <tbody> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">--rollback-delay</code></td> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">0s</code></td> <td style="text-align: left">Amount of time to wait after rolling back a task before rolling back the next one. A value of <code class="language-plaintext highlighter-rouge">0</code> means to roll back the second task immediately after the first rolled-back task deploys.</td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">--rollback-failure-action</code></td> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">pause</code></td> <td style="text-align: left">When a task fails to roll back, whether to <code class="language-plaintext highlighter-rouge">pause</code> or <code class="language-plaintext highlighter-rouge">continue</code> trying to roll back other tasks.</td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">--rollback-max-failure-ratio</code></td> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">0</code></td> <td style="text-align: left">The failure rate to tolerate during a rollback, specified as a floating-point number between 0 and 1. For instance, given 5 tasks, a failure ratio of <code class="language-plaintext highlighter-rouge">.2</code> would tolerate one task failing to roll back. A value of <code class="language-plaintext highlighter-rouge">0</code> means no failure are tolerated, while a value of <code class="language-plaintext highlighter-rouge">1</code> means any number of failure are tolerated.</td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">--rollback-monitor</code></td> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">5s</code></td> <td style="text-align: left">Duration after each task rollback to monitor for failure. If a task stops before this time period has elapsed, the rollback is considered to have failed.</td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">--rollback-parallelism</code></td> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">1</code></td> <td style="text-align: left">The maximum number of tasks to roll back in parallel. By default, one task is rolled back at a time. A value of <code class="language-plaintext highlighter-rouge">0</code> causes all tasks to be rolled back in parallel.</td> </tr> </tbody> </table> <p>The following example configures a <code class="language-plaintext highlighter-rouge">redis</code> service to roll back automatically if a <code class="language-plaintext highlighter-rouge">docker service update</code> fails to deploy. Two tasks can be rolled back in parallel. Tasks are monitored for 20 seconds after rollback to be sure they do not exit, and a maximum failure ratio of 20% is tolerated. Default values are used for <code class="language-plaintext highlighter-rouge">--rollback-delay</code> and <code class="language-plaintext highlighter-rouge">--rollback-failure-action</code>.</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create --name=my_redis \
+ --replicas=5 \
+ --rollback-parallelism=2 \
+ --rollback-monitor=20s \
+ --rollback-max-failure-ratio=.2 \
+ redis:latest
+</pre></div> <h3 id="give-a-service-access-to-volumes-or-bind-mounts">Give a service access to volumes or bind mounts</h3> <p>For best performance and portability, you should avoid writing important data directly into a container’s writable layer, instead using data volumes or bind mounts. This principle also applies to services.</p> <p>You can create two types of mounts for services in a swarm, <code class="language-plaintext highlighter-rouge">volume</code> mounts or <code class="language-plaintext highlighter-rouge">bind</code> mounts. Regardless of which type of mount you use, configure it using the <code class="language-plaintext highlighter-rouge">--mount</code> flag when you create a service, or the <code class="language-plaintext highlighter-rouge">--mount-add</code> or <code class="language-plaintext highlighter-rouge">--mount-rm</code> flag when updating an existing service. The default is a data volume if you don’t specify a type.</p> <h4 id="data-volumes">Data volumes</h4> <p>Data volumes are storage that exist independently of a container. The lifecycle of data volumes under swarm services is similar to that under containers. Volumes outlive tasks and services, so their removal must be managed separately. Volumes can be created before deploying a service, or if they don’t exist on a particular host when a task is scheduled there, they are created automatically according to the volume specification on the service.</p> <p>To use existing data volumes with a service use the <code class="language-plaintext highlighter-rouge">--mount</code> flag:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create \
+ --mount src=&lt;VOLUME-NAME&gt;,dst=&lt;CONTAINER-PATH&gt; \
+ --name myservice \
+ &lt;IMAGE&gt;
+</pre></div> <p>If a volume with the same <code class="language-plaintext highlighter-rouge">&lt;VOLUME-NAME&gt;</code> does not exist when a task is scheduled to a particular host, then one is created. The default volume driver is <code class="language-plaintext highlighter-rouge">local</code>. To use a different volume driver with this create-on-demand pattern, specify the driver and its options with the <code class="language-plaintext highlighter-rouge">--mount</code> flag:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create \
+ --mount type=volume,src=&lt;VOLUME-NAME&gt;,dst=&lt;CONTAINER-PATH&gt;,volume-driver=&lt;DRIVER&gt;,volume-opt=&lt;KEY0&gt;=&lt;VALUE0&gt;,volume-opt=&lt;KEY1&gt;=&lt;VALUE1&gt;
+ --name myservice \
+ &lt;IMAGE&gt;
+</pre></div> <p>For more information on how to create data volumes and the use of volume drivers, see <a href="https://docs.docker.com/storage/volumes/">Use volumes</a>.</p> <h4 id="bind-mounts">Bind mounts</h4> <p>Bind mounts are file system paths from the host where the scheduler deploys the container for the task. Docker mounts the path into the container. The file system path must exist before the swarm initializes the container for the task.</p> <p>The following examples show bind mount syntax:</p> <ul> <li> <p>To mount a read-write bind:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create \
+ --mount type=bind,src=&lt;HOST-PATH&gt;,dst=&lt;CONTAINER-PATH&gt; \
+ --name myservice \
+ &lt;IMAGE&gt;
+</pre></div> </li> <li> <p>To mount a read-only bind:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create \
+ --mount type=bind,src=&lt;HOST-PATH&gt;,dst=&lt;CONTAINER-PATH&gt;,readonly \
+ --name myservice \
+ &lt;IMAGE&gt;
+</pre></div> </li> </ul> <blockquote> <p><strong>Important</strong>: Bind mounts can be useful but they can also cause problems. In most cases, it is recommended that you architect your application such that mounting paths from the host is unnecessary. The main risks include the following:</p> <ul> <li> <p>If you bind mount a host path into your service’s containers, the path must exist on every swarm node. The Docker swarm mode scheduler can schedule containers on any machine that meets resource availability requirements and satisfies all constraints and placement preferences you specify.</p> </li> <li> <p>The Docker swarm mode scheduler may reschedule your running service containers at any time if they become unhealthy or unreachable.</p> </li> <li> <p>Host bind mounts are non-portable. When you use bind mounts, there is no guarantee that your application runs the same way in development as it does in production.</p> </li> </ul> </blockquote> <h3 id="create-services-using-templates">Create services using templates</h3> <p>You can use templates for some flags of <code class="language-plaintext highlighter-rouge">service create</code>, using the syntax provided by the Go’s <a href="https://golang.org/pkg/text/template/">text/template</a> package.</p> <p>The following flags are supported:</p> <ul> <li><code class="language-plaintext highlighter-rouge">--hostname</code></li> <li><code class="language-plaintext highlighter-rouge">--mount</code></li> <li><code class="language-plaintext highlighter-rouge">--env</code></li> </ul> <p>Valid placeholders for the Go template are:</p> <table> <thead> <tr> <th style="text-align: left">Placeholder</th> <th style="text-align: left">Description</th> </tr> </thead> <tbody> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">.Service.ID</code></td> <td style="text-align: left">Service ID</td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">.Service.Name</code></td> <td style="text-align: left">Service name</td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">.Service.Labels</code></td> <td style="text-align: left">Service labels</td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">.Node.ID</code></td> <td style="text-align: left">Node ID</td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">.Node.Hostname</code></td> <td style="text-align: left">Node hostname</td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">.Task.Name</code></td> <td style="text-align: left">Task name</td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">.Task.Slot</code></td> <td style="text-align: left">Task slot</td> </tr> </tbody> </table> <h4 id="template-example">Template example</h4> <p>This example sets the template of the created containers based on the service’s name and the ID of the node where the container is running:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service create --name hosttempl \
+ --hostname="{{.Node.ID}}-{{.Service.Name}}"\
+ busybox top
+</pre></div> <p>To see the result of using the template, use the <code class="language-plaintext highlighter-rouge">docker service ps</code> and <code class="language-plaintext highlighter-rouge">docker inspect</code> commands.</p> <div class="highlight"><pre class="highlight" data-language="">$ docker service ps va8ew30grofhjoychbr6iot8c
+
+ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
+wo41w8hg8qan hosttempl.1 busybox:latest@sha256:29f5d56d12684887bdfa50dcd29fc31eea4aaf4ad3bec43daf19026a7ce69912 2e7a8a9c4da2 Running Running about a minute ago
+</pre></div> <div class="highlight"><pre class="highlight" data-language="">$ docker inspect --format="{{.Config.Hostname}}" hosttempl.1.wo41w8hg8qanxwjwsg4kxpprj
+</pre></div> <h2 id="learn-more">Learn More</h2> <ul> <li><a href="../admin_guide/index">Swarm administration guide</a></li> <li><a href="../../reference/commandline/docker/index">Docker Engine command line reference</a></li> <li><a href="../swarm-tutorial/index">Swarm mode tutorial</a></li> </ul>
+<p><a href="https://docs.docker.com/search/?q=guide">guide</a>, <a href="https://docs.docker.com/search/?q=swarm%20mode">swarm mode</a>, <a href="https://docs.docker.com/search/?q=swarm">swarm</a>, <a href="https://docs.docker.com/search/?q=service">service</a></p>
+<div class="_attribution">
+ <p class="_attribution-p">
+ &copy; 2019 Docker, Inc.<br>Licensed under the Apache License, Version 2.0.<br>Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries.<br>Docker, Inc. and other parties may also have trademark rights in other terms used herein.<br>
+ <a href="https://docs.docker.com/engine/swarm/services/" class="_attribution-link">https://docs.docker.com/engine/swarm/services/</a>
+ </p>
+</div>