Linux系统下Docker部署全攻略:从安装到实战配置
2025.09.19 11:10浏览量:0简介:本文详细介绍在Linux系统上部署Docker的完整流程,涵盖环境准备、安装方式、配置优化及安全加固,适合开发者和运维人员参考。
一、部署前的环境准备
1.1 操作系统兼容性检查
Docker官方支持的Linux发行版包括Ubuntu(20.04 LTS/22.04 LTS)、CentOS(7/8)、Debian(10/11)和Fedora(35+)。推荐使用较新的LTS版本,例如Ubuntu 22.04 LTS,其内核版本(5.15+)能更好地支持Docker的cgroup v2特性。可通过uname -r
命令查看当前内核版本,低于4.15的内核可能无法使用完整的Docker功能。
1.2 系统资源要求
Docker运行的最小资源需求为2GB内存和2个CPU核心。对于生产环境,建议配置4GB以上内存和4核CPU。存储方面,Docker默认使用/var/lib/docker
目录,需确保该分区有足够的空间(建议至少20GB)。可通过df -h /var/lib/docker
检查磁盘使用情况。
1.3 依赖包安装
Docker依赖curl
、apt-transport-https
(Debian系)或yum-utils
(RHEL系)等工具。在Ubuntu上执行:
sudo apt update
sudo apt install -y curl apt-transport-https ca-certificates gnupg-agent software-properties-common
在CentOS上执行:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
二、Docker安装方式详解
2.1 官方仓库安装(推荐)
Ubuntu/Debian系统
- 添加Docker官方GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- 添加稳定版仓库:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 安装Docker引擎:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
CentOS/RHEL系统
- 添加仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装Docker:
sudo yum install -y docker-ce docker-ce-cli containerd.io
2.2 脚本快速安装
对于急需使用的场景,可使用官方提供的便捷脚本:
curl -fsSL https://get.docker.com | sh
此方法会自动检测系统并安装最新稳定版,但缺乏自定义配置选项。
2.3 手动编译安装(高级)
适用于需要特定版本或定制功能的场景:
- 下载源码包:
wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.7.tgz
- 解压并安装:
tar -xzvf docker-24.0.7.tgz
sudo cp docker/* /usr/local/bin/
- 创建服务文件(Systemd):
```ini/etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/local/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
Restart=always
RestartSec=5
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
# 三、部署后配置优化
## 3.1 用户组管理
将当前用户加入`docker`组以避免每次使用`sudo`:
```bash
sudo usermod -aG docker $USER
newgrp docker # 立即生效
验证权限:
docker run hello-world
3.2 存储驱动选择
Docker支持多种存储驱动(overlay2、aufs、btrfs等),其中overlay2
是性能最优的选择。在/etc/docker/daemon.json
中配置:
{
"storage-driver": "overlay2"
}
重启服务生效:
sudo systemctl restart docker
3.3 镜像加速配置
国内用户可配置镜像加速器(以阿里云为例):
- 登录阿里云容器镜像服务获取专属加速地址
- 修改
/etc/docker/daemon.json
:{
"registry-mirrors": ["https://<your-id>.mirror.aliyuncs.com"]
}
- 重启Docker服务
四、安全加固最佳实践
4.1 资源限制配置
防止容器占用过多主机资源:
{
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 65535,
"Soft": 65535
}
},
"exec-opts": ["native.cgroupdriver=systemd"]
}
4.2 日志轮转配置
避免日志文件过大占用磁盘:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
4.3 网络隔离策略
使用--network
参数限制容器网络访问:
docker run --network=host nginx # 主机网络模式(谨慎使用)
docker run --network=none nginx # 完全隔离模式
更推荐创建自定义网络:
docker network create --driver=bridge --subnet=172.18.0.0/16 my_net
docker run --network=my_net nginx
五、常见问题解决方案
5.1 启动失败排查
若服务启动失败,首先检查日志:
journalctl -u docker.service -n 50 --no-pager
常见原因包括:
- 端口冲突(检查5375/5376端口)
- 存储目录权限问题(
chown -R root:docker /var/lib/docker
) - 内核参数缺失(需加载
overlay
和br_netfilter
模块)
5.2 性能优化建议
对于高并发场景:
- 调整
/etc/sysctl.conf
:net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
- 启用BBR拥塞控制算法:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
5.3 版本升级指南
升级前务必备份数据:
sudo systemctl stop docker
sudo apt install -y docker-ce=<version> docker-ce-cli=<version> # Ubuntu
sudo yum upgrade docker-ce docker-ce-cli # CentOS
升级后验证:
docker version
docker info | grep "Storage Driver"
六、生产环境部署建议
- 高可用架构:配置Swarm集群或集成Kubernetes
- 监控方案:部署Prometheus+Grafana监控容器指标
- 备份策略:定期备份
/var/lib/docker
目录或使用docker save
导出镜像 - CI/CD集成:通过Jenkins或GitLab CI实现自动化构建部署
通过以上步骤,您可以在Linux系统上完成Docker的完整部署与优化配置。实际生产环境中,建议结合企业具体需求进行定制化调整,并定期审查安全配置。
发表评论
登录后可评论,请前往 登录 或 注册