亚洲国产日韩欧美一区二区三区,精品亚洲国产成人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
文字

  • 1:概況介紹

  • 2:集裝箱

  • 3:服務(wù)

  • 4:成群

  • 5:堆疊

  • 6:部署應(yīng)用程序

先決條件

  • 安裝Docker版本1.13或更高版本。

  • 按照第3部分的先決條件中所述獲取Docker撰寫。

  • 獲取預(yù)裝Docker for Mac和Docker for Windows的 Docker Machine,但在Linux系統(tǒng)上需要直接安裝它。在沒有Hyper-V的 Windows 10系統(tǒng)之前以及Windows 10 Home中,使用Docker Toolbox。

  • 閱讀第1部分中的方向。

  • 學(xué)習(xí)如何在第2部分中創(chuàng)建容器。

  • 確保您已經(jīng)發(fā)布了friendlyhello你創(chuàng)造的形象將其推送到注冊表我們將在這里使用共享的圖像。

  • 確保你的圖像作為一個部署的容器。運行此命令,在您的信息開槽username,repotagdocker run -p 80:80 username/repo:tag,然后訪問http://localhost/。

  • 有一份你的docker-compose.yml從第3部分手巧。

導(dǎo)言

在第3部分,你拿了一個你在里面寫的應(yīng)用程序第二部分,并定義了如何在生產(chǎn)中運行,將其轉(zhuǎn)化為服務(wù),在流程中將其擴(kuò)展到5倍。

在第4部分中,您將這個應(yīng)用程序部署到一個集群上,在多臺機(jī)器上運行它。多容器、多機(jī)器應(yīng)用程序通過將多臺機(jī)器連接到一個名為蜂群...

理解群集

Swarm是一組運行Docker并加入到集群中的機(jī)器。發(fā)生這種情況后,您將繼續(xù)運行您習(xí)慣的Docker命令,但現(xiàn)在它們將由群集管理器在群集上執(zhí)行。群體中的機(jī)器可以是物理的或虛擬的。加入群體后,他們被稱為節(jié)點。

群管理器可以使用幾種策略來運行容器,比如“最空的節(jié)點”--即用容器填充利用率最低的機(jī)器。或“全局”,它確保每臺機(jī)器都得到指定容器的一個實例。您指示群管理器在撰寫文件中使用這些策略,就像您已經(jīng)使用過的策略一樣。

群管理器是群集中唯一能夠執(zhí)行命令或授權(quán)其他機(jī)器加入群集的機(jī)器。工人.工人只是為了提供能力,沒有權(quán)力告訴任何其他機(jī)器它能做什么和不能做什么。

到目前為止,您一直在本地計算機(jī)上以單一主機(jī)模式使用Docker。但是碼頭工人也可以群模式,這就是為什么可以使用蜂群。啟用群集模式立即使當(dāng)前機(jī)器成為群管理器。從那時起,Docker將在您正在管理的群集上運行命令,而不僅僅是在當(dāng)前的機(jī)器上運行。

建立你的蜂群

群集由多個節(jié)點組成,可以是物理的,也可以是虛擬機(jī)?;靖拍罘浅:唵危哼\行docker swarm init若要啟用群集模式并使當(dāng)前機(jī)器成為群集管理器,請運行docker swarm join在其他機(jī)器上,讓它們作為工人加入蜂群。在下面選擇一個選項卡,看看這在不同的上下文中是如何進(jìn)行的。我們將使用VM快速創(chuàng)建一個雙機(jī)集群,并將其轉(zhuǎn)化為一個集群。

創(chuàng)建集群

  • 本地VM(Mac,Linux,Windows 7和8)

  • 本地虛擬機(jī)(Windows 10 / Hyper-V)

本地計算機(jī)上的虛擬機(jī)(Mac,Linux,Windows 7和8)

首先,您需要一個可以創(chuàng)建VM的虛擬機(jī)管理程序,所以安裝VirtualBox你機(jī)器的操作系統(tǒng)。

:如果您在安裝了Hyper-V的Windows系統(tǒng)上,如Windows 10,則不需要安裝VirtualBox,而應(yīng)該使用Hyper-V。通過單擊上面的Hyper-V選項卡查看超級V系統(tǒng)的說明。

現(xiàn)在,使用docker-machine,使用VirtualBox驅(qū)動程序:

$ docker-machine create --driver virtualbox myvm1
$ docker-machine create --driver virtualbox myvm2

你現(xiàn)在有兩個虛擬機(jī)創(chuàng)建,命名myvm1myvm2(如docker-machine ls顯示)。第一個將作為經(jīng)理,執(zhí)行docker命令和認(rèn)證工人加入群體,第二個將是一個工人。

您可以使用docker-machine ssh.指示myvm1成為一名群經(jīng)理docker swarm init你會看到這樣的輸出:

$ docker-machine ssh myvm1 "docker swarm init"Swarm initialized: current node <node ID> is now a manager.To add a worker to this swarm, run the following command:

  docker swarm join \  --token <token> \  <ip>:<port>

有關(guān)于需要使用的錯誤--advertise-addr?myvm1通過運行復(fù)制IP地址docker-machine ls,然后docker swarm init再次運行該命令,使用該IP并指定port 2377(swarm連接的端口)--advertise-addr。例如:docker-machine ssh myvm1“docker swarm init --advertise-addr 192.168.99.100:2377”

如您所見,對docker swarm init包含預(yù)先配置的docker swarm join命令,以便在要添加的任何節(jié)點上運行。復(fù)制此命令,并將其發(fā)送到myvm2通孔docker-machine sshmyvm2加入你的新蜂群作為一個工人:

$ docker-machine ssh myvm2 "docker swarm join \
--token <token> \
<ip>:<port>"This node joined a swarm as a worker.

恭喜你,你創(chuàng)造了你的第一群。

::您也可以運行docker-machine ssh myvm2沒有附加任何命令來打開該VM上的終端會話。類型exit當(dāng)您準(zhǔn)備返回到主機(jī)shell提示符時。以這種方式粘貼Join命令可能更容易。

使用ssh連接到(docker-machine ssh myvm1),并運行docker node ls在該群查看節(jié)點:

docker@myvm1:~$ docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS
brtu9urxwfd5j0zrmkubhpkbd     myvm2               Ready               Active              
rihwohkh3ph38fhillhhb84sk *   myvm1               Ready               Active              Leader

類型exit從機(jī)器里出來。

或者,將命令包裝在docker-machine ssh以避免直接登錄或退出。例如:

docker-machine ssh myvm1 "docker node ls"

本地機(jī)器上的虛擬機(jī)(Windows 10)

首先,快速創(chuàng)建一個虛擬交換機(jī)供您的VM共享,這樣它們就能夠相互連接。

  1. 發(fā)射超V管理器

  1. 點擊虛擬開關(guān)管理器在右邊的菜單中

  1. 點擊創(chuàng)建虛擬開關(guān)類型外部

  1. 給它起個名字myswitch,并選中此復(fù)選框以共享主機(jī)的活動網(wǎng)絡(luò)適配器

現(xiàn)在,使用我們的節(jié)點管理工具創(chuàng)建幾臺虛擬機(jī),docker-machine*

$ docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm1
$ docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm2

你現(xiàn)在有兩個虛擬機(jī)創(chuàng)建,命名myvm1myvm2(如docker-machine ls顯示)。第一個將作為經(jīng)理,執(zhí)行docker命令和認(rèn)證工人加入群體,第二個將是一個工人。

您可以使用docker-machine ssh.指示myvm1成為一名群經(jīng)理docker swarm init你會看到這樣的輸出:

$ docker-machine ssh myvm1 "docker swarm init"Swarm initialized: current node <node ID> is now a manager.To add a worker to this swarm, run the following command:

  docker swarm join \  --token <token> \  <ip>:<port>

有關(guān)于需要使用的錯誤--advertise-addr?myvm1通過運行復(fù)制IP地址docker-machine ls,然后docker swarm init再次運行該命令,使用該IP并指定port 2377(swarm連接的端口)--advertise-addr。例如:docker-machine ssh myvm1“docker swarm init --advertise-addr 192.168.99.100:2377”

如您所見,對docker swarm init包含預(yù)先配置的docker swarm join命令,以便在要添加的任何節(jié)點上運行。復(fù)制此命令,并將其發(fā)送到myvm2通孔docker-machine sshmyvm2加入你的新蜂群作為一個工人:

$ docker-machine ssh myvm2 "docker swarm join \
--token <token> \
<ip>:<port>"This node joined a swarm as a worker.

恭喜你,你創(chuàng)造了你的第一群。

::您也可以運行docker-machine ssh myvm2沒有附加任何命令來打開該VM上的終端會話。類型exit當(dāng)您準(zhǔn)備返回到主機(jī)shell提示符時。以這種方式粘貼Join命令可能更容易。

使用ssh連接到(docker-machine ssh myvm1),并運行docker node ls在該群查看節(jié)點:

docker@myvm1:~$ docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS
brtu9urxwfd5j0zrmkubhpkbd     myvm2               Ready               Active              
rihwohkh3ph38fhillhhb84sk *   myvm1               Ready               Active              Leader

類型exit從機(jī)器里出來。

或者,將命令包裝在docker-machine ssh以避免直接登錄或退出。例如:

docker-machine ssh myvm1 "docker node ls"

在集群上部署應(yīng)用程序

困難的部分結(jié)束了。現(xiàn)在,您只需重復(fù)您在其中使用的過程。第3部分部署到你的新蜂群上。記住,只有一群經(jīng)理喜歡myvm1執(zhí)行Docker命令;工作人員只是為了容量。

使用以下命令docker-compose.yml將第3部分中創(chuàng)建的文件復(fù)制到swarm管理器myvm1的主目錄(別名:):~docker-machine scp

docker-machine scp docker-compose.yml myvm1:~

現(xiàn)在有myvm1使用它作為群管理器的功能,通過發(fā)送同樣的命令來部署應(yīng)用程序。docker stack deploy在第3部分中使用的命令myvm1使用docker-machine ssh*

docker-machine ssh myvm1 "docker stack deploy -c docker-compose.yml getstartedlab"

就是這樣,應(yīng)用程序部署在一個集群上。

將第3部分中使用的所有命令打包到docker-machine ssh它們都會像你所期望的那樣工作。只是這一次,您將看到容器在兩個myvm1myvm2...

$ docker-machine ssh myvm1 "docker stack ps getstartedlab"ID            NAME        IMAGE              NODE   DESIRED STATE
jq2g3qp8nzwx  test_web.1  username/repo:tag  myvm1  Running
88wgshobzoxl  test_web.2  username/repo:tag  myvm2  Running
vbb1qbkb0o2z  test_web.3  username/repo:tag  myvm2  Running
ghii74p9budx  test_web.4  username/repo:tag  myvm1  Running
0prmarhavs87  test_web.5  username/repo:tag  myvm2  Running

訪問群集

您可以從任一 myvm1兩個的IP地址訪問您的應(yīng)用程序myvm2。您創(chuàng)建的網(wǎng)絡(luò)在它們之間共享并負(fù)載平衡。運行docker-machine ls以獲取虛擬機(jī)的IP地址,然后在瀏覽器中訪問其中的任意一個,并刷新(或者只是curl它們)。您將看到五個可能的容器ID,它們都是隨機(jī)循環(huán)的,展示了負(fù)載平衡。

兩個ip地址工作的原因是群集中的節(jié)點參與了入口。路由網(wǎng)格這可以確保部署在集群中某個端口的服務(wù)始終保留在自己的端口上,而不管實際運行的是哪個節(jié)點。下面是一個服務(wù)的路由網(wǎng)格是如何被稱為my-web在港口發(fā)表8080在一個三節(jié)點群中,可以看到:

二次

二次

連接有問題嗎? 請記住,為了在群集中使用入口網(wǎng)絡(luò),在啟用群集模式之前,需要在群節(jié)點之間打開以下端口:

  • 端口7946 TCP/UDP用于容器網(wǎng)絡(luò)的發(fā)現(xiàn)。

  • 端口4789 UDP用于集裝箱入口網(wǎng)絡(luò)。

迭代和縮放應(yīng)用程序

從這里開始,您可以完成在第3部分中了解到的所有內(nèi)容。

通過更改docker-compose.yml檔案。

通過編輯代碼來改變應(yīng)用程序的行為。

在任何一種情況下,只需運行docker stack deploy再次部署這些更改。

您可以使用相同的方法將任何機(jī)器,無論是物理機(jī)器還是虛擬機(jī)器,加入到這個群集中。docker swarm join你用的命令myvm2,則將將容量添加到群集中??炫?code>docker stack deploy之后,你的應(yīng)用程序?qū)⒗眯碌馁Y源。

清理

你可以用docker stack rm例如:

docker-machine ssh myvm1 "docker stack rm getstartedlab"

保持群或刪除它?在某個時候,如果你想要docker-machine ssh myvm2 "docker swarm leave"在工人和docker-machine ssh myvm1 "docker swarm leave --force"經(jīng)理身上工作,你可以刪除這個群體,但是你需要這個群體的第5部分,所以請保留它

關(guān)于第5部分

簡述和備忘單(可選)

這是本頁所涵蓋內(nèi)容的終端記錄*

在第4部分中,您了解了群集是什么,集群中的節(jié)點如何成為管理人員或工作人員,如何創(chuàng)建群集,并在其上部署應(yīng)用程序。您看到核心Docker命令與第3部分并沒有改變,它們只是為了在群主上運行而成為目標(biāo)。您還看到了Docker網(wǎng)絡(luò)的強(qiáng)大功能,即使它們在不同的機(jī)器上運行,也能保持跨容器的負(fù)載平衡請求。最后,您學(xué)習(xí)了如何在集群上迭代和縮放應(yīng)用程序。

下面是一些您可能希望運行的命令,以便與群集進(jìn)行交互:

docker-machine create --driver virtualbox myvm1 # Create a VM (Mac, Win7, Linux)docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm1 # Win10
docker-machine env myvm1                # View basic information about your node
docker-machine ssh myvm1 "docker node ls"         # List the nodes in your swarm
docker-machine ssh myvm1 "docker node inspect <node ID>"        # Inspect a node
docker-machine ssh myvm1 "docker swarm join-token -q worker"   # View join token
docker-machine ssh myvm1   # Open an SSH session with the VM; type "exit" to end
docker-machine ssh myvm2 "docker swarm leave"  # Make the worker leave the swarm
docker-machine ssh myvm1 "docker swarm leave -f" # Make master leave, kill swarm
docker-machine start myvm1            # Start a VM that is currently not running
docker-machine stop $(docker-machine ls -q)               # Stop all running VMs
docker-machine rm $(docker-machine ls -q) # Delete all VMs and their disk images
docker-machine scp docker-compose.yml myvm1:~     # Copy file to node's home dir
docker-machine ssh myvm1 "docker stack deploy -c <file> <app>"   # Deploy an app
上一篇: 下一篇: