ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Docker Compose 安装与实战全指南(含 Nginx 部署案例)

Docker Compose 安装与实战全指南(含 Nginx 部署案例)

文章目录

一、什么是 Docker Compose?

 二、Docker Compose 安装教程(Linux)

Step 1:安装 Docker

 Step 2:安装 Docker Compose v2(推荐)

 三、基础目录结构与配置示例

项目结构:

 四、编写 docker-compose.yml

 五、准备网站内容(index.html)

 六、运行与验证

 启动服务

 查看运行状态

浏览器访问验证

七、服务管理命令总结

 八、常见问题及解决方案

九、扩展学习方向


一、什么是 Docker Compose?

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。使用 YAML 文件定义服务后,可以通过一条命令一键部署所有服务。

  • 项目标准化部署工具

  • 一键启动、停止、重建服务

  • 配合 volume 实现数据共享

  • 与 Docker Desktop 完全兼容


 二、Docker Compose 安装教程(Linux)

Step 1:安装 Docker

若未安装 Docker,可执行以下脚本:

curl -fsSL https://get.docker.com | bash

验证:

root@pve2:~/docker-compose-nginx# docker --version
'Docker version 28.3.1, build 38b7060

 Step 2:安装 Docker Compose v2(推荐)

root@pve2:~/docker-compose# wget https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64
root@pve2:~/docker-compose# cp docker-compose-linux-x86_64  /usr/local/bin/docker-compose
root@pve2:/usr/local/bin# chmod +x docker-compose

验证:

root@pve2:~/docker-compose-nginx# docker-compose --version
Docker Compose version v2.16.0

 三、基础目录结构与配置示例

我们将使用 docker-compose.yml 部署一个 Nginx 网站。

项目结构:

root@pve2:~/docker-compose-nginx# tree
.
├── docker-compose.yml
└── html
    └── index.html

2 directories, 2 files
root@pve2:~/docker-compose-nginx# 


 四、编写 docker-compose.yml

root@pve2:~/docker-compose-nginx# cat docker-compose.yml 
version: "3.8"services:nginx:image: nginx:latestcontainer_name: my-nginxports:- "8080:80"              # 映射主机8080端口到容器80volumes:- ./html:/usr/share/nginx/html:ro  # 本地html目录挂载到容器中restart: always

 五、准备网站内容(index.html)

html/index.html 中写入你想展示的网页:

root@pve2:~/docker-compose-nginx# cat html/index.html 
<!DOCTYPE html>
<html>
<head><title>Docker Compose Test</title>
</head>
<body><h1>  Docker Compose up Nginx!</h1>
</body>
</html>
root@pve2:~/docker-compose-nginx# 

 六、运行与验证

 启动服务

root@pve2:~# cd docker-compose-nginx/
root@pve2:~/docker-compose-nginx# docker-compose up -d
[+] Running 8/8⠿ nginx Pulled                                                                                                         19.0s⠿ 3da95a905ed5 Pull complete                                                                                         10.2s⠿ 6c8e51cf0087 Pull complete                                                                                         13.0s⠿ 9bbbd7ee45b7 Pull complete                                                                                         13.0s⠿ 48670a58a68f Pull complete                                                                                         13.0s⠿ ce7132063a56 Pull complete                                                                                         13.1s⠿ 23e05839d684 Pull complete                                                                                         13.1s⠿ ee95256df030 Pull complete                                                                                         13.1s
[+] Running 2/2⠿ Network docker-compose-nginx_default  Created                                                                         0.0s⠿ Container my-nginx                    Started                                                                         0.5s
root@pve2:~/docker-compose-nginx# 

 查看运行状态

root@pve2:~/docker-compose-nginx# docker-compose ps
NAME                IMAGE               COMMAND                  SERVICE             CREATED             STATUS              PORTS
my-nginx            nginx:latest        "/docker-entrypoint.…"   nginx               31 seconds ago      Up 30 seconds       0.0.0.0:8080->80/tcp, :::8080->80/tcp
root@pve2:~/docker-compose-nginx# 

应看到 my-nginx 容器运行中。

通过浏览器访问或通过curl访问:

root@pve2:~/docker-compose-nginx# curl http://localhost:8080
<!DOCTYPE html>
<html>
<head><title>Docker Compose Test</title>
</head>
<body><h1>  Docker Compose up Nginx!</h1>
</body>
</html>
root@pve2:~/docker-compose-nginx# 

即可看到网页内容(“成功通过 Docker Compose 启动 Nginx!”)。


七、服务管理命令总结

操作命令
启动容器(后台)docker compose up -d
查看容器状态docker compose ps
查看日志docker compose logs
停止并移除容器docker compose down
重启服务docker compose restart

 八、常见问题及解决方案

问题描述解决方案
Permission deniedchmod +x 设置权限;或使用 sudo 运行
port is already allocated检查是否端口冲突,换一个 80808081
文件挂载失败确保 html 文件夹存在,路径正确
服务未启动成功查看 docker compose logs 日志排查原因

九、扩展学习方向

  • Docker Compose 配置多服务(如 Nginx + MySQL + PHP)

  • 多环境支持(开发、测试、生产)

  • Compose 配合 .env 变量配置

  • 服务依赖(depends_on

  • 配合 CI/CD 实现自动部署

返回列表