目 录CONTENT

文章目录

Docker-Compose·基础

青云
2023-12-23 / 0 评论 / 0 点赞 / 64 阅读 / 4418 字
温馨提示:
本文最后更新于 2025-03-06,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

安装

安装docker-compose前必需先安装好docker。Docker-compose的下载和安装很简单,网上有很多教程,我就不再详述了。这里只记录下ubuntu系统下docker-compose的安装过程。

Step 1: 以ubuntu为例,下载docker-compose

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Step 2: 给予docker-compose可执行权限

sudo chmod +x /usr/local/bin/docker-compose

Step 3: 查看docker-compose版本

docker-compose --version

Docker-compose.yml 配置文件·基础

# 第一部分: Building(构建镜像)
web:
  # 使用当前目录下的Dockerfile
  build: .
  args: # 增加额外参数
    APP_HOME: app
  volumes: # 目录挂载
    - .:/code
  depends_on: # 依赖db和redis
    - db
    - redis
  
  # 使用定制化的Dockerfile,指定新目录相对路径和文件名
  build:
    context: ./dir 
    dockerfile: Dockerfile.dev
    container_name: app # 自定义容器名
  
  # 基于现有镜像构建
  image: ubuntu
  image: ubuntu:14.04
  image: remote-registry:4000/postgresql
  image: bcbc65fd
  
# 第二部分: Ports(端口)
  ports: # 指定端口映射,HOST:Container
    - "6379" # 指定容器的端口6379,宿主机会随机映射端口
    - "8080:80"  # 宿主机端口8080,对应容器80

  # 暴露端口给-link或处于同一网络的容器,不暴露给宿主机。
  expose: ["3000"]
  
# 第三部分: Environment Variables(环境变量)
  environment:
    MODE: development
    SHOW: 'true'
  
  # 等同于
  environment:
    - MODE=development
    - SHOW: 'true'
  
  # 使用环境变量.env文件
  env_file: .env
  env_file:
    - ./common.env
    - ./apps/web.env

# 第四部分:commands (命令)
  # 容器启动后默认执行命令
  command: bundle exec thin -p 3000
  command: ['/bin/bash/', 'start.sh']
 
  # 容器启动后程序入口
  entrypoint: /code/entrypoint.sh
  
# 第五部分:Networks(网络)
  networks: # 使用bridge驱动创建名为frontend的网络
    frontend:
      driver: bridge
  
    networks: # 使用创建的网络进行通信
      - frontend
  
    # 加入已经存在的外部网络
    networks: 
      default:
        external:
          name: my-pre-existing-network

# 第六部分:Volumes(数据卷)
  volumes: # 创建名为postgres_data的数据卷
    postgres_data:
  
    db:
      image: postgres:latest
      volumes:
        - postgres_data:/var/lib/postgresql/data
  
# 第七部分:External Links(外部链接)
# 目的是让Compose能够连接那些不在docker-compose.yml中定义的单独运行容器
  services:
    web:
      external_links:
        - redis_1
        - project_db_1:mysql

基础

运行

docker-compose up -d # 会自动查找当前目录下的 docker-compose.yml/docker-compose.yaml 配置文件

实时查看日志

docker-compose logs -f

重新创建容器实现修改

docker-compose up --force-recreate -d

其他

Docker

Docker-Compose进阶

0

评论区