【发布时间】:2017-07-18 19:05:37
【问题描述】:
我创建 docker-compose.yml 的最初原因是利用 build: 和 depends-on: 等功能来创建一个文件,用于构建我的所有图像并在容器中运行它们。但是,我注意到版本
3 贬低了大多数这些功能,我很好奇为什么我会在构建 shellscript 时使用它。
这是我目前运行所有容器的 shellscript(我假设这是版本 3 docker-compose 文件将替换的内容,如果我要使用它):
echo "Creating docker network net1"
docker network create net1
echo "Running api as a container with port 5000 exposed on net1"
docker run --name api_cntr --net net1 -d -p 5000:5000 api_img
echo "Running redis service with port 6379 exposed on net1"
docker run --name message_service --net net1 -p 6379:6379 -d redis
echo "Running celery worker on net1"
docker run --name celery_worker1 --net net1 -d celery_worker_img
echo "Running flower HUD on net1 with port 5555 exposed"
docker run --name flower_hud --net net1 -d -p 5555:5555 flower_hud_img
docker-swarm 是否依赖于使用堆栈?如果是这样,那么我可以看到 docker-compose 和 stacks 的用途,但我似乎无法在网上找到答案。我会使用第 3 版,因为它与 swarm 兼容,与第 2 版不同,如果我读过的话。也许我完全错过了 docker-compose 的意义,但我对它带来的东西有点困惑。
【问题讨论】:
-
构建系统通常会构建图像并正确标记它们。如果我使用
docker run进行设置,那将是一团糟。有些命令可能会跨越几行。
标签: docker docker-compose dockerfile docker-swarm docker-stack