Fab*_*ian 9 docker docker-compose docker-swarm
有没有人知道如何(如果可能的话)使用新的docker 1.12'群体模式'群对一个群体运行docker-compose命令?
我知道使用之前的'Docker Swarm',你可以通过更新DOCKER_HOST指向swarm master来直接对swarm运行docker-compose命令:
export DOCKER_HOST="tcp://123.123.123.123:3375"
然后简单地执行命令就好像你是针对单个Docker引擎实例运行命令一样.
或者这个功能docker-compose bundle
正在取代吗?
Fab*_*ian 10
我意识到我的问题含糊不清,实际上有两个部分.然而,最终,我能够找到两个问题的解决方案.
虽然你无法真正运行命令'对'一群人,但你可以在一个群docker service
的主节点上运行命令,以便在该群上运行服务.
您还可以配置Docker守护程序(作为swarm主节点的docker守护程序)侦听TCP端口,以便在外部公开Docker API.
是的,虽然这些功能目前是Docker"实验"功能的一部分.这意味着您必须下载/安装包含实验性功能的版本(检查github).
您基本上按照这些说明 https://github.com/docker/docker/blob/master/experimental/docker-stacks-and-bundles.md
从docker-compose.yml文件转到分布式应用程序包,然后转到应用程序堆栈(这是您的服务实际运行时).
$ docker-compose bundle
$ docker deploy [OPTIONS] STACK
在我的远程swarm管理器节点上,我使用以下选项启动了docker:
docker daemon -D -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 &
这会将Docker守护程序配置为侦听标准的docker socket unix:///var/run/docker.sock
AND localhost:2375
.
警告:为了简单起见,我在这里不启用TLS
在我的本地计算机上,我更新了docker主机环境变量以指向我的swarm主节点.
$ export DOCKER_HOST="tcp://XX.XX.XX.XX:2377"
(填充你的IP)
导航到docker-compose.yml文件的目录
从我的docker-compose.yml文件创建一个bundle文件.确保包含.dab
扩展名.
docker-compose bundle --fetch-digests -o myNewBundleFile.dab
从捆绑文件创建应用程序堆栈.请勿在.dab
此处指定扩展名.
$ docker deploy myNewBundleFile
现在我仍然遇到一些与网络相关的问题,但我已经成功地从我未经修改的docker-compose.yml文件中获取并运行了我的服务.我遇到的网络问题记录在这里:https://github.com/docker/docker/issues/23901
这不可能。Compose 使用容器来创建服务的客户端概念。Docker 1.12 Swarm 模式引入了新的服务器端服务概念。
您是对的,这docker-compose bundle; docker stack deploy
是在 Swarm 模式下运行 Compose 文件的方法。
归档时间: |
|
查看次数: |
3766 次 |
最近记录: |