一、简介
Docker Compose
是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建、启动和停止。使用步骤:
1. 利用 Dockerfile 定义运行环境镜像 2. 使用 docker-compose.yml 家义组成应用的各服务 3. 运行 docker-compose up 启动应用
二、安装与使用
- 除了在
Linux
上安装docker
时,不会自动安装docker-compose
,其他平台(window
、mac
)都会自动安装好docker-compose
。 - 安装好
docker
后,可以通过下面命令检查是否顺带安装好了docker-compose
,没有安装好,可以按 官网的方式进行安装,然后检查是否安装成功。
$ docker-compose -v
- 创建一个工作目录
$ mkdir ~/docker-compose $ cd ~/docker-compose
- 编写
docker-compose.yml
文件,文件名固定写法。在yml
语法中-
表示数组写法,可以多个。
// 版本 version: '1' // 服务 services: // 服务名称(也就是容器名称) nginx: // 镜像 image: nginx:2.0 ports: // 端口映射 - 80:80 // 关联的容器(也就是可以访问的容器) links: // 关联容器名称 - app // 目录映射 volumes: - ./nginx/conf.d:/etc/nginx/conf.d - ....可以多个 // 服务名称(也就是容器名称) app: image: app // 对外暴露的端口 expose: - "8080"
- 创建
./nginx/conf.d
目录,然后建一个nginx
配置文件
# 创建配置文件夹 $ mkdir -p ./nginx/conf.d # 进入配置文件夹 $ cd ./nginx/conf.d # 新建 nginx 配置文件,名字无所谓,主要是后缀 $ vim mynginx.conf
mynginx.conf
内容
server { listen: 80; access_log off; location / { # app 位置就是 links 里面存在容器名称加上容器暴露的端口 proxy_pass http://app:8080 } }
- 然后回到
~/docker-compose
目录启动容器,启动后通过http://IP地址
访问
$ cd ~/docker-compose # 启动容器 $ docker-compose up
三、常用指令
- 启动和停止服务
# 启动项目中的服务 $ docker-compose up # 启动项目中的服务并设置组名称(默认使用当前文件夹名称,单个容器使用的是 --name 设置名称) # 组名称也就是项目名称 -p;--project xxx $ docker-compose -p myproject up # 启动服务并在后台运行 $ docker-compose up -d # 停止服务 $ docker-compose stop
- 构建和重构服务
# 构建服务的镜像 $ docker-compose build # 如果服务镜像不存在,则构建镜像并启动服务 $ docker-compose up –build # 重构服务 $ docker-compose up –force-recreate
- 查看服务信息
# 查看项目中所有服务的信息 $ docker-compose ps # 查看容器的日志 $ docker-compose logs # 在服务镜像的容器中执行命令 $ docker-compose exec service_name command
- 删除服务
# 停止所有容器后,删除所有服务容器 $ docker-compose down # 停止所有容器后,删除所有服务容器与对应的数据卷 $ docker-compose down -v # 删除所有停止后的服务容器 $ docker-compose rm --stop