在云原生时代,Docker 凭借“一次构建、到处运行”的特性,成为开发者和运维人员必备的工具。它通过容器技术打包应用及其依赖,解决了环境不一致的痛点。本文将从环境准备、Docker 安装、镜像与容器操作、Docker Compose 编排四个核心环节,带你完成 Docker 服务器的部署与实践,即使是零基础也能快速上手。
一、环境准备:选择合适的服务器与系统
Docker 对硬件要求不高,但为了稳定运行,建议满足以下基础配置:
- CPU:1核及以上(生产环境建议2核+)
- 内存:2GB及以上(避免因内存不足导致容器崩溃)
- 存储:20GB以上可用磁盘空间(镜像和容器会占用一定空间)
- 网络:能访问公网(用于拉取官方镜像)
操作系统选择:Docker 对 Linux 支持最好,推荐使用以下发行版(按优先级排序):
- Ubuntu 20.04/22.04:官方推荐,包管理工具 apt 易用,社区文档丰富;
- CentOS 7/8:企业级常用,稳定性强;
- Debian 11+:轻量稳定,适合资源有限的服务器。
注意:Windows Server 或 macOS 也可安装 Docker,但生产环境优先选择 Linux(性能更优、资源占用更低)。

二、Docker 安装:两种主流方式(以 Ubuntu/CentOS 为例)
Docker 分为 CE(社区版) 和 EE(企业版),个人和中小企业选择 CE 即可。以下是两种系统的安装步骤:
(一)Ubuntu 系统安装 Docker CE
1. 卸载旧版本(若有)
如果服务器之前装过旧版 Docker,需先卸载:
sudo apt-get remove docker docker-engine docker.io containerd runc
2. 设置软件源(提高安装速度)
Docker 官方源在国内访问较慢,建议替换为阿里云源:
# 安装依赖包
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# 添加阿里云 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 添加 Docker 软件源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
3. 安装 Docker CE
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
4. 验证安装
执行以下命令,若输出 Docker 版本信息,则安装成功:
docker --version
# 输出示例:Docker version 24.0.6, build ed223bc
(二)CentOS 系统安装 Docker CE
1. 卸载旧版本
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
2. 设置软件源
同样使用阿里云源加速:
# 安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加阿里云 Docker 源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 安装 Docker CE
sudo yum install -y docker-ce docker-ce-cli containerd.io
4. 启动 Docker 并设置开机自启
CentOS 安装后默认不会启动 Docker,需手动开启:
# 启动 Docker 服务
sudo systemctl start docker
# 设置开机自启
sudo systemctl enable docker
# 验证状态
sudo systemctl status docker
# 输出 "active (running)" 即为正常
(三)配置国内镜像加速(关键优化)
Docker 官方镜像仓库(Docker Hub)在国内访问较慢,需配置国内镜像源(如阿里云、网易云):
1. 编辑 Docker 配置文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://你的阿里云镜像加速地址.mirror.aliyuncs.com"]
}
EOF
如何获取阿里云镜像加速地址?
登录阿里云官网 → 进入“容器镜像服务” → 左侧“镜像加速器” → 复制专属加速地址。
2. 重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker
3. 验证加速是否生效
docker info
# 查看 "Registry Mirrors" 字段,若显示配置的加速地址则成功
三、Docker 核心操作:镜像与容器实战
Docker 的核心是镜像(Image)和容器(Container):
- 镜像:是容器的“模板”,包含应用程序及其依赖环境(如 Nginx 镜像、MySQL 镜像);
- 容器:是镜像的“运行实例”,一个镜像可以创建多个容器。
(一)镜像操作:拉取、查看与删除
1. 拉取官方镜像
以 Nginx 为例,拉取最新版本的镜像:
docker pull nginx:latest
# 若不指定标签(如 :latest),默认拉取 latest 版本
2. 查看本地镜像
docker images
# 输出示例:
# REPOSITORY TAG IMAGE ID CREATED SIZE
# nginx latest 605c77e624dd 2 weeks ago 141MB
3. 删除镜像
# 通过镜像ID删除(IMAGE ID 可通过 docker images 查看)
docker rmi 605c77e624dd
# 强制删除(若镜像被容器使用,需加 -f 参数)
docker rmi -f 605c77e624dd
(二)容器操作:创建、启动与管理
1. 创建并启动容器
以 Nginx 为例,创建一个对外暴露 80 端口的容器:
docker run -d -p 80:80 --name my-nginx nginx:latest
参数说明:
-d:后台运行容器(守护进程模式);-p 80:80:端口映射(主机端口:容器端口);--name my-nginx:给容器命名(方便后续操作);nginx:latest:基于该镜像创建容器。
2. 查看运行中的容器
docker ps
# 输出示例:
# CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# a7e3b2f9c123 nginx:latest "/docker-entrypoint.…" 2 minutes ago Up 2 minutes 0.0.0.0:80->80/tcp my-nginx
3. 进入容器内部
若需修改容器内的配置(如 Nginx 配置文件),可进入容器:
docker exec -it my-nginx /bin/bash
# -it:交互式终端模式;/bin/bash:进入容器后执行的命令
进入后可执行 ls /etc/nginx 查看配置文件,修改后需重启容器生效。
4. 停止与启动容器
# 停止容器
docker stop my-nginx
# 启动已停止的容器
docker start my-nginx
# 重启容器
docker restart my-nginx
5. 删除容器
# 先停止容器(若运行中)
docker stop my-nginx
# 删除容器
docker rm my-nginx
# 强制删除运行中的容器(加 -f 参数)
docker rm -f my-nginx
四、Docker Compose:多容器编排工具
当需要同时运行多个容器(如 Nginx + MySQL + 后端服务)时,手动管理每个容器会非常繁琐。Docker Compose 可以通过一个 docker-compose.yml 文件定义多容器服务,实现一键启动、停止。
(一)安装 Docker Compose
以 Linux 为例,下载最新版本(可在 GitHub releases 查看最新版本号):
# 下载 Compose(替换为最新版本号)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose --version
# 输出示例:Docker Compose version v2.23.0
(二)编写 docker-compose.yml 示例
以“Nginx + 静态网页”为例,创建一个简单的多容器服务:
1. 创建项目目录
mkdir docker-demo && cd docker-demo
2. 编写 docker-compose.yml
version: '3' # Compose 文件版本(需与 Docker 版本兼容)
services:
web:
image: nginx:latest
ports:
- "8080:80" # 主机8080端口映射到容器80端口
volumes:
- ./html:/usr/share/nginx/html # 挂载本地目录到容器(实现文件同步)
restart: always # 容器退出时自动重启
3. 创建静态网页
在 docker-demo 目录下创建 html 文件夹,并编写 index.html:
mkdir html && echo "<h1>Hello Docker Compose!</h1>" > html/index.html
4. 启动服务
在 docker-demo 目录下执行:
docker-compose up -d
# -d:后台运行
5. 验证服务
打开浏览器访问 http://服务器IP:8080,若看到“Hello Docker Compose!”则成功。
6. 停止服务
# 停止并删除容器(保留镜像和挂载数据)
docker-compose down
# 仅停止容器(不删除)
docker-compose stop
五、常见问题与解决方案
-
Docker 命令需要 sudo?
原因:当前用户未加入docker用户组。
解决:sudo usermod -aG docker $USER # 重启终端或重新登录生效 -
容器启动后立即退出?
原因:容器内没有前台运行的进程(Docker 要求容器必须有一个前台进程才能保持运行)。
解决:确保镜像的启动命令是前台运行(如 Nginx 的nginx -g 'daemon off;')。 -
镜像拉取失败?
原因:网络问题或镜像源未配置。
解决:检查网络连接,确认已配置国内镜像加速(参考本文“配置国内镜像加速”部分)。
六、总结
通过本文的步骤,你已完成 Docker 服务器的安装、镜像与容器的基本操作,以及 Docker Compose 的多容器编排。Docker 的核心价值在于“环境一致性”和“轻量化”,后续你可以尝试部署更多应用(如 MySQL、Redis、Node.js 服务),逐步掌握容器化技术。
如果需要深入学习,建议参考 Docker 官方文档(docs.docker.com),或尝试 Docker Swarm、Kubernetes 等容器编排工具,进一步提升运维效率。








留言0