Linux如何部署Docker Compose_Linux多容器应用编排教程【云原生】

发布时间 - 2026-01-21 00:00:00    点击率:
需借助Docker Compose进行声明式编排:一、安装Docker引擎;二、安装Docker Compose二进制文件;三、编写docker-compose.yml文件;四、启动与管理多容器应用;五、调试常见部署问题。

如果您希望在Linux系统中快速启动和管理多个相互关联的容器化应用,则需要借助Docker Compose进行声明式编排。以下是完成Docker Compose部署与多容器应用配置的具体步骤:

一、安装Docker引擎

Docker Compose依赖于Docker守护进程,必须先确保系统已安装并运行Docker。未安装时需手动添加官方仓库并安装稳定版本。

1、更新系统包索引:sudo apt update

2、安装必要依赖:sudo apt install -y ca-certificates curl gnupg lsb-release

3、添加Docker官方GPG密钥:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

4、添加Docker APT仓库源:echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list

> /dev/null

5、再次更新包索引并安装Docker CE:sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io

6、将当前用户加入docker组以避免每次使用sudo:sudo usermod -aG docker $USER

7、重启Docker服务并验证状态:sudo systemctl enable docker && sudo systemctl start docker && sudo systemctl status docker

二、安装Docker Compose二进制文件

Docker Compose不再随Docker Desktop集成,需单独下载兼容架构的二进制可执行文件,并赋予运行权限。

1、创建存放目录并进入:sudo mkdir -p /usr/libexec/docker/cli-plugins && cd /usr/libexec/docker/cli-plugins

2、下载最新稳定版docker-compose-plugin(推荐方式):sudo curl -SL https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64 -o docker-compose

3、设置可执行权限:sudo chmod +x docker-compose

4、验证插件是否被Docker识别:docker compose version

三、编写docker-compose.yml编排文件

该文件定义服务、网络、卷等资源,是Docker Compose运行的核心配置。所有字段需严格遵循YAML语法缩进规范。

1、在项目根目录新建文件:nano docker-compose.yml

2、写入标准多容器示例(Nginx + Redis):version: '3.9'

3、在version下方添加services块,包含nginx服务定义:services:\n web:\n image: nginx:alpine\n ports:\n - "8080:80"\n depends_on:\n - redis

4、在同一services下追加redis服务定义: redis:\n image: redis:alpine\n volumes:\n - redis_data:/data

5、在文件末尾添加volumes声明:volumes:\n redis_data:

四、启动与管理多容器应用

通过单一命令即可拉取镜像、创建网络、挂载卷并启动全部服务。Docker Compose会自动处理依赖顺序与健康检查。

1、后台启动所有服务:docker compose up -d

2、查看运行中的服务列表:docker compose ps

3、实时查看日志输出(按Ctrl+C退出):docker compose logs -f

4、停止所有服务但保留卷和网络:docker compose stop

5、完全移除容器、网络、但不删除卷:docker compose down

6、彻底清除包括命名卷在内的所有资源:docker compose down -v

五、调试常见部署问题

当docker compose up失败时,通常源于配置语法错误、端口冲突或镜像不可达。需逐层定位原因。

1、检查YAML格式是否合法:docker compose config

2、查看最近一次失败的构建日志:docker compose logs web

3、手动运行单个服务以复现问题:docker compose run --rm web sh

4、确认宿主机端口未被占用:sudo ss -tuln | grep :8080

5、强制重新构建并拉取镜像:docker compose up -d --build --pull

6、清理孤立构建缓存以释放空间:docker builder prune -f


# linux  # redis  # git  # docker  # github  # nginx  # web3  # 端口  # ubuntu  # ssl  # curl  # 架构  # echo  # print 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  如何彻底卸载建站之星软件?  如何在IIS7中新建站点?详细步骤解析  如何在VPS电脑上快速搭建网站?  Laravel怎么调用外部API_Laravel Http Client客户端使用  如何在IIS7上新建站点并设置安全权限?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  如何在IIS管理器中快速创建并配置网站?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  Laravel如何集成Inertia.js与Vue/React?(安装配置)  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  如何为不同团队 ID 动态生成多个非值班状态按钮  如何用腾讯建站主机快速创建免费网站?  Android 常见的图片加载框架详细介绍  高防服务器:AI智能防御DDoS攻击与数据安全保障  Python文件流缓冲机制_IO性能解析【教程】  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  如何在万网利用已有域名快速建站?  如何快速生成凡客建站的专业级图册?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  简历在线制作网站免费版,如何创建个人简历?  如何用JavaScript实现文本编辑器_光标和选区怎么处理  常州企业网站制作公司,全国继续教育网怎么登录?  在centOS 7安装mysql 5.7的详细教程  如何登录建站主机?访问步骤全解析  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  如何用好域名打造高点击率的自主建站?  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  jQuery 常见小例汇总  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  Laravel如何创建自定义Artisan命令?(代码示例)  JavaScript如何实现路由_前端路由原理是什么  如何确保FTP站点访问权限与数据传输安全?  jQuery validate插件功能与用法详解  Python数据仓库与ETL构建实战_Airflow调度流程详解  网站建设保证美观性,需要考虑的几点问题!  济南网站建设制作公司,室内设计网站一般都有哪些功能?  Laravel如何使用Blade组件和插槽?(Component代码示例)  lovemo网页版地址 lovemo官网手机登录  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  大型企业网站制作流程,做网站需要注册公司吗?