Docker容器编排技术

容器编排工具

Docker Compose 是 Docker 生态中的单机多容器声明式编排工具,隶属于 Docker CLI 扩展组件体系,核心目标是通过标准化的 YAML 配置文件,实现对一组关联容器化服务(Service)的生命周期统一管控,包括镜像构建、容器创建、网络配置、存储挂载、依赖调度等全流程自动化。

安装路径:https://github.com/docker/compose/releases/tag/v5.0.2

在这里插入图片描述

进入 /usr/local/src/docker/,将该文件上传到服务器中
为方便使用,将文件重命名为 docker-compose,并移动到系统默认的可执行路径(如 /usr/local/bin,这个路径在系统的 PATH 环境变量中,全局可调用):

mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

要给下载的二进制文件添加执行权限,否则系统不允许运行它

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

验证 docker-compose 是否安装成功(若没有将其移动到系统默认的可执行路径,会显示找不到 docker-compose)

docker-compose -v

在这里插入图片描述

docker-compose 基础命令:

查看帮助

docker-compose -h

创建并前台运行所有容器

docker-compose up

创建并后台运行所有容器

docker-compose up -d

显示指定自定义配置文件

docker-compose -f docker-compose.yml up -d

停止并删除容器、网络

docker-compose down

查看容器输出日志

docker-compose logs

拉取依赖镜像

docker-compose pull

检查配置

dokcer-compose config

仅验证配置语法,无错误则无输出,有错误才输出错误信息

dokcer-compose config -q

重启服务

docker-compose restart

启动服务

docker-compose start

停止服务

docker-compose stop

docker-compose.yml 是 Docker Compose 的核心文件,它定义了应用的服务、网络、卷等,可以包含以下几种配置:
services:容器化服务的抽象,对应一组同构容器实例,是编排的核心单元。
networks:定义容器之间的网络连接。
volumes:定义持久化存储卷,用于保存数据。
configs / secrets:配置和密钥管理,适用于更复杂的场景。

容器编排案例

创建一个docker-compose.yml

version: '3.0'
services:
  tomcat80: ##服务名称
    #container_name: tomcat8080 指定容器名称
    image: tomcat:8 #镜像文件名称
    ports:  ###端口号的映射
    - 8080:8080
    volumes: ## 数据源 宿主机与容器数据共享
      - /usr/local/src/docker/tomcat/webapps:/usr/local/tomcat/webapps/ROOT
    networks:  ###定义网络的桥
      - test

  tomcat81: ##服务名称
    #container_name: tomcat8080 指定容器名称
    image: tomcat:8 #镜像文件名称
    ports:  ###端口号的映射
      - 8081:8080
    volumes: ## 数据源 宿主机与容器数据共享
      - /usr/local/src/docker/tomcat/webapps:/usr/local/tomcat/webapps/ROOT
    networks:
      - test
networks:  ## 定义服务的桥
  test:

在这里插入图片描述
在这里插入图片描述

使用 docker inspect 容器id 命令查看两个容器的详细信息,Docker 为 Compose 自定义网络(test 网络)分配的内网网络配置如下:

在这里插入图片描述

在这里插入图片描述

这两个 Tomcat 容器能互通,本质是它们处于同一子网(172.18.0.0/16) 且共享网关。可直接用容器的内网 IP 访问,比如在 tomcat80(172.18.0.2)容器内执行 curl 172.18.0.3:8080/page.html,能成功访问 tomcat81 的页面。Compose 的 DNS 服务会将 tomcat80 解析为 172.18.0.2,tomcat81 解析为 172.18.0.3,因此 curl tomcat81:8080 等价于 curl 172.18.0.3:8080,在 tomcat80(172.18.0.2)容器内执行 curl tomcat81:8080/page.html,也能成功访问到 tomcat81 的页面。

在这里插入图片描述

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐