1.安装

pip install docker-compose

2.docker-compose语法

veseion: "3.8"
services: '容器'
  servicename1: '服务器名称'
    image: '镜像名称'
    command: '可选,默认覆盖镜像里的CMD命令'
    environment: '可选,相当于docker run 里的-env'
    volumes: '可选,相当于 docker run 里的 -v'
    networks: '可选,相当于 docker run 里 --network'
    ports: '#可选,相当于 docker run里的-p'
  servicename2:
    build:
      context: '指定Dockerfile文件所在的目录'
      docekerfile: 'Dockerfile文件名'
      args:
        参数名: 参数值
    container_name: '默认将会使用 项目名称_服务名称_序号 这样的格式,注意::指定容器名称后,该服务将无法进行扩展(scale),因为Docker不允许多个容器具有相同的名称'
    depends_on:
      - servicename1
    env_file: .env
    environment:
      RACK_ENV: development
    expose:
      - "3000"
      - "8000"
    network_mode: "bridge"
    networks:
      some-network:
       ipam :
       		drive: default
       		config:
       			- sububet "'172.16.0.0.1/16'"
      other-network:
    ports:
      - "3000"
    volumes:
      - /var/lib/mysql
    restart: always
    security_opt:
      - seccomp:unconfined #指定容器模板标签(label)机制的默认属性(用户、角色、类型、级别等)
    logging: #日志选项
      driver: "json-file"
      options:
        max-size: "500m"


  volumes: '可选 相当于docker volumes create'
  networks: '可选 相当于 docker network create'
  
  # HEALCHECK --interval=30s --timeout=3s CMD curl -f http://localhost:5000 || exit 1
  healthcheck: # 容器的健康检查
	test: ["CMD","curl","-f","http://localhost"]
	interval: 1m30s
	timeout: 10s
	retries: 3	

3.docker-compose命令

  • 检查docker-compose.yml文件格式是否正确

    $ docker-compose config 
    
  • 默认使用docker-compose.yml构建镜像

    $ docker-compose build --no-cache  -f docker-compose1.yml -p project
    
    • –no-cache:不带缓存的构建
    • -f 指定构建的文件
    • -p 指定项目名称,默认将使用所在目录名称作为项目名
  • 列出Compose文件构建的镜像

    $ docker-compose images 
    
  • 构建镜像

    $ docker-compose bulid
    
  • 启动/暂停/重启所有编排容器服务

    $ docker-compose up -d        #启动所有编排容器服务
    $ docker-compose down         # 停止所有up命令启动的容器
    $ docker-compose restart web  # 重新启动停止服务的容器
    
  • 在指定服务器启动一个容器,并执行ping docker.com

    $ docker-compose  run 容器名称 ping 服务名称 
    $ docker-compose run -d --name 名称 -e key=val -u user名
    
  • 查看所有编排容器,包括已停止的容器

    $ docker-compose ps -a
    
  • 进入指定容器执行命令

    $ docker-compose exec nginx bash 
    $ docker-compose exec web python manage.py migrate --noinput
    
  • 查看web容器的实时日志

    $ docker-compose logs -f web
    
  • 暂停/恢复web容器

    $ docker-compose pause web
    $ docker-compose unpause web
    
  • 删除web容器,删除前必需停止stop web容器服务

    $ docker-compose rm web  
    
  • 查看各个服务容器内运行的进程

    $ docker-compose top   
    
  • 拉取服务所依赖的镜像

    $ docker-compose pull 
    
  • 水平扩展 scale

    $ docker-compose scale 容器1=3 容器2=2 #容器1启动3个,容器2启动2个
    
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐