Docker Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止。
使用步骤:
- 利用 Dockerfile 定义运行环境镜像
- 使用 docker-compose.yml 定义组成应用的各服务
- 运行 docker-compose up 启动应用
一、安装Compose
在 https://github.com/docker/compose/releases 这个网址中可以下载,在相应的版本下会提示相应的安装命令
目前最新的稳定版是1.25.4,使用如下命令就可以安装
# 下载curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose# github太慢就用这个curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose# 设置文件可执行权限chmod +x /usr/local/bin/docker-compose# 查看版本信息docker-compose -version
二、卸载Docker Compose
二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose
三、使用Docker Compose编排容器
以nginx+springboot容器为例
- 创建docker-compose目录
mkdir ~/docker-compose
cd ~/docker-compose
- 编写 docker-compose.yml 文件
version: '3'
services:
# 服务名称,用户自定义
nginx:
# 依赖于哪一个镜像可以加版本号
image: nginx
# 端口映射
ports:
- 80:80
networks:
- "net1"
# 目录挂着 数据卷
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
# 容器名称
container_name: mynginx
# 服务名称,用户自定义
app:
image: myboot
# 暴露端口
expose:
- "8080"
ports:
- 8080:8080
networks:
- "net1"
networks:
# 网络命名为net1
net1:
driver: bridge
- 创建./nginx/conf.d目录
mkdir -p ./nginx/conf.d
- 在./nginx/conf.d目录下 编写nginx.conf文件 (伪代码)
server {
listen 80;
access_log off;
location / {
proxy_pass http://app:8080;
}
}
- 在~/docker-compose 目录下 使用docker-compose 启动容器 加-d表示后台启动
docker-compose up
docker-compose up -d
- 测试访问
http://ip:port
docker compose常用命令
#查看帮助
docker-compose -h
# -f 指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定。
docker-compose -f docker-compose.yml up -d
#启动所有容器,-d 将会在后台启动并运行所有的容器
docker-compose up -d
#停用移除所有容器以及网络相关
docker-compose down
#查看服务容器的输出
docker-compose logs
#列出项目中目前的所有容器
docker-compose ps
#构建(重新构建)项目中的服务容器。服务容器一旦构建后,将会带上一个标记名,例如对于 web 项目中的一个 db 容器,可能是 web_db。可以随时在项目目录下运行 docker-compose build 来重新构建服务
docker-compose build
#拉取服务依赖的镜像
docker-compose pull
#重启项目中的服务
docker-compose restart
#删除所有(停止状态的)服务容器。推荐先执行 docker-compose stop 命令来停止容器。
docker-compose rm
#在指定服务上执行一个命令。
docker-compose run ubuntu ping docker.com
#设置指定服务运行的容器个数。通过 service=num 的参数来设置数量
docker-compose scale web=3 db=2
#启动已经存在的服务容器。
docker-compose start
#停止已经处于运行状态的容器,但不删除它。通过 docker-compose start 可以再次启动这些容器。
docker-compose stop
