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