CentOS 7系统Docker完整安装与生产环境配置指南
一、系统环境准备
1.1 系统更新与依赖检查
在CentOS 7系统上执行:
sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
验证内核版本(需≥3.10):
uname -r
# 输出示例:3.10.0-1160.92.1.el7.x86_64
1.2 存储驱动选择
查看当前存储驱动:
lsmod | grep overlay
# 推荐使用overlay2驱动
二、Docker安装方法对比
2.1 官方仓库安装(推荐)
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum install -y docker-ce docker-ce-cli containerd.io
2.2 便捷脚本安装
curl -fsSL https://get.docker.com | sudo sh
三、生产环境配置实践
3.1 安全配置
创建docker用户组:
sudo groupadd docker
sudo usermod -aG docker $USER
配置daemon.json:
{
"live-restore": true,
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"storage-driver": "overlay2"
}
3.2 镜像加速配置
阿里云加速器示例:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://{your_id}.mirror.aliyuncs.com"]
}
EOF
四、容器网络深度配置
4.1 自定义网桥
docker network create --driver bridge --subnet=172.28.0.0/16 my-bridge
docker run -d --net=my-bridge --name webapp nginx:alpine
4.2 端口映射验证
docker run -d -p 8080:80 --name nginx-test nginx:alpine
curl -I localhost:8080
五、数据持久化方案
5.1 命名卷管理
docker volume create app_data
docker run -d -v app_data:/var/lib/mysql mysql:5.7
5.2 目录绑定
mkdir ~/webroot
docker run -d -v ~/webroot:/usr/share/nginx/html nginx:alpine
六、容器编排实践
6.1 Docker Compose安装
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
6.2 编写docker-compose.yml
version: '3'
services:
web:
image: nginx:alpine
ports:
- "80:80"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
七、监控与维护
7.1 容器日志查看
docker logs --tail 100 -f container_name
7.2 资源监控
安装cAdvisor:
docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8081:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor:latest
八、安全加固建议
8.1 容器安全扫描
docker scan nginx:alpine
8.2 用户命名空间隔离
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"userns-remap": "default"
}
EOF
九、故障排除指南
9.1 常见错误处理
容器启动失败检查:
docker inspect --format='{{.State.Error}}' container_id
9.2 网络诊断工具
docker run --rm -it --net container:webapp nicolaka/netshoot
正文到此结束
相关文章
热门推荐
评论插件初始化中...