Docker Compose
Docker Compose是一个容器编排工具,用于定义和运行多个Docker容器应用的工具。使用Compose可以用yaml文件来配置应用服务,一个命令就可以部署所有服务。
安装Docker Compose
使用 uname -a 查看系统架构
x86架构
arm架构
x86架构安装
//下载Docker Compose
//文件并不一定要下载到/usr/local/bin目录,主要是看目录是否在环境变量中,如果不在环境变量中那么docker-compose文件就只有在同一文件夹下才能访问
//查看环境变量的设置:echo $PATH
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.28.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 version 1.24.0, build 0aa59064
arm架构安装
下载地址:https://github.com/docker/compose/releases
找到docker-compose-linux-aarch64 点击下载
下载下来的文件名为 docker-compose-linux-aarch64 重命名为 docker-compose,然后上传到服务器 /usr/local/bin目录下
//修改该文件的权限为可执行
chmod +x /usr/local/bin/docker-compose
//查看是否已经安装成功
docker-compose --version
//出现以下内容代表成功 Docker Compose version v2.4.1
使用Docker Compose的步骤
- 使用Dockerfile(把jar包和dockerfile上传到服务器然后打包为镜像)定义应用程序环境,或者构建好需要的docker镜像(通过maven插件配合Docker Registry直接在服务器打包为镜像);
- 使用docker-compose.yml定义需要部署的应用程序服务,以便执行脚本一次性部署;
- 使用docker-compose up命令将所有应用服务一次性部署起来
docker-compose.yml常用命令
# 1.指定运行的镜像名称 运行的是mysql5.7的镜像
image: mysql:5.7
# 2.配置容器名称 容器名称为mysql
container_name: mysql
# 3.指定宿主机和容器的端口映射(HOST:CONTAINER) 将宿主机的3306端口映射到容器的3306端口
ports:
- 3306:3306
# 4.将宿主机的文件或目录挂载到容器中(HOST:CONTAINER) 将外部文件挂载到myql容器中
volumes:
- /mydata/mysql/log:/var/log/mysql
- /mydata/mysql/data:/var/lib/mysql
- /mydata/mysql/conf:/etc/mysql
# 5.配置环境变量 设置mysqlroot帐号密码的环境变量
environment:
- MYSQL_ROOT_PASSWORD=root
# 6.连接其他容器的服务(SERVICE:ALIAS) 可以以database为域名访问服务名称为db的容器
links:
- db:database
Docker Compose常用命令
# 1.构建、创建、启动相关(镜像)容器 -d表示在后台运行
docker-compose up -d
# 2.指定使用的Compose模板文件,默认为docker-compose.yml,可以多次指定
docker-compose -f docker-compose.yml up -d
# 3.列出所有的容器
docker-compose ps
# 4.停止所有的容器
docker-compose stop
# 5.启动所有的容器
docker-compose start
# 6.重启项目中的容器
docker-compose restart
# 7.删除容器(停止中的)
docker-compose rm
# 8.停用移除所有容器以及网络相关
docker-compose down
使用Docker Compose 部署应用
version: "2" #Docker Composer版本
services:
#默认的容器名称(有重复的会自动加后缀)
gateway-docker:
#镜像名称
image: gateway:1.0-SNAPSHOT
#映射端口
ports:
- "8890:8890"
#容器的名称(不加的话使用默认的容器名称)
container_name: "gateway-docker-two"
api-docker:
#镜像名称
image: api:1.0-SNAPSHOT
#映射端口
ports:
- "8889:8889"
启动所有镜像
#docker-compose.yml 文件下执行
docker-compose up -d