GVKun编程网logo

将docker-compose与docker swarm一起使用(docker compose和swarm)

25

如果您对将docker-compose与dockerswarm一起使用感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于将docker-compose与dockerswarm一

如果您对将docker-compose与docker swarm一起使用感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于将docker-compose与docker swarm一起使用的详细内容,我们还将为您解答docker compose和swarm的相关问题,并且为您提供关于Centos7安装docker与docker-compose、Docker Compose 和 Docker Swarm 和 Docker Service、Docker Compose与Dockerfile-哪个更好?、Docker Compose比Docker Swarm和Docker Stack有什么好处?的有价值信息。

本文目录一览:

将docker-compose与docker swarm一起使用(docker compose和swarm)

将docker-compose与docker swarm一起使用(docker compose和swarm)

我正在使用docker 1.12.1 一个简单的docker-compose脚本。

version: ''2''services:  jenkins-slave:    build: ./slave    image: jenkins-slave:1.0    restart: always    ports:     - "22"    environment:     - "constraint:NODE==master1"  jenkins-master:    image: jenkins:2.7.1    container_name: jenkins-master    restart: always    ports:     - "8080:8080"     - "50000"    environment:     - "constraint:NODE==node1"

我使用运行该脚本docker-compose -p jenkins up-d。这将创建我的2个容器,但仅在我的主容器上(从此处执行命令)创建容器。我希望在主机上创建一个,在节点上创建一个。我也尝试添加

networks:  jenkins_swarm:    driver: overlay

  networks:     - jenkins_swarm

每次服务后,但这都失败了:

Cannot create container for service jenkins-master: network jenkins_jenkins_swarm not found

当我执行网络创建时 docker network ls

有人可以通过docker-
compose帮助我在2个节点上部署2个容器。Swarm正在为我的“集群”工作。我按照本教程进行了验证。

答案1

小编典典

Compose目前不支持Swarm Mode。

docker compose up主节点上运行时,Compose会docker run在Compose文件中发出服务命令,而不是dockerservicecreate-这就是为什么容器都在主节点上运行的原因。有关选项,请参见此答案。

第二点,网络在范围内1.12。如果检查您的网络,您会发现它是在群集级别创建的,但是Compose运行的是引擎级别的容器,看不到群集网络。

Centos7安装docker与docker-compose

Centos7安装docker与docker-compose

Docker是一个开源的容器虚拟化平台 , Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启动你的应用,完成一切准备工作。;

- CentOS 7.0下Docker的安装

1.查看内核版本(Docker需要64位版本,同时内核版本在3.10以上,如果版本低于3.10,需要升级内核):

1
uname -r

2.更新yum包:

1
yum update

3.添加yum仓库:

1
2
3
4
5
6
7
8
sudo tee /etc/yum.repos.d/docker.repo <<-''EOF''
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

4.安装Docker

1
yum install docker-engine

5.启动Docker

1
systemctl start docker.service 或者 service docker start

6.使用Docker国内镜像(为Docker镜像下载提速,非必须)

1
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://fe8a7d6e.m.daocloud.io

- docker-compose 简介

一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过services 来定义,然后使用 docker-compose 脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。完整的命令列表如下:

build 构建或重建服务
help 命令帮助
kill 杀掉容器
logs 显示容器的输出内容
port 打印绑定的开放端口
ps 显示容器
pull 拉取服务镜像
restart 重启服务
rm 删除停止的容器
run 运行一个一次性命令
scale 设置服务的容器数目
start 开启服务
stop 停止服务
up 创建并启动容器

参考 https://docs.docker.com/compose/install/ 。你能运行Compose在OSX和64位Linux。当前不支持Windows操作系统。

- 安装Docker Compose

curl方式

1
2
3
4
5
curl -L https://github.com/docker/compose/releases/download/1.7.0/docker-compose-`uname -s `-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose -v

python-pip 方式

1
2
3
4
5
6
7
8
9
yum -y install -y epel-release	#安装pip需要先安装epel-release包

yum install -y python-pip #安装pip

pip install --upgrade pip #升级pip

pip install docker-compose #安装docker-compose

docker-compose -v #查看docker-compose的版本

如果docker-compose报错

1
2
3
4
5
6
7
8
Traceback (most recent call last):  
File "/usr/bin/docker-compose", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 3011, in <module>
parse_requirements(__requires__), Environment()
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 626, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: backports.ssl-match-hostname>=3.5

输入:

1
pip install --upgrade backports.ssl_match_hostname

 

配置文件

Compose的配置文件是docker-compose.yml。让我们看看下面这个文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
mysqldb:
image: [classroom.example.com:5000/]mysql
environment:
MYSQL_DATABASE: sample
MYSQL_USER: mysql
MYSQL_PASSWORD: mysql
MYSQL_ROOT_PASSWORD: supersecret
mywildfly:
image: [classroom.example.com:5000|arungupta]/wildfly-mysql-javaee7
links:
- mysqldb:db
ports:
- 8080

a. 定义了两个服务分别叫做mysqldbmywildfy

b. 使用image定义每个服务的镜像名

c. MySQL容器的环境变量定义在environment

d. MySQL容器使用linksWildFly容器链接

e. 使用ports实现端口转发

启动服务

1.如果你从互联网运行,将docker-compose-internet.yml保存为docker-compose.yml

2.如果你使用教师给的镜像,将docker-compose-instructor.yml保存为docker-compose.yml

3.使用下面的命令,所有的服务将使用后台模式被启动

1
docker-compose up -d

显示的输出如下:
Creating attendees_mysqldb_1... Creating attendees_mywildfly_1...

使用-f指定代替的compose文件。

使用-p指定代替compose文件所在的目录。

这里提供了一个整合的列表显示所有启动的服务和容器。

同时,通常使用docker ps命令来验证应用的容器,和在Docker主机上运行的其他容器。

1
2
3
CONTAINER ID        IMAGE                                    COMMAND                CREATED             STATUS              PORTS                              NAMES
3598e545bd2f arungupta/wildfly-mysql-javaee7:latest "/opt/jboss/wildfly/ 59 seconds ago Up 58 seconds 0.0.0.0:32773->8080/tcp attendees_mywildfly_1
b8cf6a3d518b mysql:latest "/entrypoint.sh mysq 2 minutes ago U

Docker Compose 和 Docker Swarm 和 Docker Service

Docker Compose 和 Docker Swarm 和 Docker Service

Docker Compose

介绍

通过yml文件配置,高效管理多个docker,启停

中文文档

https://www.jb51.cc/manual/view/36129.html

安装

# 慢
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 国内镜像
$ sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

授权文件

$ sudo chmod +x /usr/local/bin/docker-compose

测试

$ docker-compose --version
docker-compose version 1.27.4, build 1110ad01

卸载

sudo rm /usr/local/bin/docker-compose

测试使用(官方给的)

1创建文件夹

$ mkdir composetest
$ cd composetest

2写测试程序Python。app.py

import time

import redis
from flask import Flask

app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)

def get_hit_count():
    retries = 5
    while True:
        try:
            return cache.incr('hits')
        except redis.exceptions.ConnectionError as exc:
            if retries == 0:
                raise exc
            retries -= 1
            time.sleep(0.5)

@app.route('/')
def hello():
    count = get_hit_count()
    return 'Hello World! I have been seen {} times.\n'.format(count)

3创建py文件依赖文件requirements.txt

flask
redis

4创建Dockerfile文件

FROM python:3.7-alpine
workdir /code
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
copY requirements.txt requirements.txt
RUN pip install -r requirements.txt
EXPOSE 5000
copY . .
CMD ["flask", "run"]

5创建docker-compose.yml

# version: "3.9" 需要版本对应
version: "3"
services:
  web:
    build: .
    ports:
      - "5000:5000"
  redis:
    image: "redis:alpine"

6使用Compose构建并运行应用程序

docker-compose up
# 后台运行
# docker-compose up -d

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-87feppxX-1608950922543)(C:\Users\admin\AppData\Local\Temp\1608866566146.png)]

  1. docker images 自动下载依赖镜像
  2. 默认服务名: 文件名 _ 服务名 _ num(集群副本数量)
  3. 创建docker compose自己默认网络,并将所有启动的容器添加到网络中
  4. 在同一网络下可以直接使用域名访问

停止

# 前端运行使用 ctrl + c 停止
# 后台运行使用
docker-compose stop

yml文件规则

version: "3" # docker-compose核心版本
services: # 服务
	fw: # 服务名称
		image: redis # 服务配置
		ports: # 服务配置2
      		- "5000:5000"
      	depends_on: # 依赖(启动顺序)
      		- fw2
      		- redis
      	..... # 容器启动的所有配置
	fw2: 
		image: # 服务配置

官方文档 https://docs.docker.com/compose/compose-file/compose-file-v2/

测试开源程序(官方给的)

创建工作文件夹 my_wordpress/

创建docker-compose.yml

version: '3.3'

services:
   db:
     image: MysqL:5.7
     volumes:
       - db_data:/var/lib/MysqL
     restart: always
     environment:
       MysqL_ROOT_PASSWORD: somewordpress
       MysqL_DATABASE: wordpress
       MysqL_USER: wordpress
       MysqL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       wordpress_DB_HOST: db:3306
       wordpress_DB_USER: wordpress
       wordpress_DB_PASSWORD: wordpress
       wordpress_DB_NAME: wordpress
volumes:
    db_data: {}

后台运行

docker-compose up -d

Docker Swarm

  • 集群
  • 必须有两个或两个以上主节点才能运行

Swarm mode cluster

[root@centos3 ~]# docker swarm --help

Usage:  docker swarm COMMAND

Manage Swarm

Commands:
  ca          管理根CA
  init        初始化集群
  join        加入集群
  join-token  创建加入令牌
  leave       离开集群
  unlock      解锁群
  unlock-key  管理解锁密钥
  update      更新集群

Run 'docker swarm COMMAND --help' for more information on a command.

1初始化一个集群

docker swarm init [OPTIONS]
名字,简写默认描述
–advertise-addr通告地址(格式:<ip | interface>:端口)
–autolock启用管理器自动锁定(需要解锁密钥才能启动停止的管理器)
–availabilityactive节点的可用性(“活动”|“暂停”|“漏”)
–cert-expiry2160h0m0s节点证书的有效期(ns | us | ms | s | m | h)
–data-path-addr用于数据路径流量的地址或接口(格式:<ip | interface>)
–dispatcher-heartbeat5S调度员心跳周期(ns | us | ms | s | m | h)
–external-ca一个或多个证书签名端点的规格
–force-new-cluster强制从当前状态创建一个新的群集
–listen-addr0.0.0.0:2377监听地址(格式:<ip | interface>:端口)
–max-snapshots0要保留的附加木筏快照的数量
–snapshot-interval10000Raft快照之间的日志条目数
–task-history-limit5任务历史保留限制
# 初始化集群
docker swarm init --advertise-addr 192.168.0.191

2加入一个节点

docker swarm join [OPTIONS] HOST:PORT
名字,简写默认描述
–advertise-addr通告地址(格式:<ip | interface>:端口)
–availabilityactive节点的可用性(“活动”|“暂停”|“漏”)
–data-path-addr用于数据路径流量的地址或接口(格式:<ip | interface>)
–listen-addr0.0.0.0:2377监听地址(格式:<ip | interface>:端口)
–token进入群的令牌
# 例如加入一个节点
# 令牌SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2
docker swarm join --token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2 192.168.0.191:2377

3获取令牌

docker swarm join-token [OPTIONS] (worker|manager)
# 工作令牌
docker swarm join-token worker
# 管理令牌
docker swarm join-token manager

查看节点

# 查看节点
docker node

Docker Service

docker service COMMAND
命令描述
docker service create创建一项新服务
docker service inspect显示一项或多项服务的详细信息
docker service logs获取服务或任务的日志
docker service ls列出服务
docker service ps列出一项或多项服务的任务
docker service rm删除一项或多项服务
docker service scale扩展一个或多个复制服务
docker service update更新服务

1创建服务

docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]
名字,简写默认描述
–config指定配置以暴露给服务
–constraint展示位置限制
–container-label容器标签
–credential-spec托管服务帐户的凭证规范(仅限Windows)
–detach,-d真正立即退出,而不是等待服务收敛
–dns设置自定义DNS服务器
–dns-option设置DNS选项
–dns-search设置自定义DNS搜索域
–endpoint-mode要人端点模式(vip或dnsrr)
–entrypoint覆盖图像的默认入口点
–env,-e设置环境变量
–env-file读入环境变量文件
–group为容器设置一个或多个补充用户组
–health-cmd运行以检查运行状况的命令
–health-interval运行检查之间的时间(ms | s | m | h)
–health-retries0需要报告不健康的连续失败
–health-start-period在重新计数到不稳定(ms | s | m | h)之前,容器初始化的开始时间段
–health-timeout允许一次检查运行的最长时间(ms | s | m | h)
–host设置一个或多个自定义主机到IP映射(主机:IP)
–hostname容器主机名
–label, -l服务标签
–limit-cpu限制cpu
–limit-memory0限制记忆
–log-driver记录驱动程序的服务
–log-OPT记录驱动程序选项
–mode复制服务模式(复制或全局)
–mount将文件系统挂载附加到服务
–name服务名称
–network网络附件
–no-healthcheck禁用任何容器指定的HEALTHCHECK
–no-resolve-image不要查询注册表来解析图像摘要和支持的平台
–placement-PREF添加展示位置首选项
–publish,-p将端口发布为节点端口
–quiet,-q抑制进度输出
–read-only将容器的根文件系统挂载为只读
–replicas任务数量
–reserve-cpu预留cpu
–reserve-memory0保留内存
–restart-condition满足条件时重新启动(“none”|“on-failure”|“any”)(默认为“any”)
–restart-delay重启尝试之间的延迟(ns | us | ms | s | m | h)(默认5秒)
–restart-max-attempts放弃前的最大重启次数
–restart-window用于评估重新启动策略的窗口(ns | us | ms | s | m | h)
–rollback-delay0任务回滚之间的延迟(ns | us | ms | s | m | h)(默认值为0)
–rollback-failure-action回滚失败的操作(“暂停”|“继续”)(默认“暂停”)
–rollback-max-failure-ratio0在回滚期间容忍的失败率(默认0)
–rollback-monitor0(ns | us | ms | s | m | h)(默认5秒)每个任务回滚之后的持续时间
–rollback-order回滚顺序(“start-first”|“stop-first”)(默认“stop-first”)
–rollback-parallelism1同时回滚的任务的最大数量(0一次全部回滚)
–secret指定泄露给服务的秘密
–stop-grace-period强制杀死一个容器之前等待的时间(ns | us | ms | s | m | h)(默认10秒)
–stop-signal停止容器的信号
–tty, -t分配一个伪TTY
–update-delay0更新之间的延迟(ns | us | ms | s | m | h)(默认为0)
–update-failure-action更新失败的操作(“暂停”|“继续”|“回滚”)(默认“暂停”)
–update-max-failure-ratio0更新期间容许的失败率(默认0)
–update-monitor0(ns | us | ms | s | m | h)(默认5秒)每个任务更新后的持续时间
–update-order更新顺序(“start-first”|“stop-first”)(默认为“stop-first”)
–update-parallelism1同时更新的最大任务数(0个一次全部更新)
–user,-u用户名或UID(格式:<名称| uid>:<组| gid>)
–with-registry-auth向注册代理发送注册表认证详细信息
–workdir,-w容器内的工作目录
# 例如,启动一个Nginx服务,暴露8080端口
docker service create -p 8080:80 --name Nginx01 Nginx
# docker run 容器启动,单机版本
# docker service 服务启动,支持扩缩容器
# 查看服务
docker service ps Nginx01
# 查看副本
docker service ls
# 查看详情
docker service inspect Nginx01

2更新服务

docker service update [OPTIONS] SERVICE
名字,简写默认描述
–args服务命令参数
–config-add添加或更新服务上的配置文件
–config-RM删除配置文件
–constraint-add添加或更新展示位置约束
–constraint-RM删除约束
–container-label-add添加或更新容器标签
–container-label-rm用钥匙取出容器标签
–credential-spec托管服务帐户的凭证规范(仅限Windows)
–detach,-d立即退出,而不是等待服务收敛
–dns-add添加或更新自定义DNS服务器
–dns-option-add添加或更新DNS选项
–dns-option-rm删除一个DNS选项
–dns-rm删除自定义的DNS服务器
–dns-search-add添加或更新自定义DNS搜索域
–dns-search-rm删除一个DNS搜索域
–endpoint-mode端点模式(vip或dnsrr)
–entrypoint覆盖图像的默认入口点
–env-add添加或更新环境变量
–env-RM删除一个环境变量
–force即使没有更改需要,也强制更新
–group-add向容器添加一个附加的补充用户组
–group-RM从容器中删除先前添加的补充用户组
–health-cmd运行以检查运行状况的命令
–health-interval运行检查之间的时间(ms | s | m | h)
–health-retries0需要报告不健康的连续失败
–health-retries在重新计数到不稳定(ms | s | m | h)之前,容器初始化的开始时间段
–health-timeout允许一次检查运行的最长时间(ms | s | m | h)
–host加添加或更新自定义主机到IP映射(主机:IP)
–host-RM删除自定义的主机到IP映射(主机:IP)
–hostname容器主机名
–image服务图片标签
–label-add添加或更新服务标签
–label-RM用钥匙去除标签
–limit-cpu限制cpu
–limit-memory0限制记忆
–log-driver记录驱动程序的服务
–log-OPT记录驱动程序选项
–mount-add添加或更新服务上的装载
–mount-RM通过目标路径移除一个安装
–network加添加一个网络
–network-RM删除网络
–no-healthcheck禁用任何容器指定的HEALTHCHECK
–no-resolve-image不要查询注册表来解析图像摘要和支持的平台
–placement-PREF-ADD添加展示位置首选项
–placement-PREF-RM删除展示位置偏好设置
–publish相加添加或更新已发布的端口
–publish-RM通过目标端口删除发布的端口
–quiet,-q抑制进度输出
–read-only将容器的根文件系统挂载为只读
–replicas任务数量
–reserve-cpu预留cpu
–reserve-memory0保留内存
–restart-condition条件满足时重新启动(“none”|“on-failure”|“any”)
–restart-delay重启尝试之间的延迟(ns | us | ms | s | m | h)
–restart-max-attempts放弃前的最大重启次数
–restart-window用于评估重新启动策略的窗口(ns | us | ms | s | m | h)
–rollback回退到先前的规范
–rollback-delay0任务回滚之间的延迟(ns | us | ms | s | m | h)
–rollback-failure-action回滚失败的操作(“暂停”|“继续”)
–rollback-max-failure-ratio0在回滚期间容忍的失败率
–rollback-monitor0每个任务回滚后监视失败的持续时间(ns | us | ms | s | m | h)
–rollback-order回滚顺序(“start-first”|“stop-first”)
–rollback-parallelism0同时回滚的任务的最大数量(0一次全部回滚)
–secret-add添加或更新服务的秘密
–secret-RM去掉一个秘密
–stop-grace-period强制杀死一个容器之前的等待时间(ns | us | ms | s | m | h)
–stop-signal停止容器的信号
–tty, -t分配一个伪TTY
–update-delay0更新之间的延迟(ns | us | ms | s | m | h)
–update-failure-action更新失败的操作(“暂停”|“继续”|“回滚”)
–update-max-failure-ratio0更新期间容错的失败率
–update-monitor0(ns | us | ms | s | m | h)每个任务更新后的持续时间
–update-order更新顺序(“start-first”|“stop-first”)
–update-parallelism0同时更新的最大任务数(0个一次全部更新)
–user,-u用户名或UID(格式:<名称| uid>:<组| gid>)
–with-registry-auth向注册代理发送注册表认证详细信息
–workdir,-w容器内的工作目录
# 为 Nginx01 创建 10 个副本
docker service update --replicas 10 Nginx01 
# 或 使用 scale 命令
docker service scale Nginx01=10

移除服务

docker service rm Nginx01

Docker Compose与Dockerfile-哪个更好?

Docker Compose与Dockerfile-哪个更好?

我一直在阅读和学习有关Docker的知识,并试图正确选择要使用的Django设置。到目前为止,有:

Docker
Compose或Dockerfile

我了解在Dockerfiles中使用了DockerCompose,但是我不确定是否将所有内容放入一个大的Dockerfile中并用多个FROM命令处理不同的映像是否是一个好习惯?

我想使用几个不同的图像,包括:

uwsginginxpostgresredisrabbitmqcelery with cron

请提供关于使用 Docker 设置此类环境的最佳实践的建议。

如果有帮助,我在Mac上,请使用boot2docker。

我遇到的一些问题:

  1. Docker Compose与Python3不兼容
  2. 我想对我的项目进行容器化,所以如果一个大的Dockerfile不理想,那么我觉得我需要使用Docker Compose分解它
  3. 我可以使项目Py2和Py3兼容,所以倾向于django-compose

答案1

小编典典

答案都不是。

如果将build命令添加到项目的,则Docker Compose(在本文中称为compose)将使用Dockerfile docker-compose.yml

您的Docker工作流程应该是为要创建的Dockerfile每个映像构建合适的映像,然后使用compose通过build命令组装映像。

您可以使用等等的build/path/to/dockerfiles/blah位置来指定各个Dockerfile的路径。/path/to/dockerfiles/blah``Dockerfile

Docker Compose比Docker Swarm和Docker Stack有什么好处?

Docker Compose比Docker Swarm和Docker Stack有什么好处?

从我读到的内容来看,似乎Docker-Compose是一个在单个主机上创建多个容器的工具,而Docker Swarm是一个可以完全相同但具有更多控制权的工具,并且在Docker Stack的帮助下可以在多个主机上完成.我浏览了教程,也遇到了这个帖子:

docker-compose.yml vs docker-stack.yml what difference?

而且我得出的结论是,当你可以将Docker Swarm与Docker Stack一起使用时,没有理由使用Docker-Compose.他们甚至可以使用相同的docker-compose.yml.

似乎Docker-compose出现在swarm和堆栈之前,并且可能是swarm堆栈的新解决方案使得compose过时,但它仍然是遗留原因.这个想法是否正确?如果没有,在构建开发或生产环境方面,Docker-Compose对Docker Swarm和Docker Stack有什么好处?

最佳答案

It seems that Docker-compose came before the swarm and stack and maybe the new solution of swarm + stack makes compose obsolete,but it still remains for legacy reasons. Is this thinking correct?

简而言之,是的. Compose在所有Swarm之前出现(它起源于名为fig的第三方实用程序).更糟糕的是,甚至还有两个不同的Swarms,旧的Swarm(一个是单独的工具)和Swarm模式(这些日子内置于docker二进制文件中).

它似乎正在演变为内置于Docker中的服务和部署概念.但我猜想Docker Compose和Swarm Mode部署的东西会并存一段时间.

知道Docker Compose基础是一个名为libcompose(https://github.com/docker/libcompose)的库是有益的,其他第三方实用程序使用它来支持用于部署的docker-compose.yml文件格式(参见Rancher和rancher-compose作为示例) .我想他们会努力继续支持libcompose.

我不清楚Docker Swarm部署的东西是否实际上使用了libcompose.在我粗略的搜索中,Swarm模式似乎没有实现libcompose并且做了自己的事情.我不确定这与Docker Compose和libcompose的未来有何关系.你认为合适的解释……

关于将docker-compose与docker swarm一起使用docker compose和swarm的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Centos7安装docker与docker-compose、Docker Compose 和 Docker Swarm 和 Docker Service、Docker Compose与Dockerfile-哪个更好?、Docker Compose比Docker Swarm和Docker Stack有什么好处?的相关信息,请在本站寻找。

本文标签: