docker-compose入门

安装

  • 方式一 sudo pip install docker-compose
  • 方式二(linux)
# 下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 修改权限 
sudo chmod +x /usr/local/bin/docker-compose

常用命令

  • docker-compose down 停止删除资源(容器,网络,数据卷等)
  • docker-compose up [-d] 创建并且运行容器
  • docker-compose logs [-tf] [SERVICE] 查看日志
  • docker-compose ps [SERVICE] 显示service对应的容器列表
  • docker-compose pull [SERVICE] 获取服务对应的镜像
  • docker-compose build 构建或者重建services
  • docker-compose exec SERVICE COMMAND 运行的service中执行一个命令
  • docker-compose rm [-s] [SERVICE] 删除停止的容器
  • docker-compose run SERVEICE [COMMAND] 容器启动时,执行一个命令,该命令会覆盖service配置中定义的命令

配置文件说明(compose file)

  • 基本格式
version: "3.9"

services:
  proxy:
    build: ./proxy
    networks:
      - frontend
  app:
    build: ./app
    depends_on:
      - db
    volumes:
      - ./static:/static
    env_file: .env
    ports:
      - "80:80"
    environment:
      SERVER_NAME: a.com.cn
    networks:
      - frontend
      - backend
  db:
    image: postgres
    networks:
      - backend

networks:
  frontend:
    # Use a custom driver
    driver: custom-driver-1
  backend:
    # Use a custom driver which takes special options
    driver: custom-driver-2
  • network说明
    连接外部容器(非compose 管理的容器),创建一个外部网络docker network create mysql
    然后将外部容器连接至该网络docker network connect mysql db(db是外部容器名),compose file连接到该网络,配置文件如下:
 services:
   web:
     # ...
     networks:
       - db
 networks:
   db:
     external:
       name: mysql

参考