Linux云服务器Docker部署完全指南:从零到生产环境
在现代云计算环境中,Docker已成为应用部署的黄金标准。本指南将手把手教您在Linux云服务器上部署Docker,涵盖从基础安装到生产环境优化的全流程。
一、前期准备工作
在开始部署前,需要完成以下准备工作:
- 云服务器选择:推荐使用Ubuntu 20.04/22.04 LTS或CentOS 7/8等主流Linux发行版
- 硬件配置:至少2核CPU、4GB内存、20GB存储空间
- 网络设置:确保服务器已开通SSH端口(默认22)和后续Docker使用的端口
- 权限准备:使用具有sudo权限的账户登录
二、Docker引擎安装
2.1 Ubuntu系统安装
# 更新软件包索引
sudo apt-get update
# 安装必要依赖
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 添加稳定版仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# 安装Docker引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
2.2 CentOS系统安装
# 卸载旧版本
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
# 添加仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker引擎
sudo yum install docker-ce docker-ce-cli containerd.io
三、Docker配置与优化
3.1 基本配置
启动Docker服务并设置开机自启:
sudo systemctl start docker
sudo systemctl enable docker
3.2 用户权限配置
避免每次使用docker命令都需要sudo:
sudo usermod -aG docker $USER
newgrp docker # 立即生效
3.3 生产环境优化
- 日志轮转:配置/etc/docker/daemon.json限制日志大小
- 存储驱动:根据需求选择overlay2或devicemapper
- 资源限制:通过cgroups限制容器资源使用
四、部署第一个容器
验证Docker安装是否成功:
docker run hello-world
部署Nginx示例:
docker run -d -p 80:80 --name my-nginx nginx
五、进阶部署技巧
5.1 使用Docker Compose
安装Docker Compose管理多容器应用:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
5.2 容器数据持久化
使用数据卷持久化容器数据:
docker volume create my-volume
docker run -d -v my-volume:/data --name my-container image-name
5.3 安全最佳实践
- 定期更新Docker引擎
- 使用非root用户运行容器
- 限制容器能力(capabilities)
- 启用内容信任(Docker Content Trust)
六、常见问题排查
| 问题 | 解决方案 |
|---|---|
| Cannot connect to the Docker daemon | 检查docker服务状态:sudo systemctl status docker |
| 端口冲突 | 使用netstat -tulnp查找占用端口的进程 |
| 磁盘空间不足 | 定期清理无用镜像:docker system prune |
通过本指南,您已掌握在Linux云服务器上部署Docker的完整流程。从基础安装到生产环境优化,Docker为应用部署提供了标准化的解决方案。接下来可以探索Kubernetes等容器编排工具,构建更强大的云原生架构。
