1. 关于docker-compose
Docker Compose是一个用于定义和运行多个Docker应用程序的工具。通过使用YAML文件来配置应用程序的服务,使用单个命令可以从配置中创建并启动所有服务。
通过命令可以实现
- 启动、停止和重建服务。
- 查看正在运行的服务状态。
- 通过流输出正在运行的服务日志。
- 对某个服务执行命令。
2. 安装docker-compose
docker for window默认已经安装过了docker compose。
centos7下安装docker-compose
二进制包地址:https://github.com/docker/compose/releases
#下载最新稳定版本 v1.29.2
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#将可执行权限应用于二进制文件
sudo chmod +x /usr/local/bin/docker-compose
#创建软链
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#测试是否安装成功
docker-compose --version
3. 常用命令
#执行compose 启动命令
docker-compose up -d
#执行compose 销毁命令,停止容器,删除容器
docker-compose down
# 查看当前应用下启动的容器
docker-compse ps
# 停止所有容器,但不删除
docker-compse stop
# 命令帮助
docker-compose -h
更详细的参考官网文档:https://docs.docker.com/compose/reference/
4. springboot+mysql容器化示例
以下栗子为一个普通springboot应用使用mysql数据库。首先生成/pull两个镜像
- mysql:latest
- 12.78.18.15:5000/fabric-docker:1.0-SNAPSHOT
然后定义2个服务(应用database+数据库webapi)
具体说明参考注释,docker-compose.yml内容如下
#版本号,建议用3兼容最新版的docker引擎
version: '3'
#所有的服务节点
services:
#数据库服务
database:
#镜像名称
image: mysql:latest
#容器名称
container_name: mysql
#端口号 server port:container port
ports:
- 3307:3306
volumes:
# 引用定义好的volume
- mysql-data:/var/lib/mysql
# 参数,相当于docker run -e
environment:
- MYSQL_ROOT_PASSWORD=123456
#应用服务
web-api:
image: 12.78.18.15:5000/fabric-docker:1.0-SNAPSHOT
container_name: web-api
# 依赖数据库,先启动数据库
depends_on:
- database
ports:
- 8082:8082
#其他服务的别名,在本服务中可以用别名
links:
- database:db
volumes:
- /etc/localtime:/etc/localtime
- /mydata/app/mall-tiny-docker-compose/logs:/var/logs
# 公共卷定义
volumes:
mysql-data:
# external true:表示要提前在外部创建好volume,false: 则volume不用新创建,dockercompose up时候会自动在应用内部创建,卷名称一般会加上前缀docker_
external: true
docker-compose
网友评论