一、系统环境预检与前置准备
在开始安装前,需确保VPS系统满足以下基础条件:
- 系统版本验证:通过
lsb_release -a命令确认系统为Ubuntu 22.04 LTS(Jammy Jellyfish),其他版本需调整后续安装命令 - 存储空间检查:使用
df -h查看根分区剩余空间,建议保留至少10GB可用空间 - 网络连通性测试:执行
ping google.com验证外网访问能力,容器镜像下载依赖稳定网络 - 安全组配置:若使用云服务商VPS,需放行22(SSH)、80/443(Web服务)、2375/2376(Docker远程管理)等端口(生产环境建议仅开放必要端口)
二、Docker官方仓库安装流程
1. 卸载旧版本(如有)
sudo apt-get remove docker docker-engine docker.io containerd runc
此步骤确保系统无残留组件,避免版本冲突导致的运行异常。
2. 添加官方GPG密钥
sudo mkdir -p /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
密钥验证机制保障软件包来源可信性,建议定期检查密钥有效期。
3. 配置APT仓库源
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
此处$(lsb_release -cs)自动获取系统代号,确保仓库与系统版本精确匹配。
4. 安装核心组件
sudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
建议同时安装docker-compose-plugin以支持新版Compose V2语法,组件版本可通过docker --version验证。
三、生产环境加固配置
1. 镜像加速配置
编辑/etc/docker/daemon.json文件(不存在则创建):
{"registry-mirrors": ["https://<镜像加速器地址>","https://mirror.baidubce.com"],"exec-opts": ["native.cgroupdriver=systemd"]}
重启服务使配置生效:
sudo systemctl restart docker
此配置可提升国内网络环境下的镜像拉取速度,建议选择官方认证的镜像加速服务。
2. 非root用户权限配置
sudo usermod -aG docker $USERnewgrp docker # 立即生效无需重启会话
执行docker run hello-world验证权限配置,成功输出表示配置正确。
3. 安全基线设置
- 禁用Swarm模式(非集群环境):
docker swarm leave --force
- 限制日志文件大小:
// 在daemon.json中添加"log-driver": "json-file","log-opts": {"max-size": "100m","max-file": "3"}
- 启用TLS认证(远程管理场景):
mkdir -p ~/.dockeropenssl req -newkey rsa:4096 -nodes -sha256 -keyout ~/.docker/server-key.pem \-x509 -days 365 -out ~/.docker/server-cert.pem
四、容器编排工具部署
1. Docker Compose V2安装
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" \-o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose
验证安装:
docker compose version
2. 基础服务部署示例
创建docker-compose.yml文件:
version: '3.8'services:nginx:image: nginx:latestports:- "80:80"volumes:- ./html:/usr/share/nginx/htmlredis:image: redis:alpinecommand: redis-server --requirepass yourpasswordports:- "6379:6379"
启动服务:
docker compose up -d
通过docker compose ps查看运行状态,docker compose logs查看日志输出。
五、运维监控体系搭建
1. 资源监控方案
docker stats # 实时资源监控docker system df # 存储空间分析
建议部署Prometheus+Grafana监控栈:
docker run -d --name prometheus -p 9090:9090 \-v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \prom/prometheus
2. 日志集中管理
配置EFK(Elasticsearch+Fluentd+Kibana)日志系统:
# 示例Fluentd配置片段<source>@type forwardport 24224</source><match docker.**>@type elasticsearchhost elasticsearchport 9200logstash_format true</match>
3. 备份恢复策略
# 容器数据备份docker run --rm --volumes-from my_container -v $(pwd):/backup alpine \tar czf /backup/my_container_backup.tar.gz /data# 镜像仓库搭建docker run -d -p 5000:5000 --restart=always --name registry \-v /mnt/registry:/var/lib/registry registry:2
六、常见问题处理
-
启动失败排查:
- 检查内核模块:
lsmod | grep overlay - 查看系统日志:
journalctl -u docker.service - 验证存储驱动:
docker info | grep "Storage Driver"
- 检查内核模块:
-
网络问题解决:
- 测试容器网络:
docker run --rm busybox ping 8.8.8.8 - 重启网络服务:
systemctl restart systemd-networkd
- 测试容器网络:
-
性能优化建议:
- 调整虚拟内存:
echo vm.overcommit_memory=1 >> /etc/sysctl.conf - 禁用swap分区:
swapoff -a - 配置CPU调度:
echo "GRUB_CMDLINE_LINUX=\"cgroup_enable=memory swapaccount=1\"" >> /etc/default/grub
- 调整虚拟内存:
通过以上系统化部署方案,开发者可在Ubuntu 22.04 VPS上快速构建安全高效的容器环境。建议定期执行docker system prune清理无用资源,并关注官方安全公告及时升级组件版本。对于企业级部署,可考虑集成CI/CD流水线实现容器镜像的自动化构建与部署。