Doker:最新docker-compose操作

发布时间 2023-12-01 15:35:16作者: 怒吼的萝卜

1. docker compose说明

目前docker新版本已经集成docker compose工具,直接使用"docker compose"命令就可以操作

2. docker-compose.yml文件说明

docker compose命令的运行需要docker-compose.yml文件的支持,可以指定文件位置,也可以在文件同目录运行命令

docker-compose.yml 示例文件

version: "3.8"
networks:
  my_net:
    name: my_net
    ipam:
      config:
        - subnet: 172.19.8.0/24
services:
  mysql:
    container_name: sc-mysql
    image: mysql:8
    restart: always
    environment:
      TZ: Asia/Shanghaidoc        # 配置时间为上海时间
      MYSQL_ROOT_PASSWORD: sc@123456        # 配置mysql密码
      MYSQL_ROOT_HOST: '%'        # 设置用户开启远程连接
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "10"            # 设置日志文件个数
    ports:
      - 13306:3306
    networks:
      my_net:
        ipv4_address: 172.19.8.100
    command: [
      '--character-set-server=utf8mb4',    # 设置库的字符集
      '--collation-server=utf8mb4_general_ci',    # 默认排序方式
      '--default-authentication-plugin=mysql_native_password'    # 远程登录密码与用户设置的密码一致
    ]
    volumes:
      - /home/mysql/data:/var/lib/mysql    # 挂载mysql数据
      - /home/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf    # 挂载mysql配置文件

  system:
    container_name: base-system
    build:
      context: /home/compose/service/
      dockerfile: DockerFile-system
    restart: always
    ports:
      - 9206:9206
    networks:
      my_net:
        ipv4_address: 172.19.8.206

version

  compose文件格式版本,主要有3个版本(1.X、2.X、3.X)

networks

  配置自定义网段,配置之前需要查看docker当前网段有那些,不能重复配置

networks : my_net

  自定义网段名称,用于后续容器配置网段

networks : name

  指定自定义网段名称,用于后续容器配置网段

networks : ipam : config : - subnet

   指定网段

services

  services下面就是需要构建和启动的镜像服务

services : 自定义名称

  自定义名称mysql,用于compose管理服务的名称,不是容器名称;每个服务第一行都要有名称

services : 自定义名称 : container_name

  自定义容器名称,用于docker容器管理的自定义名称

services : 自定义名称 : image

  指定镜像创建并启动容器,每个服务运行方式只能通过image与build二选一

services : 自定义名称 : build

  通过Dockerfile文件构建镜像并启动容器,每个服务运行方式只能通过image与build二选一

services : 自定义名称 : build : context

  指定Dockerfile文件的路径,是目录路径不是文件路径

services : 自定义名称 : build : dockerfile

  指定Dockerfile文件名称,与上面context一起配置,用于查找Dockerfile文件地址

services : 自定义名称 : restart

  配置容器自启,restart: always

services : 自定义名称 : environment

  添加环境变量,通过 - 可以设置多个值

services : 自定义名称 : ports

  端口映射,通过 - 可以设置多个映射端口,- 2020:2020/tcp - 3425:3425/udp

services : 自定义名称 : networks

  配置当前容器服务的ip

services : 自定义名称 : networks : 网段名 : ipv4_address

  配置具体网段内的固定ip

services : 自定义名称 : volumes

  配置服务文件与宿主机挂载映射

services : 自定义名称 : command

  配置容器启动后默认执行的命令

3. docker compose常用命令

## 构建镜像并启动文件内配置的所有容器
docker compose up

## 构建镜像并启动所有容器,后台运行
docker compose up -d

## 停止并删除所有容器
docker compose down

## 重启所有服务
docker compose restart

## 启动服务
docker compose start

## 停止服务
docker compose stop

## 展示当前docker compose编排过并运行的所有容器(在docker-compose.yml文件同目录下运行)
docker compose ps

## 检查docker-compose.yml文件
docker compose config

## 检查docker-compose.yml文件,有问题就输出
docker compose config -q

 

文章转载至:https://blog.csdn.net/pcxiaoke/article/details/130977715