美文网首页
docker-compose使用

docker-compose使用

作者: 愤愤的有痣青年 | 来源:发表于2024-07-25 14:55 被阅读0次

基础命令

  • 启动
    docker-compose up
  • 只加载指定容器
    docker-compose up --build xxxx
  • 后台启动
    docker-compose up -d
  • 停止
    docker-compose stop
  • 停止并删除容器
    docker-compose down

常用的配置参数说明

参数名 类型 说明
services 字典 key为服务名称
networks 字典 key为网络名称

services

服务名

参数名 类型 说明
image str 镜像名称,如果有此镜像,则直接使用,否则如果有build,则构建,没有则拉取
ports list 暴露的端口,例如"0.0.0.0:30000:6379"
networks list 网络名
restart str 重启方式,no不自动重启 always为自动启动 on-failure非正常退出时重启
logging 字典 日志配置
logging.driver 日志方案 默认为json-file
logging.options 对象 针对不同的日志方案有不同的取值,对于json-file,可以取{"max-size": "50m","max-file": "10" }
container_name str 容器名
volumes list 挂载路径,如"$HOME/DataSnaptoBook:/var/lib/mysql"
environment 字典 环境变量,如MYSQL_ROOT_PASSWORD: xxxx
build 字典 镜像构建参数
build.context str 构建路径
build.dockerfile str dockerfile文件名
env_file list 环境变量配置文件路径,如.env,内部格式为NAME=test

networks

网络名

参数名 类型 说明
driver str 网络名称

示例配置文件

version: '3'
services:
  app-redis:
    image: "redis:latest"
    ports:
      - "0.0.0.0:30000:6379"
    networks:
      - app-network
    restart: always
    logging:
      driver: "json-file"
      options:
        max-size: "50m"
        max-file: "10"
    container_name: app-redis
  app-database:
    container_name: app-database
    image: "mysql:8.0.20"
    ports:
      - "0.0.0.0:30001:3306"
    volumes:
      - "$HOME/Dataapp:/var/lib/mysql"
    environment:
      MYSQL_ROOT_PASSWORD: SDJHGFHJS
      MYSQL_DATABASE: app_db
      MYSQL_USER: app-dbu
      MYSQL_PASSWORD: SGDHJFGS
    networks:
      - app-network
    restart: always
    logging:
      driver: "json-file"
      options:
        max-size: "50m"
        max-file: "10"
  app-server:
    container_name: app-server
    build:
      context: .
      dockerfile: Dockerfile
    image: app:2407261
    ports:
      - "0.0.0.0:30002:80"
    networks:
      - app-network
    restart: always
    logging:
      driver: "json-file"
      options:
        max-size: "50m"
        max-file: "10"
    environment:
      RUN_TYPE: API
      ENV_TYPE: produce
    volumes:
      - "$HOME/appServers:/home/appServers"
    env_file:
      - "$HOME/Sensitive/envs.conf"
  app-celery:
    container_name: app-celery
    build:
      context: .
      dockerfile: Dockerfile
    image: app:2407261
    networks:
      - app-network
    restart: always
    logging:
      driver: "json-file"
      options:
        max-size: "50m"
        max-file: "10"
    environment:
      RUN_TYPE: CELERY
      ENV_TYPE: produce
    volumes:
      - "$HOME/appServers:/home/appServers"
    env_file:
      - "$HOME/Sensitive/envs.conf"
networks:
  app-network:
    driver: bridge

相关文章

网友评论

      本文标题:docker-compose使用

      本文链接:https://www.haomeiwen.com/subject/zsqmhjtx.html