四时宝库

程序员的知识宝库

学习笔记-Docker Compose 项目

Compose 简介

Docker 官方项目,实现对 Docker 容器集群的快速编排

它允许用户通过一个单独的 docker-compose.yml 模板文件来定义一组相关联的应用容器为一个项目
Compose 中有两个重要的概念
    服务 Service:一个应用的容器,实际上可以包括若干运行相同镜像的容器实例
    项目 Project:由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义
Cmpose 的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理
Compose 项目由 Python 编写,实现上调用了 Docker 服务提供的 API 来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用 Compose 来进行编排管理

简单说,Docker Compose 就是Docker的批处理。通过一个YML文档,把多个Docker容器的相关定义信息汇编在一起,然后通过这个文件一次性运行。并且这个容器可以直接使用Dockerfile文件定义。

Compose 安装

#    官方网站
https://github.com/docker/compose
#    支持平台
Linux、macOS、Windows
Windows版 :包含在 Docker Desktop)
Linux版 : 
https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-linux-x86_64
https://download.fastgit.org/docker/compose/releases/download/v2.20.2/docker-compose-linux-x86_64
#   YML文件对应Docker版本信息 
https://docs.docker.com/compose/compose-file/compose-versioning/

Linux 版 二进制安装

#    最新版下载地址
https://download.fastgit.org/docker/compose/releases/download/v2.20.2/docker-compose-linux-x86_64
#    定义文件目录变量
DOCKER_CONFIG=/usr/local/lib/docker/cli-plugins
#    创建 安装文件目录
sudo mkdir -p $DOCKER_CONFIG
#    下载 最新版 Docker Compose
sudo curl -SL https://download.fastgit.org/docker/compose/releases/download/v2.20.2/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
sudo curl -SL https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
#    赋予 安装文件目录运行权限
sudo chmod +x $DOCKER_CONFIG/docker-compose
#    查询 Docker Compose版本
docker compose version

Compose 文件编写规范

#    Docker Compose 文件版本号
version: '3'
#    服务配置列表
services:
#    服务名,自定义
    nginx:
#    基础镜像名
        image: nginx:latest
#    容器名,自定义
        container_name: nginx_host1
#    端口映射
        ports:
          - 8081:80
#    数据卷挂载
        volumes:
          - /opt/nginx:/opt/nginx/html
#    容器网络
        networks:
          - host1-network
#    随Docker服务自启动
        restart: always
#    环境变量
        environment:
            - TZ=Asia/Shanghai 
#    基于Dockerfile文件构建镜像时使用的属性,非必须
        build:
#    当前路径,也可以是绝对路径
            context: .
#    Dockerfile文件名
        dockerfile: Dockerfile-demo  
#    定义容器之间依赖关系,表明当前容器启动前需要启动的容器
        depends_on:
#    容器名        
            - db 

Compose 文件 样例

version: '2.1'
services:

  nginx:
    image: nginx:latest
    container_name: nginx_host1
    ports:
      - 8081:80
    volumes:
      - /opt/nginx:/opt/nginx/html
    networks:
      - host1-network

  redis:
    image: redis:latest
    container_name: redis_host1
    ports:
      - 63790:6379
    networks:
      - host1-network

networks:
  host1-network:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.16.28.0/24
          gateway: 172.16.28.254

Compose 文件版本对应

3.8    19.03.0+
3.6    18.02.0+
2.3    17.06.0+
2.0    1.10.0+

MySQL 环境变量定义

        environment:
        - MYSQL_ROOT_PASSWORD=root  # 设置一个名为 MYSQL_ROOT_PASSWORD 的环境变量,值为 root
        - MYSQL_DATABASE=mydb  # 设置一个名为 MYSQL_DATABASE 的环境变量,值为 mydb
        - MYSQL_USER=user  # 设置一个名为 MYSQL_USER 的环境变量,值为 user
        - MYSQL_PASSWORD=password  # 设置一个名为 MYSQL_PASSWORD 的环境

Compose 基本命令

#    显示 comppse 版本
docker compose version
#    启动 comppse 容器
docker-compose up -d
#    停止 comppse 容器
docker-compose down
#    重启 comppse 容器
docker-compose restart
#    重新加载 comppse 容器 yml 文件
docker-compose up --force-recreate -d
#    启动 comppse 容器

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接