国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

directory search
Compose About versions and upgrading (Compose) ASP.NET Core + SQL Server on Linux (Compose) CLI environment variables (Compose) Command-line completion (Compose) Compose(組成) Compose command-line reference(組合命令行參考) Control startup order (Compose) Django and PostgreSQL (Compose) Docker stacks and distributed application bundles (Compose) docker-compose build(docker-compose構(gòu)建) docker-compose bundle docker-compose config docker-compose create docker-compose down docker-compose events docker-compose exec docker-compose help docker-compose images docker-compose kill docker-compose logs docker-compose pause docker-compose port docker-compose ps docker-compose pull docker-compose push docker-compose restart docker-compose rm docker-compose run docker-compose scale docker-compose start docker-compose stop docker-compose top docker-compose unpause docker-compose up Environment file (Compose) Environment variables in Compose Extend services in Compose Frequently asked questions (Compose) Getting started (Compose) Install Compose Link environment variables (deprecated) (Compose) Networking in Compose Overview of Docker Compose Overview of docker-compose CLI Quickstart: Compose and WordPress Rails and PostgreSQL (Compose) Sample apps with Compose Using Compose in production Using Compose with Swarm Engine .NET Core application (Engine) About images, containers, and storage drivers (Engine) Add nodes to the swarm (Engine) Apply custom metadata (Engine) Apply rolling updates (Engine) apt-cacher-ng Best practices for writing Dockerfiles (Engine) Binaries (Engine) Bind container ports to the host (Engine) Breaking changes (Engine) Build your own bridge (Engine) Configure container DNS (Engine) Configure container DNS in user-defined networks (Engine) CouchDB (Engine) Create a base image (Engine) Create a swarm (Engine) Customize the docker0 bridge (Engine) Debian (Engine) Default bridge network Delete the service (Engine) Deploy a service (Engine) Deploy services to a swarm (Engine) Deprecated Engine features Docker container networking (Engine) Docker overview (Engine) Docker run reference (Engine) Dockerfile reference (Engine) Dockerize an application Drain a node (Engine) Engine FAQ (Engine) Fedora (Engine) Get started (Engine) Get started with macvlan network driver (Engine) Get started with multi-host networking (Engine) How nodes work (Engine) How services work (Engine) Image management (Engine) Inspect the service (Engine) Install Docker (Engine) IPv6 with Docker (Engine) Join nodes to a swarm (Engine) Legacy container links (Engine) Lock your swarm (Engine) Manage nodes in a swarm (Engine) Manage sensitive data with Docker secrets (Engine) Manage swarm security with PKI (Engine) Manage swarm service networks (Engine) Migrate to Engine 1.10 Optional Linux post-installation steps (Engine) Overview (Engine) PostgreSQL (Engine) Raft consensus in swarm mode (Engine) Riak (Engine) Run Docker Engine in swarm mode Scale the service (Engine) SDKs (Engine) Select a storage driver (Engine) Set up for the tutorial (Engine) SSHd (Engine) Storage driver overview (Engine) Store service configuration data (Engine) Swarm administration guide (Engine) Swarm mode key concepts (Engine) Swarm mode overlay network security model (Engine) Swarm mode overview (Engine) Understand container communication (Engine) Use multi-stage builds (Engine) Use swarm mode routing mesh (Engine) Use the AUFS storage driver (Engine) Use the Btrfs storage driver (Engine) Use the Device mapper storage driver (Engine) Use the OverlayFS storage driver (Engine) Use the VFS storage driver (Engine) Use the ZFS storage driver (Engine) Engine: Admin Guide Amazon CloudWatch logs logging driver (Engine) Bind mounts (Engine) Collect Docker metrics with Prometheus (Engine) Configuring and running Docker (Engine) Configuring logging drivers (Engine) Control and configure Docker with systemd (Engine) ETW logging driver (Engine) Fluentd logging driver (Engine) Format command and log output (Engine) Google Cloud logging driver (Engine) Graylog Extended Format (GELF) logging driver (Engine) Journald logging driver (Engine) JSON File logging driver (Engine) Keep containers alive during daemon downtime (Engine) Limit a container's resources (Engine) Link via an ambassador container (Engine) Log tags for logging driver (Engine) Logentries logging driver (Engine) PowerShell DSC usage (Engine) Prune unused Docker objects (Engine) Run multiple services in a container (Engine) Runtime metrics (Engine) Splunk logging driver (Engine) Start containers automatically (Engine) Storage overview (Engine) Syslog logging driver (Engine) tmpfs mounts Troubleshoot volume problems (Engine) Use a logging driver plugin (Engine) Using Ansible (Engine) Using Chef (Engine) Using Puppet (Engine) View a container's logs (Engine) Volumes (Engine) Engine: CLI Daemon CLI reference (dockerd) (Engine) docker docker attach docker build docker checkpoint docker checkpoint create docker checkpoint ls docker checkpoint rm docker commit docker config docker config create docker config inspect docker config ls docker config rm docker container docker container attach docker container commit docker container cp docker container create docker container diff docker container exec docker container export docker container inspect docker container kill docker container logs docker container ls docker container pause docker container port docker container prune docker container rename docker container restart docker container rm docker container run docker container start docker container stats docker container stop docker container top docker container unpause docker container update docker container wait docker cp docker create docker deploy docker diff docker events docker exec docker export docker history docker image docker image build docker image history docker image import docker image inspect docker image load docker image ls docker image prune docker image pull docker image push docker image rm docker image save docker image tag docker images docker import docker info docker inspect docker kill docker load docker login docker logout docker logs docker network docker network connect docker network create docker network disconnect docker network inspect docker network ls docker network prune docker network rm docker node docker node demote docker node inspect docker node ls docker node promote docker node ps docker node rm docker node update docker pause docker plugin docker plugin create docker plugin disable docker plugin enable docker plugin inspect docker plugin install docker plugin ls docker plugin push docker plugin rm docker plugin set docker plugin upgrade docker port docker ps docker pull docker push docker rename docker restart docker rm docker rmi docker run docker save docker search docker secret docker secret create docker secret inspect docker secret ls docker secret rm docker service docker service create docker service inspect docker service logs docker service ls docker service ps docker service rm docker service scale docker service update docker stack docker stack deploy docker stack ls docker stack ps docker stack rm docker stack services docker start docker stats docker stop docker swarm docker swarm ca docker swarm init docker swarm join docker swarm join-token docker swarm leave docker swarm unlock docker swarm unlock-key docker swarm update docker system docker system df docker system events docker system info docker system prune docker tag docker top docker unpause docker update docker version docker volume docker volume create docker volume inspect docker volume ls docker volume prune docker volume rm docker wait Use the Docker command line (Engine) Engine: Extend Access authorization plugin (Engine) Docker log driver plugins Docker network driver plugins (Engine) Extending Engine with plugins Managed plugin system (Engine) Plugin configuration (Engine) Plugins API (Engine) Volume plugins (Engine) Engine: Security AppArmor security profiles for Docker (Engine) Automation with content trust (Engine) Content trust in Docker (Engine) Delegations for content trust (Engine) Deploying Notary (Engine) Docker security (Engine) Docker security non-events (Engine) Isolate containers with a user namespace (Engine) Manage keys for content trust (Engine) Play in a content trust sandbox (Engine) Protect the Docker daemon socket (Engine) Seccomp security profiles for Docker (Engine) Secure Engine Use trusted images Using certificates for repository client verification (Engine) Engine: Tutorials Engine tutorials Network containers (Engine) Get Started Part 1: Orientation Part 2: Containers Part 3: Services Part 4: Swarms Part 5: Stacks Part 6: Deploy your app Machine Amazon Web Services (Machine) Digital Ocean (Machine) docker-machine active docker-machine config docker-machine create docker-machine env docker-machine help docker-machine inspect docker-machine ip docker-machine kill docker-machine ls docker-machine provision docker-machine regenerate-certs docker-machine restart docker-machine rm docker-machine scp docker-machine ssh docker-machine start docker-machine status docker-machine stop docker-machine upgrade docker-machine url Driver options and operating system defaults (Machine) Drivers overview (Machine) Exoscale (Machine) Generic (Machine) Get started with a local VM (Machine) Google Compute Engine (Machine) IBM Softlayer (Machine) Install Machine Machine Machine CLI overview Machine command-line completion Machine concepts and help Machine overview Microsoft Azure (Machine) Microsoft Hyper-V (Machine) Migrate from Boot2Docker to Machine OpenStack (Machine) Oracle VirtualBox (Machine) Provision AWS EC2 instances (Machine) Provision Digital Ocean Droplets (Machine) Provision hosts in the cloud (Machine) Rackspace (Machine) VMware Fusion (Machine) VMware vCloud Air (Machine) VMware vSphere (Machine) Notary Client configuration (Notary) Common Server and signer configurations (Notary) Getting started with Notary Notary changelog Notary configuration files Running a Notary service Server configuration (Notary) Signer configuration (Notary) Understand the service architecture (Notary) Use the Notary client
characters

描述

創(chuàng)建新服務(wù)

使用

docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]

備選方案

名字,簡寫

默認(rèn)

描述

--config


指定配置以暴露給服務(wù)

--constraint


展示位置限制

--container-label


容器標(biāo)簽

--credential-spec


托管服務(wù)帳戶的憑證規(guī)范(僅限Windows)

--detach,-d

真正

立即退出,而不是等待服務(wù)收斂

--dns


設(shè)置自定義DNS服務(wù)器

--dns-option


設(shè)置DNS選項(xiàng)

--dns-search


設(shè)置自定義DNS搜索域

--endpoint-mode

要人

端點(diǎn)模式(vip或dnsrr)

--entrypoint


覆蓋圖像的默認(rèn)入口點(diǎn)

--env,-e


設(shè)置環(huán)境變量

--env-file


讀入環(huán)境變量文件

--group


為容器設(shè)置一個(gè)或多個(gè)補(bǔ)充用戶組

--health-cmd


運(yùn)行以檢查運(yùn)行狀況的命令

--health-interval


運(yùn)行檢查之間的時(shí)間(ms | s | m | h)

--health-retries

0

需要報(bào)告不健康的連續(xù)失敗

--health-start-period


在重新計(jì)數(shù)到不穩(wěn)定(ms | s | m | h)之前,容器初始化的開始時(shí)間段

--health-timeout


允許一次檢查運(yùn)行的最長時(shí)間(ms | s | m | h)

--host


設(shè)置一個(gè)或多個(gè)自定義主機(jī)到IP映射(主機(jī):IP)

--hostname


容器主機(jī)名

--label, -l


服務(wù)標(biāo)簽

--limit-CPU


限制CPU

--limit-memory

0

限制記憶

--log-driver


記錄驅(qū)動(dòng)程序的服務(wù)

--log-OPT


記錄驅(qū)動(dòng)程序選項(xiàng)

--mode

復(fù)制

服務(wù)模式(復(fù)制或全局)

--mount


將文件系統(tǒng)掛載附加到服務(wù)

--name


服務(wù)名稱

--network


網(wǎng)絡(luò)附件

--no-healthcheck

禁用任何容器指定的HEALTHCHECK

--no-resolve-image

不要查詢注冊表來解析圖像摘要和支持的平臺(tái)

--placement-PREF


添加展示位置首選項(xiàng)

--publish,-p


將端口發(fā)布為節(jié)點(diǎn)端口

--quiet,-q

抑制進(jìn)度輸出

--read-only

將容器的根文件系統(tǒng)掛載為只讀

--replicas


任務(wù)數(shù)量

--reserve-CPU


預(yù)留CPU

--reserve-memory

0

保留內(nèi)存

--restart-condition


滿足條件時(shí)重新啟動(dòng)(“none”|“on-failure”|“any”)(默認(rèn)為“any”)

--restart-delay


重啟嘗試之間的延遲(ns | us | ms | s | m | h)(默認(rèn)5秒)

--restart-max-attempts


放棄前的最大重啟次數(shù)

--restart-window


用于評估重新啟動(dòng)策略的窗口(ns | us | ms | s | m | h)

--rollback-delay

0

任務(wù)回滾之間的延遲(ns | us | ms | s | m | h)(默認(rèn)值為0)

--rollback-failure-action


回滾失敗的操作(“暫停”|“繼續(xù)”)(默認(rèn)“暫?!保?/p>

--rollback-max-failure-ratio

0

在回滾期間容忍的失敗率(默認(rèn)0)

--rollback-monitor

0

(ns | us | ms | s | m | h)(默認(rèn)5秒)每個(gè)任務(wù)回滾之后的持續(xù)時(shí)間

--rollback-order


回滾順序(“start-first”|“stop-first”)(默認(rèn)“stop-first”)

--rollback-parallelism

1

同時(shí)回滾的任務(wù)的最大數(shù)量(0一次全部回滾)

--secret


指定泄露給服務(wù)的秘密

--stop-grace-period


強(qiáng)制殺死一個(gè)容器之前等待的時(shí)間(ns | us | ms | s | m | h)(默認(rèn)10秒)

--stop-signal


停止容器的信號

--tty, -t

分配一個(gè)偽TTY

--update-delay

0

更新之間的延遲(ns | us | ms | s | m | h)(默認(rèn)為0)

--update-failure-action


更新失敗的操作(“暫?!眧“繼續(xù)”|“回滾”)(默認(rèn)“暫?!保?/p>

--update-max-failure-ratio

0

更新期間容許的失敗率(默認(rèn)0)

--update-monitor

0

(ns | us | ms | s | m | h)(默認(rèn)5秒)每個(gè)任務(wù)更新后的持續(xù)時(shí)間

--update-order


更新順序(“start-first”|“stop-first”)(默認(rèn)為“stop-first”)

--update-parallelism

1

同時(shí)更新的最大任務(wù)數(shù)(0個(gè)一次全部更新)

--user,-u


用戶名或UID(格式:<名稱| uid>:<組| gid>)

--with-registry-auth

向注冊代理發(fā)送注冊表認(rèn)證詳細(xì)信息

--workdir,-w


容器內(nèi)的工作目錄

父命令

命令

描述

docker service

管理服務(wù)

相關(guān)命令

命令

描述

docker service create

創(chuàng)建一項(xiàng)新服務(wù)

docker service inspect

顯示一項(xiàng)或多項(xiàng)服務(wù)的詳細(xì)信息

docker service logs

獲取服務(wù)或任務(wù)的日志

docker service ls

列出服務(wù)

docker service ps

列出一項(xiàng)或多項(xiàng)服務(wù)的任務(wù)

docker service rm

刪除一項(xiàng)或多項(xiàng)服務(wù)

docker service scale

擴(kuò)展一個(gè)或多個(gè)復(fù)制服務(wù)

docker service update

更新服務(wù)

擴(kuò)展描述

創(chuàng)建由指定參數(shù)描述的服務(wù)。必須在管理器節(jié)點(diǎn)上運(yùn)行此命令。

實(shí)例

創(chuàng)建服務(wù)

$ docker service create --name redis redis:3.0.6dmu1ept4cxcfe8k8lhtux3ro3

$ docker service create --mode global --name redis2 redis:3.0.6a8q9dasaafudfs8q8w32udass

$ docker service ls

ID            NAME    MODE        REPLICAS  IMAGE
dmu1ept4cxcf  redis   replicated  1/1       redis:3.0.6a8q9dasaafud  redis2  global      1/1       redis:3.0.6

創(chuàng)建一個(gè)包含5個(gè)副本任務(wù)的服務(wù)%28-副本%29

使用--replicas標(biāo)志設(shè)置復(fù)制服務(wù)的副本任務(wù)數(shù)。下面的命令創(chuàng)建一個(gè)redis5復(fù)制任務(wù):

$ docker service create --name redis --replicas=5 redis:3.0.64cdgfyky7ozwh3htjfw0d12qv

上面的命令設(shè)置所需服務(wù)的任務(wù)數(shù)。即使命令立即返回,實(shí)際的服務(wù)擴(kuò)展可能需要一些時(shí)間。大REPLICAS列顯示兩個(gè)實(shí)際所需服務(wù)的復(fù)制任務(wù)數(shù)。

在下面的示例中,所需的狀態(tài)為5復(fù)制,但是當(dāng)前的數(shù)量RUNNING任務(wù)是3*

$ docker service ls

ID            NAME   MODE        REPLICAS  IMAGE
4cdgfyky7ozw  redis  replicated  3/5       redis:3.0.7

一旦創(chuàng)建了所有任務(wù)并且RUNNING實(shí)際的任務(wù)數(shù)量等于所需的數(shù)量:

$ docker service ls

ID            NAME   MODE        REPLICAS  IMAGE
4cdgfyky7ozw  redis  replicated  5/5       redis:3.0.7

創(chuàng)建一個(gè)包含秘密的服務(wù)

使用該--secret標(biāo)志可以讓容器訪問秘密。

創(chuàng)建一個(gè)指定秘密的服務(wù):

$ docker service create --name redis --secret secret.json redis:3.0.64cdgfyky7ozwh3htjfw0d12qv

創(chuàng)建一個(gè)服務(wù),指定秘密、目標(biāo)、用戶/組ID和模式:

$ docker service create --name redis \    --secret source=ssh-key,target=ssh \    --secret source=app-key,target=app,uid=1000,gid=1001,mode=0400 \
    redis:3.0.64cdgfyky7ozwh3htjfw0d12qv

要授予服務(wù)對多個(gè)秘密的訪問權(quán)限,請使用多個(gè)--secret標(biāo)志。

秘密位于/run/secrets容器中。如果未指定目標(biāo),則秘密的名稱將用作容器中的內(nèi)存文件。如果指定了目標(biāo),那將是文件名。在上面的例子中,將創(chuàng)建兩個(gè)文件:/run/secrets/ssh以及/run/secrets/app指定的每個(gè)秘密目標(biāo)。

使用滾動(dòng)更新策略創(chuàng)建服務(wù)

$ docker service create \  --replicas 10 \  --name redis \  --update-delay 10s \  --update-parallelism 2 \
  redis:3.0.6

當(dāng)你運(yùn)行一個(gè)服務(wù)更新,調(diào)度程序一次最多更新2個(gè)任務(wù),使用10s在更新之間。有關(guān)詳細(xì)信息,請參閱滾動(dòng)更新教程...

設(shè)置環(huán)境變量(-e,-env)

這將為服務(wù)中的所有任務(wù)設(shè)置一個(gè)環(huán)境變量。例如:

$ docker service create \  --name redis_2 \  --replicas 5 \  --env MYVAR=foo \
  redis:3.0.6

若要指定多個(gè)環(huán)境變量,請指定多個(gè)--env標(biāo)志,每個(gè)標(biāo)志都有一個(gè)單獨(dú)的鍵值對。

$ docker service create \  --name redis_2 \  --replicas 5 \  --env MYVAR=foo \  --env MYVAR2=bar \
  redis:3.0.6

使用特定主機(jī)名(-hostname)創(chuàng)建服務(wù)

此選項(xiàng)將碼頭服務(wù)容器主機(jī)名設(shè)置為特定字符串。例如:

$ docker service create --name redis --hostname myredis redis:3.0.6

在服務(wù)上設(shè)置元數(shù)據(jù)(-l,-label)

標(biāo)簽是key=value將元數(shù)據(jù)應(yīng)用于服務(wù)的對。若要將服務(wù)標(biāo)記為兩個(gè)標(biāo)簽,請執(zhí)行以下操作:

$ docker service create \  --name redis_2 \  --label com.example.foo="bar"  --label bar=baz \
  redis:3.0.6

有關(guān)標(biāo)簽的詳細(xì)信息,請參閱應(yīng)用自定義元數(shù)據(jù)...

添加綁定掛載或 volume

Docker 支持兩種不同的安裝方式,允許容器讀取或?qū)懭肫渌萜骰蛑鳈C(jī)操作系統(tǒng)上的文件或目錄。這些類型是數(shù)據(jù)卷(通常簡稱為volume)和綁定掛載。

另外,Docker 支持tmpfs掛載。

綁定貼裝使提供給它被安裝在容器內(nèi)的主機(jī)上的文件或目錄。綁定掛載可以是只讀的或讀寫的。例如,容器可能通過主機(jī)的綁定掛載來共享其主機(jī)的DNS信息,/etc/resolv.conf或者容器可能會(huì)將日志寫入其主機(jī)的/var/log/myContainerLogs目錄。如果您使用綁定掛載并且您的主機(jī)和容器具有不同的權(quán)限,訪問控制或其他此類詳細(xì)信息的概念,那么您將遇到可移植性問題。

命名卷是一種機(jī)制,用于將容器所需的持久性數(shù)據(jù)與用于創(chuàng)建容器的映像和主機(jī)機(jī)器分離。 命名卷由Docker創(chuàng)建和管理,即使當(dāng)前沒有容器正在使用它,命名卷仍然存在。 命名卷中的數(shù)據(jù)可以在容器和主機(jī)之間共享,也可以在多個(gè)容器之間共享。 Docker使用卷驅(qū)動(dòng)來創(chuàng)建,管理和安裝卷。 您可以使用Docker命令備份或恢復(fù)卷。

tmpfs 在容器內(nèi)掛載 tmpfs 以獲取易失性數(shù)據(jù)。

考慮一下你的圖像啟動(dòng)一個(gè)輕量級web服務(wù)器的情況。您可以將該圖像用作基礎(chǔ)圖像,復(fù)制網(wǎng)站的HTML文件并將其打包到另一個(gè)圖像中。每次您的網(wǎng)站更改時(shí),您都需要更新新映像并重新部署為您的網(wǎng)站提供服務(wù)的所有容器。更好的解決方案是將網(wǎng)站存儲(chǔ)在每個(gè)Web服務(wù)器容器啟動(dòng)時(shí)附加的命名卷中。要更新網(wǎng)站,只需更新指定的卷。

有關(guān)命名卷的詳細(xì)信息,請參閱數(shù)據(jù)量

下表描述了應(yīng)用于服務(wù)中的綁定掛載和命名卷的選項(xiàng):

選項(xiàng)

需要

描述

類型


mount的類型可以是volume,bind或tmpfs。如果沒有指定類型,則默認(rèn)為音量。卷:將托管卷裝入容器。bind:將主機(jī)上的目錄或文件綁定到容器中。tmpfs:在容器中安裝一個(gè)tmpfs

src或來源

對于type = bind only>

type = volume:src是指定卷名稱的可選方式(例如,src = my-volume)。如果指定的卷不存在,則會(huì)自動(dòng)創(chuàng)建。如果未指定src,則會(huì)為該卷指定一個(gè)隨機(jī)名稱,該名稱在主機(jī)上保證是唯一的,但可能不是群集范圍內(nèi)唯一的。一個(gè)隨機(jī)命名的卷具有與其容器相同的生命周期,并且在容器被銷毀時(shí)(這是在服務(wù)更新時(shí),或者在擴(kuò)展或重新平衡服務(wù)時(shí))被銷毀。type = bind:src是必需的,并指定絕對路徑到文件或目錄進(jìn)行綁定掛載(例如,src = / path / on / host /)。如果文件或目錄不存在,則會(huì)產(chǎn)生錯(cuò)誤。type = tmpfs:src不受支持。

dst或目標(biāo)或目標(biāo)

裝入容器內(nèi)的路徑,例如/ some / path / in / container /。如果路徑不存在于容器的文件系統(tǒng)中,則引擎會(huì)在掛載卷或綁定掛載之前在指定位置創(chuàng)建一個(gè)目錄。

只讀或ro


除非在安裝綁定或卷時(shí)提供只讀選項(xiàng),否則引擎將掛接和卷讀寫。true或1或沒有值:將綁定或卷裝載為只讀。假或0:裝入綁定或卷讀寫。

一致性


底座的一致性要求; 默認(rèn)值之一:等同于一致。一致:完全一致。容器運(yùn)行時(shí)和主機(jī)始終保持相同的安裝視圖。緩存:主機(jī)的裝載視圖是權(quán)威的。在主機(jī)上進(jìn)行的更新在容器內(nèi)可見之前可能會(huì)有延遲。委托:容器運(yùn)行時(shí)的掛載視圖是權(quán)威的。在容器中進(jìn)行的更新可能會(huì)在主機(jī)上可見之前出現(xiàn)延遲。

  • 卷:安裝管理量放進(jìn)容器里。

  • 綁定:綁定-將一個(gè)目錄或文件從主機(jī)裝載到容器中。

  • tmpfs:在容器中安裝tmpfs

 **src** or **source**  for type=bind only>
  • type = volume:src是指定卷名稱的可選方式(例如,src = my-volume)。如果指定的卷不存在,則會(huì)自動(dòng)創(chuàng)建。如果未指定 src,則會(huì)為該卷指定一個(gè)隨機(jī)名稱,該名稱在主機(jī)上保證是唯一的,但可能不是群集范圍內(nèi)唯一的。隨機(jī)命名卷具有相同的生命周期為容器,并且當(dāng)被破壞容器被銷毀(這是在服務(wù)更新,或縮放或重新平衡服務(wù)時(shí))

  • type = bind:src 是必需的,并指定要綁定掛載的文件或目錄的絕對路徑(例如,src = / path / on / host /)。如果文件或目錄不存在,則會(huì)產(chǎn)生錯(cuò)誤。

  • type = tmpfs:src 不受支持。

**dst** or **destination** or **target** yes  Mount path inside the container, for example /some/path/in/container/. If the path does not exist in the container's filesystem, the Engine creates a directory at the specified location before mounting the volume or bind-mount.
**readonly** or **ro**   The Engine mounts binds and volumes read-write unless readonly option is given when mounting the bind or volume.
  • true 或1或沒有值:將綁定或卷裝載為只讀。

  • false或0:掛載綁定或卷讀寫。

**consistency**   The consistency requirements for the mount; one of
  • 默認(rèn)值:等效于一致。

  • 一致性:完全一致。容器運(yùn)行時(shí)和主機(jī)始終保持相同的掛載視圖。

  • 緩存:主機(jī)的裝載視圖是權(quán)威的。在主機(jī)上進(jìn)行的更新在容器內(nèi)可見之前可能會(huì)有延遲。

  • 委托:容器運(yùn)行時(shí)的掛載視圖是權(quán)威的。在容器中進(jìn)行的更新可能會(huì)在主機(jī)上可見之前出現(xiàn)延遲。

約束傳播

綁定傳播是指在給定的綁定掛載或命名卷中創(chuàng)建的掛載是否可以傳播到該掛載的副本??紤]一個(gè)掛載點(diǎn)/mnt,它也被掛載/tmp。該狀態(tài)設(shè)置控制是否啟用掛載/tmp/a也可用/mnt/a。每個(gè)傳播設(shè)置都有一個(gè)遞歸對應(yīng)點(diǎn)。在遞歸的情況下,考慮它/tmp/a也被掛載為/foo。傳播設(shè)置控制是否/mnt/a和/或/tmp/a將存在。

bind-propagation選項(xiàng)默認(rèn)值為rprivate對于綁定掛載和卷掛載,并且只能為綁定掛載配置.。換句話說,命名卷不支持綁定傳播。

  • shared:原始安裝的子安裝會(huì)暴露給副本安裝,并且副安裝的子安裝也會(huì)傳播到原始安裝。

  • slave:類似于共享安裝,但僅限于一個(gè)方向。如果原始安裝展示了一個(gè)子安裝,則副本安裝可以看到它。但是,如果副本安裝程序公開了子安裝,則原始安裝程序無法看到它。

  • private:掛載是私人的。其中的子安裝不會(huì)暴露給副本安裝,并且副安裝的子安裝不會(huì)暴露給原始安裝。

  • rshared:與共享相同,但傳播也擴(kuò)展到嵌套在任何原始或副本安裝點(diǎn)內(nèi)的掛載點(diǎn)。

  • rslave*與slave,但是傳播還擴(kuò)展到嵌套在任何原始或復(fù)制掛載點(diǎn)內(nèi)的掛載點(diǎn)。

  • rprivate*缺省值。同private,這意味著在原始或復(fù)制掛載點(diǎn)中的任何位置都不會(huì)向任意方向傳播掛載點(diǎn)。

有關(guān)綁定傳播的詳細(xì)信息,請參閱Linux kernel documentation for shared subtree.

指定卷的選項(xiàng)

以下選項(xiàng)只能用于命名的卷(type=volume);

選項(xiàng)

描述

volume-driver

用于卷的卷驅(qū)動(dòng)程序插件的名稱。如果該卷不存在,則默認(rèn)為“本地”,以使用本地卷驅(qū)動(dòng)程序創(chuàng)建卷。

volume-label

創(chuàng)建時(shí)應(yīng)用于卷的一個(gè)或多個(gè)自定義元數(shù)據(jù)(“標(biāo)簽”)。例如,volume-label=mylabel=hello-world,my-other-label=hello-mars。有關(guān)標(biāo)簽的更多信息,請參閱應(yīng)用自定義元數(shù)據(jù)。

volume-nocopy

默認(rèn)情況下,如果您將空卷附加到容器,并且文件或目錄已經(jīng)存在于容器中的安裝路徑(dst)中,則引擎會(huì)將這些文件和目錄復(fù)制到卷中,以便主機(jī)訪問它們。設(shè)置volume-nocopy為禁用將容器文件系統(tǒng)中的文件復(fù)制到卷并掛載空卷。值是可選的:如果不提供值,則為true或1:默認(rèn)值。禁用復(fù)制。假或0:啟用復(fù)制。

volume-opt

特定于給定卷驅(qū)動(dòng)程序的選項(xiàng),將在創(chuàng)建卷時(shí)傳遞給驅(qū)動(dòng)程序。選項(xiàng)以逗號分隔的鍵/值對列表形式提供,例如,volume-opt = some-option = some-value,volume-opt = some-other-option = some-other-value。有關(guān)給定驅(qū)動(dòng)程序的可用選項(xiàng),請參閱該驅(qū)動(dòng)程序的文檔。

  • 如果您沒有提供值,則為 true 或1:默認(rèn)值。禁用復(fù)制。

  • FALSE或0:啟用復(fù)制。

**volume-opt**  Options specific to a given volume driver, which will be passed to the driver when creating the volume. Options are provided as a comma-separated list of key/value pairs, for example, volume-opt=some-option=some-value,volume-opt=some-other-option=some-other-value. For available options for a given driver, refer to that driver's documentation.

tmpfs選項(xiàng)

以下選項(xiàng)只能用于 tmpfs mounts(type=tmpfs);

選項(xiàng)

描述

tmpfs的大小

tmpfs的大小,以字節(jié)為單位。Linux中默認(rèn)無限制。

tmpfs的模式

tmpfs的八進(jìn)制文件模式。(例如“700”或“0700”)。在Linux中默認(rèn)為“1777”。

“-掛載”和“-卷”的區(qū)別

--mount屬性支持的大多數(shù)選項(xiàng)。-v--volume標(biāo)志docker run,除了一些重要的例外:

  • --mount標(biāo)志允許您指定卷驅(qū)動(dòng)程序和卷驅(qū)動(dòng)程序選項(xiàng)。每卷,而不預(yù)先創(chuàng)建卷。相反,docker run允許您指定由所有卷共享的單個(gè)卷驅(qū)動(dòng)程序,使用--volume-driver標(biāo)志。

  • --mount標(biāo)志允許您在卷創(chuàng)建之前指定卷的自定義元數(shù)據(jù)(“標(biāo)簽”)。

  • 當(dāng)你使用--mount帶著type=bind,主機(jī)路徑必須引用現(xiàn)有主機(jī)上的路徑。將不會(huì)為您創(chuàng)建路徑,如果路徑不存在,則服務(wù)將失敗。

  • --mount標(biāo)志不允許您將卷重新命名為Zz標(biāo)志,用于selinux貼標(biāo)簽。

使用命名卷創(chuàng)建服務(wù)

下面的示例創(chuàng)建使用命名卷的服務(wù):

$ docker service create \  --name my-service \  --replicas 3 \  --mount type=volume,source=my-volume,destination=/path/in/container,volume-label="color=red",volume-label="shape=round" \
  nginx:alpine

對于服務(wù)的每個(gè)副本,引擎都會(huì)從部署任務(wù)的默認(rèn)(“本地”)卷驅(qū)動(dòng)程序中請求一個(gè)名為 “my-volume” 的卷。如果音量不存在,引擎將創(chuàng)建一個(gè)新音量并應(yīng)用“顏色”和“形狀”標(biāo)簽。

當(dāng)任務(wù)啟動(dòng)時(shí),卷被掛載到/path/in/container/容器里。

請注意,默認(rèn)(“本地”)卷是本地作用域卷驅(qū)動(dòng)程序。這意味著根據(jù)部署任務(wù)的位置,該任務(wù)可以獲得名為 “my-volume”   的卷,或與同一服務(wù)的其他任務(wù)共享相同的“我的卷”。如果容器內(nèi)運(yùn)行的軟件不是用來處理寫入同一位置的并發(fā)進(jìn)程的,則寫入單個(gè)共享卷的多個(gè)容器可能會(huì)導(dǎo)致數(shù)據(jù)損壞。還要考慮到容器可以由 Swarm 協(xié)調(diào)器重新調(diào)度并部署在不同的節(jié)點(diǎn)上。

創(chuàng)建使用匿名卷的服務(wù)

下面的命令創(chuàng)建一個(gè)帶有三個(gè)副本的服務(wù),其中包含一個(gè)匿名卷。/path/in/container*

$ docker service create \  --name my-service \  --replicas 3 \  --mount type=volume,destination=/path/in/container \
  nginx:alpine

在此示例中,沒有source為該卷指定 name(),因此會(huì)為每個(gè)任務(wù)創(chuàng)建一個(gè)新卷。這可以確保每個(gè)任務(wù)都獲得自己的卷,并且不會(huì)在任務(wù)之間共享卷。完成使用任務(wù)后,匿名卷將被刪除。

創(chuàng)建使用綁定掛載主機(jī)目錄的服務(wù)。

下面的示例綁定-將主機(jī)目錄安裝在/path/in/container在支持服務(wù)的容器中:

$ docker service create \  --name my-service \  --mount type=bind,source=/path/on/host,destination=/path/in/container \
  nginx:alpine

設(shè)置服務(wù)模式( - 模式)

服務(wù)模式確定這是復(fù)制服務(wù)還是全局服務(wù)。復(fù)制服務(wù)按指定運(yùn)行多個(gè)任務(wù),而全局服務(wù)在群中的每個(gè)活動(dòng)節(jié)點(diǎn)上運(yùn)行。

以下命令創(chuàng)建一個(gè)全局服務(wù):

$ docker service create \ --name redis_2 \ --mode global \
 redis:3.0.6

指定服務(wù)約束(-constraint)

您可以通過定義約束表達(dá)式來限制可以調(diào)度任務(wù)的節(jié)點(diǎn)集合。多個(gè)約束找到滿足每個(gè)表達(dá)式的節(jié)點(diǎn)(AND匹配)。約束可以與節(jié)點(diǎn)或Docker引擎標(biāo)簽匹配,如下所示:

node attribute

matches

example

node.id

Node ID

node.id == 2ivku8v2gvtg4

node.hostname

Node hostname

node.hostname != node-2

node.role

Node role

node.role == manager

node.labels

user defined node labels

node.labels.security == high

engine.labels

Docker Engine's labels

engine.labels.operatingsystem == ubuntu 14.04

engine.labels適用于 Docker Engine 標(biāo)簽,例如操作系統(tǒng),驅(qū)動(dòng)程序等。群集管理員node.labels通過使用該docker node update命令添加用于操作目的。

例如,以下將 redis 服務(wù)的任務(wù)限制為節(jié)點(diǎn)類型標(biāo)簽等于隊(duì)列的節(jié)點(diǎn):

$ docker service create \  --name redis_2 \  --constraint 'node.labels.type == queue' \
  redis:3.0.6

指定服務(wù)布局偏好(-placement-pref)

您可以設(shè)置該服務(wù),以便在不同的節(jié)點(diǎn)類別上平均劃分任務(wù)。其中一個(gè)有用的例子是在一組數(shù)據(jù)中心或可用性區(qū)域上平衡任務(wù)。下面的例子說明了這一點(diǎn):

$ docker service create \  --replicas 9 \  --name redis_2 \  --placement-pref 'spread=node.labels.datacenter' \
  redis:3.0.6

--placement-prefspread策略(當(dāng)前唯一支持的策略)一起使用,以將任務(wù)均勻分布在datacenter節(jié)點(diǎn)標(biāo)簽的值上。在這個(gè)例子中,我們假設(shè)每個(gè)節(jié)點(diǎn)都datacenter附有一個(gè)節(jié)點(diǎn)標(biāo)簽。如果群體中的節(jié)點(diǎn)之間存在三個(gè)不同的標(biāo)簽值,則三分之一的任務(wù)將被放置在與每個(gè)值相關(guān)的節(jié)點(diǎn)上。即使有更多的節(jié)點(diǎn)具有一個(gè)值而不是另一個(gè)值,情況也是如此。例如,請考慮以下一組節(jié)點(diǎn):

  • 三節(jié)點(diǎn)node.labels.datacenter=east

  • 兩個(gè)節(jié)點(diǎn)node.labels.datacenter=south

  • 一個(gè)節(jié)點(diǎn)node.labels.datacenter=west

因?yàn)槲覀冋跀U(kuò)展到datacenter標(biāo)簽和服務(wù)有9個(gè)副本,3個(gè)副本將在每個(gè)數(shù)據(jù)中心結(jié)束。有三個(gè)節(jié)點(diǎn)與值相關(guān)聯(lián)。east,因此每個(gè)副本都將獲得為該值保留的三個(gè)副本中的一個(gè)。有兩個(gè)節(jié)點(diǎn)的值south,而這個(gè)值的三個(gè)副本將在它們之間被分割,其中一個(gè)接收兩個(gè)副本,另一個(gè)只接收一個(gè)副本。最后,west有一個(gè)節(jié)點(diǎn),它將為所有三個(gè)副本保留west...

如果某個(gè)類別中的節(jié)點(diǎn)(例如那些節(jié)點(diǎn)node.labels.datacenter=south)由于約束或資源限制而無法處理其公平份額的任務(wù),則可能會(huì)將其他任務(wù)分配給其他節(jié)點(diǎn)。

布局首選項(xiàng)支持引擎標(biāo)簽和節(jié)點(diǎn)標(biāo)簽。上面的示例使用節(jié)點(diǎn)標(biāo)簽,因?yàn)闃?biāo)簽是以引用的node.labels.datacenter。要分布引擎標(biāo)簽的值,請使用--placement-pref spread=engine.labels.<labelname>。

可以向服務(wù)添加多個(gè)位置首選項(xiàng)。這就建立了一個(gè)首選項(xiàng)的層次結(jié)構(gòu),這樣任務(wù)首先被劃分在一個(gè)類別上,然后再被進(jìn)一步劃分到其他類別上。這可能有用的一個(gè)例子是,在數(shù)據(jù)中心之間公平地劃分任務(wù),然后在每個(gè)數(shù)據(jù)中心內(nèi)通過一個(gè)貨架的選擇來劃分任務(wù)。若要添加多個(gè)位置首選項(xiàng),請指定--placement-pref旗幟多次。該順序是重要的,在作出調(diào)度決策時(shí),位置首選項(xiàng)將應(yīng)用于給定的順序。

以下示例使用多個(gè)展示位置首選項(xiàng)設(shè)置服務(wù)。任務(wù)首先在各個(gè)數(shù)據(jù)中心上傳播,然后在機(jī)架上傳播(如各個(gè)標(biāo)簽所示):

$ docker service create \  --replicas 9 \  --name redis_2 \  --placement-pref 'spread=node.labels.datacenter' \  --placement-pref 'spread=node.labels.rack' \
  redis:3.0.6

在更新服務(wù)時(shí)docker service update,--placement-pref-add在所有現(xiàn)有展示位置偏好設(shè)置之后追加新的展示位置偏好設(shè)置。--placement-pref-rm刪除與參數(shù)匹配的現(xiàn)有展示位置偏好設(shè)置。

將服務(wù)附加到現(xiàn)有網(wǎng)絡(luò)( - 網(wǎng)絡(luò))

您可以使用覆蓋網(wǎng)絡(luò)連接群集中的一個(gè)或多個(gè)服務(wù)。

首先,在管理器節(jié)點(diǎn)上創(chuàng)建一個(gè)覆蓋網(wǎng)絡(luò)---docker網(wǎng)絡(luò)創(chuàng)建命令:

$ docker network create --driver overlay my-network

etjpu59cykrptrgw0z0hk5snf

在以群集模式創(chuàng)建覆蓋網(wǎng)絡(luò)之后,所有管理器節(jié)點(diǎn)都可以訪問該網(wǎng)絡(luò)。

創(chuàng)建服務(wù)并傳遞-Network標(biāo)志將服務(wù)附加到覆蓋網(wǎng)絡(luò)時(shí):

$ docker service create \  --replicas 3 \  --network my-network \  --name my-web \
  nginx

716thylsndqma81j6kkkb5aus

群將My-Network擴(kuò)展到運(yùn)行服務(wù)的每個(gè)節(jié)點(diǎn)。

相同網(wǎng)絡(luò)上的容器可以使用服務(wù)發(fā)現(xiàn)...

在群外發(fā)布服務(wù)端口(-p,-publish)

您可以發(fā)布服務(wù)端口,使它們在外部可用給群集,使用--publish

$ docker service create --publish <TARGET-PORT>:<SERVICE-PORT> nginx

例如:

$ docker service create --name my_web --replicas 3 --publish 8080:80 nginx

當(dāng)您發(fā)布服務(wù)端口時(shí),群路由網(wǎng)格使服務(wù)可以在每個(gè)節(jié)點(diǎn)上的目標(biāo)端口上訪問,而不管該節(jié)點(diǎn)上是否有運(yùn)行該服務(wù)的任務(wù)。有關(guān)更多信息,請參閱使用群模式路由網(wǎng)格...

僅為tcp或udp發(fā)布端口。

默認(rèn)情況下,當(dāng)發(fā)布端口時(shí),它是 TCP 端口。您可以專門發(fā)布UDP 端口,而不是 TCP 端口,也可以是 TCP 端口之外的端口。當(dāng)您同時(shí)發(fā)布 TCP 和 UDP 端口時(shí),Docker 1.12.2 和更早版本要求您添加后綴/tcp對于 TCP 端口。否則它是可選的。

僅TCP

以下兩個(gè)命令是等價(jià)的。

$ docker service create --name dns-cache -p 53:53 dns-cache

$ docker service create --name dns-cache -p 53:53/tcp dns-cache

TCP和UDP

$ docker service create --name dns-cache -p 53:53/tcp -p 53:53/udp dns-cache

僅UDP

$ docker service create --name dns-cache -p 53:53/udp dns-cache

提供托管服務(wù)帳戶的憑證規(guī)格(僅限 Windows)

此選項(xiàng)僅用于使用Windows容器的服務(wù)。大--credential-spec必須是格式file://<filename>registry://<value-name>...

當(dāng)使用file://<filename>格式時(shí),引用的文件必須出現(xiàn)在CredentialSpecs在docker數(shù)據(jù)目錄中的子目錄,該子目錄默認(rèn)為C:\ProgramData\Docker\在窗戶上。例如,指定file://spec.json負(fù)載C:\ProgramData\Docker\CredentialSpecs\spec.json...

當(dāng)使用registry://<value-name>格式時(shí),憑據(jù)規(guī)范是從守護(hù)進(jìn)程主機(jī)上的Windows注冊表讀取的。指定的注冊表值必須位于:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Containers\CredentialSpecs

使用模板創(chuàng)建服務(wù)

的一些標(biāo)志可以使用模板。service create,使用Go‘s提供的語法。文本/模板包裹。

支持的標(biāo)志如下:

  • --hostname

  • --mount

  • --env

Go模板的有效占位符列在下面:

Placeholder

Description

.Service.ID

Service ID

.Service.Name

Service name

.Service.Labels

Service labels

.Node.ID

Node ID

.Task.ID

Task ID

.Task.Name

Task name

.Task.Slot

Task slot

模板示例

在這個(gè)例子中,我們將根據(jù)服務(wù)的名稱和節(jié)點(diǎn)的ID設(shè)置創(chuàng)建容器的模板。

$ docker service create --name hosttempl \                        --hostname="{{.Node.ID}}-{{.Service.Name}}"\
                         busybox top

va8ew30grofhjoychbr6iot8c

$ 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

$ docker inspect --format="{{.Config.Hostname}}" hosttempl.1.wo41w8hg8qanxwjwsg4kxpprj

x3ti0erg11rjpg64m75kej2mz-hosttempl
Previous article: Next article: