我有一个docker-compose.yml
文件,其中声明了一些服务。
当我键入docker-compose up
时,它们全部开始。很棒。
现在,我只想修复em之一。通常,我会docker-compose down
来停止em的 ALL 。相反,我希望只是将我需要修复的一项服务...对其进行修复(构建/编译/等),然后启动该单个docker映像。
有没有一种方法可以代替此操作:
-docker-compose down
(所有服务停止)
-在我要更新的服务中构建/编译代码
-docker-compose up --build
(所有服务编译/构建/ ...出现问题:()
欢呼!
答案 0 :(得分:1)
您重新构建映像并执行docker-compose up
,它将自动检测到映像已更新并重新创建服务。在运行来自该映像的容器时,构建映像的缺点是它将留下一个无映像,因为docker不会删除该映像。您可以通过以下任一命令预先从该图像中删除容器,从而克服问题。
docker rm -vf <container-name>
docker rm -vr <container-id>
如果这样做不方便,您可以在之后删除none
张图片,
docker rmi <image-id>
此外,如果您悬挂了多张none
图像,则可以删除所有图像,
docker images -q --filter "dangling=true" | xargs docker rmi -f
答案 1 :(得分:1)
我们通常选择:
docker-compose stop servicename
docker-compose rm servicename
然后:
docker-compose up -d servicename