我创建 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 的意义,但我对它带来的东西有点困惑。