【Docker】Docker-Compose基础使用说明
Docker-Compose 是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。
·
1、Docker-Compose
Docker-Compose 是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。
官网文档
安装:[[Docker#2、docker-compose 安装 | 安装DockerCompose]]
# 安装
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
# 授权
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
# 测试
docker compose version
2、三个步骤
- 编写 Dockerfile 定义各个微服务应用构建出对应的镜像文件
- 使用 docker-compose.yml 定义一个完整业务单元,安排好整体应用中的各个容器业务
- 最后,执行 docker-compose up 命令来启动并运行整个应用程序,完成一键部署上线
3、常用命令
命令 | 描述 |
---|---|
docker-compose up | 命令聚合每个容器的输出,命令退出时,所有容器都将停止 |
docker-compose up -d | 在后台启动容器并使它们保持运行 |
docker-compose logs -f | 查看该容器的启动的日志打印(日志从头打印) |
docker logs -f container_id | 查看某一容器的启动的日志打印(日志从头打印) |
docker logs -f --tail 数量 container_id | 查看某一容器的启动的日志打印(查看最后n条日志打印) |
docker-compose stop | 停止compose服务 |
docker-compose restart | 重启compose服务 |
docker-compose kill | 杀掉 compose服务 |
docker-compose ps | 查看compose服务状态 |
docker-compose rm | 删除 compose 服务 |
docker-compose down | 停止并删除容器、网络、卷、镜像 |
docker-compose config | 检查配置 |
docker-compose config -q | 检查配置,有问题才输出 |
4、Compose 编排微服务
# docker-compose.yml
version: "3"
services:
microService:
image: WeiYi_docker:1.6
ports:
- "6001:6001"
volumes:
- /app/micorService:/data
networks:
- atguigu_net
depends_on:
- redis
- mysql
redis:
image: redis:6.0.8
ports:
- "6379:6379"
volumes:
- /app/redis/redis.conf:/etc/redis/redis.conf
- /app/redis/data:/data
networks:
- atguigu_net
command: redis-server /etc/redis/redis.conf
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: '123456'
MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
MYSQL_DATABASE: 'db2021'
MYSQL_USER: 'WeiYi'
MYSQL_PASSWORD: 'WeiYi0037'
ports:
- "3306:3306"
volumes:
- /app/mysql/db:/var/lib/mysql
- /app/mysql/conf/my.cnf:/etc/my.cnf
- /app/mysql/init:/docker-entrypoint-initdb.d
networks:
- atguigu_net
command: --default-authentication-plugin=mysql_native_password # 解决外部无法访问
networks:
atguigu_net:
# 检查配置是否正确
docker-compose config -q
# 开始构建
docker-compose up -d
5、监控平台 - CIG
# docker-compose.yml
version: '3.1' # 必须是3.0以上才能运行docker-compose
volumes:
grafana_data: {} # 实现了grafana数据的挂载
services: # 表示我们要启动的服务,即要docker run的内容,多个实例服务
influxdb:
image: tutum/influxdb:0.9
restart: always
environment:
- PRE_CREATE_DB=cadvisor # 预先创建一个数据库,创建一个数据库一样
ports:
- "8083:8083" # 对外是8083
- "8086:8086" # 内部即8086
volumes:
- ./data/influxdb:/data
cadvisor:
image: google/cadvisor
links:
- influxdb:influxsrv
command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086 # 这就是相当于mysql选择的那个驱动
restart: always
ports:
- "8080:8080"
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
grafana:
user: "104"
image: grafana/grafana
user: "104"
restart: always
links:
- influxdb:influxsrv
ports:
- "3000:3000"
volumes:
- grafana_data:/var/lib/grafana
environment:
- HTTP_USER=admin
- HTTP_PASS=admin
- INFLUXDB_HOST=influxsrv
- INFLUXDB_PORT=8086
- INFLUXDB_NAME=cadvisor
- INFLUXDB_USER=root
- INFLUXDB_PASS=root
更多推荐
已为社区贡献3条内容
所有评论(0)