亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄 搜索
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
文字

卷是持久化由 Docker 容器生成和使用的數(shù)據(jù)的首選機(jī)制。雖然綁定掛載依賴(lài)于主機(jī)的目錄結(jié)構(gòu),但卷由 Docker 完全管理。與綁定安裝相比,卷有幾個(gè)優(yōu)點(diǎn):

  • 與綁定掛載相比,卷更容易備份或遷移。

  • 您可以使用 Docker CLI 命令或 Docker API 管理卷。

  • 卷在 Linux 和 Windows 容器上均可使用。

  • 卷可以在多個(gè)容器之間更安全地共享。

  • 卷驅(qū)動(dòng)程序允許您在遠(yuǎn)程主機(jī)或云提供程序上存儲(chǔ)卷,加密卷的內(nèi)容或添加其他功能。

  • 新卷的內(nèi)容可以由容器預(yù)先填充。

另外,與使容器的可寫(xiě)入層中的數(shù)據(jù)持久化相比,卷通常是更好的選擇,因?yàn)槭褂镁聿粫?huì)增加使用容器的容器的大小,并且容器的內(nèi)容存在于給定容器的生命周期之外。

如果您的容器生成非持久狀態(tài)數(shù)據(jù),請(qǐng)考慮使用 tmpfs 掛載以避免將數(shù)據(jù)永久存儲(chǔ)在任何地方,并通過(guò)避免寫(xiě)入容器的可寫(xiě)層來(lái)提高容器的性能。

卷使用rprivate綁定傳播,并且卷的傳播不可配置。

選擇-v 或-moun t標(biāo)志

最初,-v--volume用標(biāo)志獨(dú)立的容器和--mount用于群服務(wù)標(biāo)志。但是,從 Docker 17.06 開(kāi)始,您也可以使用--mount獨(dú)立容器。一般來(lái)說(shuō),--mount更明確和詳細(xì)。最大的區(qū)別在于,-v語(yǔ)法將所有選項(xiàng)組合在一個(gè)字段中,而--mount語(yǔ)法將它們分開(kāi)。這是每個(gè)標(biāo)志的語(yǔ)法比較。

提示:新用戶(hù)應(yīng)使用--mount語(yǔ)法。有經(jīng)驗(yàn)的用戶(hù)可能更熟悉這個(gè)語(yǔ)法-v--volume語(yǔ)法,但鼓勵(lì)使用--mount,因?yàn)檠芯勘砻魉子谑褂谩?/p>

如果您需要指定音量驅(qū)動(dòng)程序選項(xiàng),則必須使用--mount。

  • -v 或者 --volume:由三個(gè)由冒號(hào)(:)分隔的字段組成。這些字段必須按正確的順序排列,每個(gè)字段的含義并不明顯。

    • 對(duì)于命名卷,第一個(gè)字段是卷的名稱(chēng),并且在給定主機(jī)上是唯一的。對(duì)于匿名卷,第一個(gè)字段被省略。

    • 第二個(gè)字段是文件或目錄將被安裝在容器中的路徑。

    • 第三個(gè)字段是可選的,并且是逗號(hào)分隔的選項(xiàng)列表,例如ro。這些選項(xiàng)在下面討論。

  • --mount:由多個(gè)鍵值對(duì)組成,由逗號(hào)分隔,每個(gè)由一個(gè)<key>=<value>元組組成。該--mount語(yǔ)法比更詳細(xì)的-v--volume,但按鍵的順序并不顯著,并且標(biāo)志的價(jià)值更容易理解。

    • type安裝件,其可以是bind,volume,或tmpfs。本主題討論卷,所以類(lèi)型將始終如此volume。

    • source安裝的。對(duì)于命名卷,這是卷的名稱(chēng)。對(duì)于匿名卷,該字段被省略。可能被指定為sourcesrc。

    • destination作為其值,其中的文件或目錄將被安裝在容器的路徑??梢灾付?code>destination,dsttarget。

    • readonly選項(xiàng)(如果存在)將導(dǎo)致綁定掛載以只讀方式掛載到容器中。

    • volume-opt可以多次指定的選項(xiàng)采用由選項(xiàng)名稱(chēng)和值組成的鍵值對(duì)。

以下示例在可能的地方顯示了語(yǔ)法--mount-v語(yǔ)法,并--mount首先給出。

-v--mount行為之間的差異

與綁定掛載相反,卷的所有選項(xiàng)都可用于標(biāo)志--mount-v標(biāo)志。

將卷與服務(wù)一起使用時(shí),僅--mount支持。

創(chuàng)建和管理卷

與綁定掛載不同,您可以創(chuàng)建和管理任何容器范圍之外的卷。

創(chuàng)建一個(gè)卷

$ docker volume create my-vol

清單卷

$ docker volume ls

local               my-vol

檢查卷

$ docker volume inspect my-vol[    {        "Driver": "local",        "Labels": {},        "Mountpoint": "/var/lib/docker/volumes/my-vol/_data",        "Name": "my-vol",        "Options": {},        "Scope": "local"    }]

刪除卷

$ docker volume rm my-vol

使用卷啟動(dòng)容器

如果您啟動(dòng)的卷尚未存在的容器,Docker 將為您創(chuàng)建卷。以下示例將卷myvol2裝入/app/容器中。

所述-v--mount以下實(shí)施例產(chǎn)生相同的結(jié)果。除非在運(yùn)行第一個(gè)devtest容器和容器myvol2之后移除容器和容量,否則無(wú)法運(yùn)行它們。

  • --mount

  • -v

$ docker run -d \  -it \  --name devtest \  --mount source=myvol2,target=/app \
  nginx:latest
$ docker run -d \  -it \  --name devtest \  -v myvol2:/app \
  nginx:latest

使用docker inspect devtest驗(yàn)證創(chuàng)建卷并安裝正確。尋找Mounts部分:

"Mounts": [    {        "Type": "volume",        "Name": "myvol2",        "Source": "/var/lib/docker/volumes/myvol2/_data",        "Destination": "/app",        "Driver": "local",        "Mode": "",        "RW": true,        "Propagation": ""    }],

這表明掛載是一個(gè)卷,它顯示正確的源和目標(biāo),并且掛載是可讀寫(xiě)的。

停止容器并移除卷。

$ docker container stop devtest

$ docker container rm devtest

$ docker volume rm myvol2

用卷啟動(dòng)服務(wù)

當(dāng)您啟動(dòng)服務(wù)并定義一個(gè)卷時(shí),每個(gè)服務(wù)容器將使用其自己的本地卷。如果使用local卷驅(qū)動(dòng)程序,則任何容器都不能共享此數(shù)據(jù),但某些卷驅(qū)動(dòng)程序確實(shí)支持共享存儲(chǔ)。AWS 的 Docker 和 Azure 的 Docker 都使用 Cloudstor 插件支持持久存儲(chǔ)。

以下示例啟動(dòng)一個(gè)nginx具有四個(gè)副本的服務(wù),每個(gè)副本使用一個(gè)稱(chēng)為的本地卷myvol2

$ docker service create -d \  --name devtest-service \  --mount source=myvol2,target=/app \
  nginx:latest

使用docker service ps devtest-service驗(yàn)證服務(wù)正在運(yùn)行:

$ docker service ps devtest-service

ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE            ERROR               PORTS
4d7oz1j85wwn        devtest-service.1   nginx:latest        moby                Running             Running 14 seconds ago

刪除停止所有任務(wù)的服務(wù):

$ docker service rm devtest-service

服務(wù)的語(yǔ)法差異

docker service create命令不支持-v--volume標(biāo)志。將卷安裝到服務(wù)的容器中時(shí),必須使用該--mount標(biāo)志。

使用容器填充卷

如果您啟動(dòng)一個(gè)創(chuàng)建新卷的容器(如上所述),并且容器在要裝載的目錄中具有文件或目錄(/app/如上所述),則該目錄的內(nèi)容將被復(fù)制到卷中。然后容器將安裝并使用該卷,并且使用該卷的其他容器也將有權(quán)訪(fǎng)問(wèn)預(yù)填充的內(nèi)容。

為了說(shuō)明這一點(diǎn),這個(gè)例子啟動(dòng)一個(gè)nginx容器,并nginx-vol用容器/usr/share/nginx/html目錄的內(nèi)容填充新卷,這是 Nginx 存儲(chǔ)其默認(rèn) HTML 內(nèi)容的地方。

這個(gè)例子--mount-v最后的結(jié)果是一樣的。

  • --mount

  • -v

$ docker run -d \  -it \  --name=nginxtest \  --mount source=nginx-vol,destination=/usr/share/nginx/html \
  nginx:latest
$ docker run -d \  -it \  --name=nginxtest \  -v nginx-vol:/usr/share/nginx/html \
  nginx:latest

運(yùn)行這些示例之一后,運(yùn)行以下命令來(lái)清理容器和卷。

$ docker container stop nginxtest

$ docker container rm nginxtest

$ docker volume rm nginx-vol

使用只讀卷

對(duì)于某些開(kāi)發(fā)應(yīng)用程序,容器能夠?qū)懭虢壎ò惭b非常有用,以便將更改傳播回Docker主機(jī)。在其他時(shí)候,容器應(yīng)該只能讀取數(shù)據(jù)而不能修改它。請(qǐng)記住,多個(gè)容器可以安裝相同的卷,并且可以同時(shí)對(duì)它們中的某些容器進(jìn)行讀寫(xiě)安裝,也可以對(duì)其他容器進(jìn)行只讀。

這個(gè)例子修改了上面的例子,但是通過(guò)ro在容器中的掛載點(diǎn)之后添加選項(xiàng)列表(默認(rèn)為空),將目錄掛載為只讀卷。如果存在多個(gè)選項(xiàng),請(qǐng)用逗號(hào)分隔它們。

--mount-v實(shí)例有同樣的結(jié)果。

  • --mount

  • -v

$ docker run -d \  -it \  --name=nginxtest \  --mount source=nginx-vol,destination=/usr/share/nginx/html,readonly \
  nginx:latest
$ docker run -d \  -it \  --name=nginxtest \  -v nginx-vol:/usr/share/nginx/html:ro \
  nginx:latest

使用docker inspect nginxtest驗(yàn)證綁定安裝正確創(chuàng)建。尋找Mounts部分:

"Mounts": [    {        "Type": "volume",        "Name": "nginx-vol",        "Source": "/var/lib/docker/volumes/nginx-vol/_data",        "Destination": "/usr/share/nginx/html",        "Driver": "local",        "Mode": "",        "RW": false,        "Propagation": ""    }],

停止并移除容器,然后移除該容器:

$ docker container stop nginxtest

$ docker container rm nginxtest

$ docker volume rm nginx-vol

使用卷驅(qū)動(dòng)程序

當(dāng)您使用創(chuàng)建卷docker volume create或啟動(dòng)使用尚未創(chuàng)建的卷的容器時(shí),可以指定卷驅(qū)動(dòng)程序。以下示例vieux/sshfs首先在創(chuàng)建獨(dú)立卷時(shí)使用卷驅(qū)動(dòng)程序,然后在啟動(dòng)將創(chuàng)建新卷的容器時(shí)使用卷驅(qū)動(dòng)程序。

初始設(shè)置

此示例假定您有兩個(gè)節(jié)點(diǎn),其中第一個(gè)是 Docker 主機(jī),可以使用 SSH 連接到第二個(gè)節(jié)點(diǎn)。

在 Docker 主機(jī)上安裝vieux/sshfs插件:

$ docker plugin install --grant-all-permissions vieux/sshfs

使用卷驅(qū)動(dòng)程序創(chuàng)建卷

本示例指定了一個(gè) SSH 密碼,但如果兩臺(tái)主機(jī)配置了共享密鑰,則可以省略該密碼。每個(gè)卷驅(qū)動(dòng)器可能有零個(gè)或多個(gè)可配置選項(xiàng),每個(gè)選項(xiàng)都使用一個(gè)-o標(biāo)志來(lái)指定。

$ docker volume create --driver vieux/sshfs \  -o sshcmd=test@node2:/home/test \  -o password=testpassword \
  sshvolume

啟動(dòng)一個(gè)使用卷驅(qū)動(dòng)程序創(chuàng)建卷的容器

本示例指定了一個(gè) SSH 密碼,但如果兩臺(tái)主機(jī)配置了共享密鑰,則可以省略該密碼。每個(gè)卷驅(qū)動(dòng)可能有零個(gè)或多個(gè)可配置選項(xiàng)。如果卷驅(qū)動(dòng)程序要求您傳遞選項(xiàng),則必須使用此--mount標(biāo)志掛載卷,而不是-v**。**

$ docker run -d \  --it \  --name sshfs-container \  --volume-driver vieux/sshfs \  --mount src=sshvolume,target=/app,volume-opt=sshcmd=test@node2:/home/test,volume-opt=password=testpassword \
  nginx:latest

下一步

  • 了解綁定掛載。

  • 了解 tmpfs 掛載。

  • 了解存儲(chǔ)驅(qū)動(dòng)程序。

上一篇: 下一篇: