Doker:docker-compose安装与操作

docker-compose简介

  Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

compose下载地址

         https://dn-dao-github-mirror.daocloud.io/docker/compose/releases/

# Linux内下载 使用国内镜像源,速度较快
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

安装compose

# 赋予compose执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 创建软连接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# 测试运行
docker-compose --version

# 卸载
rm /usr/local/bin/docker-compose

docker与compose版本对应

docker-compose文件格式

version: "3.8"      # 代表使用docker-compose项目的版本号
networks:              # 设置组网网络
  study_net:          # 自定义网络名称
    ipam:
      config:
        - subnet: 172.19.8.0/24  # 设置组网网段 默认172.19.8.0 开始
services:       # 表示如下是服务
  web:            # 自定义服务名称
    container_name: base-web      # 配置容器名称
    build:      # 指定Dockerfile的上下文目录
      context: /home/docker/resource    # DockerFile文件路径
      dockerfile: webDockerfile           # DockerFile文件名称
    restart: always     # 容器自启
    ports:        # 宿主机 和 容器的端口映射
      - 5000:5000       # TCP端口映射
      - 27340:27340/udp # UDP端口映射
    network_mode: host  # 设置容器共用宿主机所有端口
    volumes:     # 挂载配置
      - /home/web/data:/usr/lib/data     # 宿主机 和 容器挂载目录的映射
    external_links:        # 赋予其他容器服务别名
      - base-mysql:db
    environment:          # 容器配置项
      spring.appllication.name: base-web
      redis.redisHost: 192.168.1.123
      # 通过别名调用其他容器服务
      spring.datasource.url: jdbc:mysql://db:3306/aomen?useUnicode=true&useSSL=true&characterEncoding=UTF-8&serverTimenzone=UTC
  mysql:
    container_name: base-mysql
    image: mysql:5.7.16    # 镜像名称版本
    restart: always 
    environment:
      TZ: Asia/Shanghaidoc        # 配置时间为上海时间
      MYSQL_ROOT_PASSWORD: 123456        # 配置mysql密码
      MYSQL_ROOT_HOST: '%'        # 设置用户开启远程连接
    logging:             # 设置Docker日志
      driver: "json-file"      # 日志记录为json格式 
      options:
        max-size: "100m"      # 设置日志大小
        max-file: "10"            # 设置日志文件个数
    ports:
      - 3306:3306
    networks:
      study_net:          # 引用自定义网络
        ipv4_address: 172.19.8.200    # 设置网段内IP
    command: [
      '--character-set-server=utf8mb4',    # 设置库的字符集
      '--collation-server=utf8mb4_general_ci',    # 默认排序方式
      '--default-authentication-plugin=mysql_native_password'    # 远程登录密码与用户设置的密码一致
    ]
    volumes:
      - /home/mysql/data:/var/lib/mysql    # 挂载mysql日志数据
     
  nacos:
    container_name: nacos
    image: nacos/nacos-server:latest
    restart: always 
    environment:
      PREFER_HOST_MODE: hostname
      MODE: standalone
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "10"
    ports:
      - 8848:8848
    networks:
      study_net:
        ipv4_address: 172.19.8.201

docker-compose操作命令

## 在docker-compose.yml同层级目录下运行命令

# 启动服务
docker-compose up

# 启动服务且不显示启动日志
docker-compose up -d

# 停止并清除容器
docker-compose down

# 停止容器
docker-compose stop

# 重启容器
docker-compose restart
posted @ 2022-06-14 13:56  怒吼的萝卜  阅读(347)  评论(0编辑  收藏  举报