• Docker Compose


    Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它使用一个 YAML 文件来配置应用程序的服务、网络和存储等方面,并使用简单的命令来管理应用程序的生命周期。

    使用 Docker Compose,你可以将多个容器(即服务)组合在一起,形成一个完整的应用程序。每个服务都可以由一个或多个容器组成,并且可以定义各种配置选项,如映射端口、挂载卷、环境变量等。

    安装与卸载

    安装 Docker Compose 可以通过以下步骤完成:

    步骤 1:下载 Docker Compose 的二进制文件。你可以通过以下命令在 official GitHub 仓库中找到适合你操作系统的最新版本的二进制文件:

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

    步骤 2:对下载的二进制文件赋予执行权限:

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

    步骤 3:创建软链接,以使 docker-compose 命令可用于全局执行:

    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    
    • 1

    这样,你就可以通过在终端窗口中运行 docker-compose 命令来使用 Docker Compose 了。你可以通过运行以下命令检查安装是否成功:

    docker-compose --version
    
    • 1

    如果成功安装,会显示 Docker Compose 的版本号。

    卸载 Docker Compose 也很简单,只需删除相关的二进制文件即可。通过运行以下命令,你可以删除二进制文件:

    sudo rm /usr/local/bin/docker-compose
    sudo rm /usr/bin/docker-compose
    
    • 1
    • 2

    这将删除 Docker Compose 的二进制文件,完成卸载操作。

    请注意,Docker Compose 需要 Docker 引擎的支持,所以在安装 Docker Compose 之前,请确保已经正确安装和配置了 Docker 引擎。

    常用命令:

    docker-compose -h                           # 查看帮助
    
    docker-compose up                           # 启动所有docker-compose服务
    
    docker-compose up -d                        # 启动所有docker-compose服务并后台运行
    
    docker-compose down                         # 停止并删除容器、网络、卷、镜像。
    
    docker-compose exec  yml里面的服务id                 # 进入容器实例内部  docker-compose exec docker-compose.yml文件中写的服务id /bin/bash
    
    docker-compose ps                      # 展示当前docker-compose编排过的运行的所有容器
    
    docker-compose top                     # 展示当前docker-compose编排过的容器进程
    
     
    
    docker-compose logs  yml里面的服务id     # 查看容器输出日志
    
    docker-compose config     # 检查配置
    
    docker-compose config -q  # 检查配置,有问题才有输出
    
    docker-compose restart   # 重启服务
    
    docker-compose start     # 启动服务
    
    docker-compose stop      # 停止服务
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    下面是一个简单的 Docker Compose 示例文件 docker-compose.yml,其中包含了两个服务 webdb

    version: "3"
    services:
      web:
        build: .
        ports:
          - "8000:80"
        volumes:
          - ./web:/var/www/html
        depends_on:
          - db
      db:
        image: mysql:5.7
        environment:
          - MYSQL_ROOT_PASSWORD=secret
          - MYSQL_DATABASE=myapp
        volumes:
          - dbdata:/var/lib/mysql
    volumes:
      dbdata:
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    在这个示例中,web 服务使用当前目录中的 Dockerfile 构建镜像,并将容器的 80 端口映射到宿主机的 8000 端口。此外,将宿主机中的 ./web 目录挂载到容器的 /var/www/html 目录。

    db 服务使用预先构建的 MySQL 镜像,并通过环境变量设置了 root 用户的密码和创建的数据库名称。

    你可以在该示例的目录中使用以下命令来启动这两个服务:

    docker-compose up
    
    • 1

    这将根据配置文件启动 webdb 服务,并将它们自动连接到同一个创建的网络中。你可以使用 docker-compose.yml 中定义的服务名称来进行通信,例如 web 服务可以使用 db 服务的 hostname 进行数据库连接。

    除此之外,Docker Compose 还提供了其他一些有用的命令,如 docker-compose down 关闭服务,docker-compose ps 查看服务的状态,docker-compose logs 查看服务的日志等。

    Docker Compose 是一个方便而强大的工具,能够简化多容器应用程序的管理和部署。你可以通过使用 YAML 文件定义整个应用程序的结构和配置,并通过一条命令轻松启动、停止和管理应用程序的生命周期

    yaml 详解

    当使用 Docker Compose 编写 docker-compose.yml 文件时,它遵循一定的结构和语法。下面是一个典型的 docker-compose.yml 文件的结构,以及相应的说明:

    version: '3'
    services:
      service1:
        # 配置选项和值
      service2:
        # 配置选项和值
    networks:
      network1:
        # 配置选项和值
    volumes:
      volume1:
        # 配置选项和值
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    让我们详细解释一下每个部分:

    • version: '3':指定 Docker Compose 文件的版本。它指定了构建和运行的配置选项的支持范围。根据你的需求,可以指定不同的版本号。

    • services(服务):这是定义在 Docker Compose 文件中的各个服务配置的主要部分。每个服务都在这里定义,并且可以包含一系列配置选项。

    • networks(网络):该部分用于定义 Docker Compose 文件中使用的网络配置选项。你可以在这里定义并配置网络。

    • volumes(卷):这里定义了 Docker Compose 文件中使用的卷(volumes)配置选项。你可以在这里设置卷的具体配置属性。

    在每个服务下面的部分,你可以定义各种配置选项和值,以满足你的需求。以下是一些常见的配置选项:

    • image:指定服务要使用的 Docker 镜像。

    • container_name:指定服务所创建的容器的名称。

    • ports:指定如何暴露服务端口。

    • volumes:指定容器和主机之间的文件卷挂载关系。

    • environment:指定容器的环境变量。

    • depends_on:指定服务之间的依赖关系,控制启动顺序。

  • 相关阅读:
    Matlab读写操作
    [iptables] 基于iptables实现的跨网络通信
    游戏中交通工具的设计
    谁家分析数据还要开发啊,不都一键得报表吗?
    [PyTorch][chapter 55][WGAN]
    这家提供数据闭环完整链路的企业,已拿下多家头部主机厂定点
    浅谈安科瑞无线测温产品在埃及某房建配电项目中的应用
    字节码打桩插入代码块|IOC框架之对象注入~研究
    堆排序——向下调整
    小视频APP源码选择指南:挑选最适合你的开发框架
  • 原文地址:https://blog.csdn.net/qq_39034148/article/details/132959807