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、三个步骤

  1. 编写 Dockerfile 定义各个微服务应用构建出对应的镜像文件
  2. 使用 docker-compose.yml 定义一个完整业务单元,安排好整体应用中的各个容器业务
  3. 最后,执行 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
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐