单独启动docker-compose的其中一个容器
(草稿,细节待完善)
我有一个 docker-compose.yml 文件,其中包含多个容器:redis,postgres,mysql,worker
在的工作过程中,我经常需要重新启动它才能更新。有没有什么好的方法来重新启动一个容器(例如 worker )而不重新启动其他容器?
解决方案这很简单:使用命令:
docker-compose restart worker
您可以设置等待停止的时间,然后再杀死容器(以秒为单位)
docker-compose restart -t 30 worker
步骤:
另外还有一种情况就是,本地修改了代码,需要重新打包发布,但是又不想全部docker-compose停止再启动,那么就可以单独修改其中一个。
1、首先通过 docker ps 查询已启动的容器(docker ps -a 查询所有容器,包括未启动的)
命令 docker container ls -a 也一样。
2、将要更新的容器停止docker-compose stop worker (docker-compose stop 是停止yaml包含的所有容器)
3、将第二步已停止的容器删除 docker container rm c2cbf59d4e3c (c2cbf59d4e3c是worker的容器id)
4、查询所有的镜像 docker images
5、备份镜像,防止意外出错可恢复。docker save worker -o /home/bak/worker-bak.tar
6、删除镜像 docker rmi worker
7、将打包好的更新的jar文件按照docker-compose的描述地址放好,再根据文件编译新的镜像 docker build . -f Dockerfile-Worker -t worker
8、启动docker-compose up -d worker
9、重启docker-compose restart worker
Dockerfile-Worker
FROM jdk1.8
WORKDIR /app
COPY ./targ
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
