部署Docker入门教程
·
Linux & macOS 部署Docker+配置docker-compose.yaml 教程
一、前置条件
1. 环境要求
- Linux:CentOS 7+/Ubuntu 18.04+(x86/ARM架构)
- macOS:macOS 10.15+(Intel/M1/M2/M3架构)
- 已安装Docker(验证:
docker --version) - docker命令速查表
2. 安装Docker
- Linux(以Ubuntu为例)
# 卸载旧版本(如有) sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine # 安装依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 添加Docker官方源 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安装Docker引擎(包含docker-compose-plugin) sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin # 启动Docker服务并设置开机自启 sudo systemctl start docker sudo systemctl enable docker # 配置免sudo(可选) sudo usermod -aG docker $USER && newgrp docker - macOS
- 直接下载 Docker Desktop:https://www.docker.com/products/docker-desktop
- 安装后启动,验证:
docker --version
二、部署核心场景:本地目录挂载 + 端口映射
目标
将本地目录部署到 8091 端口(以 Nginx 为例,提供静态文件访问)
步骤 1:准备本地测试目录
# 创建目录(Linux/macOS通用)
mkdir -p ~/docker-test/www
# 创建测试文件
echo "<h1>Hello Docker! $(uname -s) $(uname -m)</h1>" > ~/docker-test/www/index.html
步骤 2:方式 1 - 直接用 docker run 部署(快速验证)
# Linux/macOS通用(macOS M系列需适配ARM架构)
docker run -d \
--name my-local-dir-server \
-p 8091:80 \
-v ~/docker-test/www:/usr/share/nginx/html \
--restart always \
nginx:alpine
- 参数说明:
- -d:后台运行
- –name:容器命名
- -p 8091:80:宿主机 8091 端口映射到容器 80 端口
- -v:本地目录挂载到容器 Nginx 静态目录
- –restart always:容器异常退出自动重启
步骤 3:方式 2 - 用 docker-compose.yaml 部署(推荐,易维护)
1. 创建 yaml 文件
在~/docker-test目录下创建docker-compose.yaml:
services:
my-local-dir-server:
image: nginx:alpine
container_name: my-local-dir-server
ports:
- "8091:80"
volumes:
- ~/docker-test/www:/usr/share/nginx/html
restart: always
# CentOS ARM架构/macOS M系列需添加(x86架构可省略)
platform: linux/arm64/v8
2. 启动容器
# 进入yaml文件目录
cd ~/docker-test
# 启动容器(CentOS 7需用 docker-compose up -d,8+可直接用docker compose)
docker compose up -d
# 兼容CentOS 7写法(如上述命令报错):
# docker-compose up -d
步骤 4:验证部署结果
# 查看容器状态
docker ps
# 访问测试(Linux/macOS通用)
curl http://localhost:8091
- 浏览器访问:http://localhost:8091,能看到测试页面即成功。
三、yaml 配置核心说明
| 配置项 | 作用 | 备注 |
|---|---|---|
| services | 定义容器服务 | 一个 service 对应一个容器 |
| image | 指定镜像 | 优先用 alpine 轻量版 |
| container_name | 容器名称 | 避免随机命名 |
| ports | 端口映射 | 格式:“宿主机端口:容器端口” |
| volumes | 目录挂载 | 格式:“本地路径:容器路径” |
| restart | 重启策略 | always= 始终自动重启 |
| platform | 架构适配 | CentOS ARM 架构 /macOS M 系列需指定 linux/arm64/v8 |
四、常用管理操作
1. 重启容器
# 直接重启
docker restart my-local-dir-server
# 用compose重启(CentOS 7需用docker-compose)
cd ~/docker-test && docker compose restart nginx-server
2. 停止 / 删除容器
# 停止容器
docker stop my-local-dir-server
# 删除容器
docker rm my-local-dir-server
# Compose停止并删除(CentOS 7需用docker-compose)
cd ~/docker-test && docker compose down
3. 查看日志
# 查看容器日志
docker logs my-local-dir-server
# 实时查看日志
docker logs -f my-local-dir-server
五、常见问题解决
1. 镜像拉取失败
- 原因:默认源在国外,速度慢 / 超时
- 解决:配置国内镜像源
- Linux:修改
/etc/docker/daemon.json
重启 Docker:{ "registry-mirrors": ["https://mirror.aliyuncs.com"] }sudo systemctl restart docker - macOS:Docker Desktop → Settings → Docker Engine → 添加上述镜像源 → Apply & Restart
- Linux:修改
2. 端口被占用
- 查看占用端口:lsof -i :8091(macOS/Linux)
- 杀死占用进程:kill -9 <进程ID>
- 或修改 yaml 中的宿主机端口(如8092:80)
3. 目录挂载无权限(Linux)
- 解决:给本地目录赋权:chmod -R 755 ~/docker-test/www
### 总结
1. 命令速查表覆盖容器、镜像、Compose、日志、清理5大类核心操作,可直接保存为md文件备用;
2. 部署教程兼容Linux(x86/ARM)和macOS(Intel/M系列),包含`docker run`快速部署和`docker-compose.yaml`规范部署两种方式;
3. 教程中补充了常见问题(镜像拉取、端口占用、权限)的解决方案,适配新手使用场景。
⭐️如果对你有用的话,希望可以点点赞,感谢了⭐️
更多推荐

所有评论(0)