docker-compose
安装
参照官方最新文档:https://docs.docker.com/compose/install/
手动安装下载地址: https://github.com/docker/compose/releases
部署服务
docker-compost.yml示例:
version:'1'
services:
comsume:
image:tomcat8/jdk8:v8
ports:
- '8081:8080'
volumes:
- /home/webadmin/consume/ROOT/:/opt/tomcat/webapps/ROOT
provide:
image:tomcat8/jdk8:v8
ports:
- '8091:8080'
volumes:
- /home/webadmin/provide/ROOT/:/opt/tomcat/webapps/ROOT
webapp:
build: ./dir #从./dir目录中查找Dockerfile进行构建镜像
image: webapp:tag #指定构建镜像的名称和标签
web-html:
build: #构建镜像
context: ./dir #构建文件路径
dockerfile: Dockerfile-name #如果构建文件名不是默认的Dockerfile,需要在这里指定
args: #args参数
buildno: 1服务控制
docker-compose -f test.yml up -d #-f 指定文件,-d后台运行
docker-compose -f test.yml down #-f 指定文件更新服务
如果镜像标签是latest,则可以使用下面这种方法。如果有频繁更新的需求,还可以将如下命令用&&连接起来,写到定时任务中进行定期更新
# 更新所用的镜像,
docker-compose -f test.yml pull
# 更新完镜像后重新部署
docker-compose -f test.yml up -d如果镜像标签不是latest,则只能手动拉取最新镜像,然后修改.yml中的镜像版本标签,然后再执行
docker-compose -f test.yml up -d执行命令
version: '2.1'
services:
server_name:
container_name: container_name
image: ''
restart: always
volumes:
- /dtata/ossimport/config:/usr/local/ossimport-2.3.4/conf
- /dtata/ossimport/python.py:/tmp/python.py
command: python3 python.py
# command:
# - /bin/bash
# - -c
# - |
# tail -f file.log常用参数
restart 重启策略。 注:swarm 集群模式,请改用 restart_policy。
no 任何情况下都不重启
always 总是重启
on-failure 非正常退出后重启
unless-stopped 总是重启,除非是正常停止的。
stop_grace_period 指定在容器无法处理 SIGTERM (或者任何 stop_signal 的信号),等待多久后发送 SIGKILL 信号关闭容器。默认等待10秒。
不同目录的项目会创建不同的网络
如果在a目录启动了一个Docker Compose项目,然后在b目录启动了另外一个Docker Compose项目,在没有配置相同网络的情况下,这两个项目将会无法互相访问。
为了避免这种情况,可以将项目放在同一目录下或者每个项目的docker-compose.yaml文件中配置相同网络,如下所示:
services:
web:
image: nginx
# 指定网络
networks:
- shared_network
# 网络配置
networks:
shared_network:
external: true
为了确保这个网络存在,可以先创建该网络,再启动Docker Compose项目。
docker network create shared_network最后更新于