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

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

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

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

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

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

docker-compose --version

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

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

sudo rm /usr/local/bin/docker-compose
sudo rm /usr/bin/docker-compose

这将删除 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      # 停止服务

下面是一个简单的 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:

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

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

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

docker-compose up

这将根据配置文件启动 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:
    # 配置选项和值

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

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

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

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

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

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

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

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

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

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

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

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

你可能感兴趣的:(docker,docker,eureka,容器)