我是docker-compose
的新手,在阅读了文档之后,我仍然会想到一些不清楚的事情。
到目前为止,当我使用docker时,我将构建保存在以下目录树中:
builds:
Service A:
Dockerfile
ServiceA.jar
Service B:
Dockerfile
ServiceB.jar
因此,当我想要运行所有内容时,我会使用一些shell脚本,直到我阅读docker-compose
。
我看到有两种创建和运行服务的方式(以复制文件的方式)
build: path/to/my/build/directory
并将其与之关联
volumes:
所以它可以看到实时代码并刷新服务image:
(例如java:8
),然后使用上述volumes:
我想了解的是使用docker-compose
的最佳做法是什么
在我深入研究它之前,我应该为每个服务创建指定image
(并替换为FROM
内的Dockerfile
),还是应该指定构建文件夹和卷的路径以保持生命代码更改,volumes
在使用image
代码
谢谢!
答案 0 :(得分:2)
在Docker中,您只需将服务作为容器运行,您就可以将每个服务的状态放在卷中。这意味着你:
docker build
或docker-compose构建部分构建图像。在您的示例中,这意味着:
docker-compose up -d
docker-compose up --build --force-recreate -d
替换整个堆栈即可。此命令将重建所有映像并替换容器。 为什么不将二进制文件放在卷中: