关于怎么用docker-compose部署Spring Cloud应用,这个就不多说了,在网上能找的相关的资料,docker相关的中文文档:https://yeasy.gitbook.io/docker_practice/compose/commands
这里主要记录一下遇到的问题。
1、如何启动项目指定多个Compose模板文件?
多次使用-f参数指定Compose模板文件:
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up
如果有key-value类型的同名参数,最后一个模板文件的参数有效;如果有数组类型同名参数,则是多个数组的并集。
2、修改Compose模板文件,使用UP命令有效吗?
有。如果模版文件有变化,则会重建容器,效果相当于:
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --force-recreate
3、修改了某个服务的代码,要怎么样更新容器?
注意使用 --force-recreate参数只能重建容器,对应镜像的代码还是旧的。我们应该重建的是镜像,重建镜像有下面几种方法:
# 重建项目下面服务的所有镜像
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --build
# 重建项目下面某服务的镜像
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --no-deps --build <service_name>
# 重建项目下面某服务的镜像
docker-compose -f docker-compose.yml -f docker-compose.dev.yml build <service_name>
4、如何重启(stop或start)某个服务,但是不希望全部重启?
不更新容器:
docker-compose restart <service_name>
会更新容器:
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --no-deps <service_name>
5、删除服务
停止服务并强制删除:
docker-compose rm -f -s <service_name>
6、删除项目(慎用)
此命令将会停止 up 命令所启动的容器,并移除:
docker-compose down
7、清除清理无用文件
查看磁盘空间:
docker system df
清理无用文件(慎用):
docker system prune
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all dangling build cache