单独启动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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部