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 的页面。

更多推荐
所有评论(0)