CentOS 7 企业级 Docker 全流程部署实战:私有仓库 + Dockerfile + Compose 一站式落地
·
前言
在云原生与 DevOps 落地场景中,Docker 已成为应用容器化的标准底座。本文基于 CentOS 7 环境,从系统初始化、Docker CE 安装、镜像 / 容器运维、私有 Registry 搭建、Dockerfile 自定义镜像、Docker Compose 服务编排六大核心环节,提供可直接用于实训 / 生产的标准化部署方案,兼顾操作规范性与工程实用性,助力快速完成从环境搭建到服务上线的全链路闭环。
一、环境前置准备(Server + Client 双节点)
1. 基础配置规范
表格
| 节点 | 主机名 | 内存 | 静态 IP | 网关 | DNS |
|---|---|---|---|---|---|
| 服务端 | server | 4G | 10.31.3.137/24 | 10.31.3.1 | 114.114.114.114 |
| 客户端 | client | 4G | 10.31.3.138/24 | 10.31.3.1 | 114.114.114.114 |
2. 系统安全与网络优化
- 主机名配置
hostnamectl set-hostname server bash - 关闭防火墙与 SELinux(生产可按需开放端口)
systemctl stop firewalld && systemctl disable firewalld setenforce 0 sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config - 开启内核转发(Docker 网络必需)
cat >> /etc/sysctl.conf << EOF net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0 EOF sysctl -p - 配置 hosts 解析
cat >> /etc/hosts << EOF 10.XX.3.137 server 10.XX.3.138 client EOF
3. YUM 源与 FTP 服务配置
- 替换腾讯 CentOS 基础源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tencent.com/repo/centos7_base.repo yum clean all && yum makecache - 部署 vsftpd 提供 ISO 镜像共享
yum install -y vsftpd echo "anon_root=/opt/" >> /etc/vsftpd/vsftpd.conf systemctl start vsftpd && systemctl enable vsftpd - 挂载 ISO 并构建本地 YUM 仓库
mount /dev/cdrom /mnt mkdir -p /opt/paas /opt/centos cp -rvf /mnt/* /opt/paas umount /mnt yum install -y createrepo createrepo /opt/paas
二、Docker CE 安装与基础命令实战
1. 本地 / 在线安装 Docker 社区版
# 本地 ISO 安装
yum install -y docker-ce
# 启动并开机自启
systemctl start docker && systemctl enable docker
2. 核心运维命令实操
- 版本与信息查看
docker version docker info - 镜像加载与容器创建
# 加载 httpd 镜像 docker load -i /opt/paas/images/httpd-2.2.32.tar docker images # 后台启动并端口映射 docker run -d --restart=unless-stopped -p 8080:80 <镜像ID> docker ps - 访问验证与容器内操作
# Client 访问测试 curl http://server:8080 # 进入容器执行命令 docker exec -it <容器ID> bash uname -a && ip addr && ls -l exit - 容器停止与删除
docker stop <容器ID> docker rm <容器ID>
三、私有 Docker Registry 仓库搭建
1. 部署本地 Registry
# 加载 registry 镜像
docker load -i /opt/images/registry.tar
# 启动私有仓库(数据持久化 + 端口映射)
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 \
--restart=always --name registry registry:latest
# 验证服务
curl -v http://server:5000/v2
2. 配置 HTTP 非安全仓库(必需)
cat > /etc/docker/daemon.json << EOF
{
"insecure-registries": ["server:5000"]
}
EOF
systemctl daemon-reload && systemctl restart docker
3. 镜像打标与推送
docker tag httpd:2.2.32 server:5000/httpd:2.2.32
docker push server:5000/httpd:2.2.32
# 查看仓库镜像列表
curl http://server:5000/v2/_catalog
4. Client 拉取验证
# Client 同步配置 daemon.json
docker pull server:5000/httpd:2.2.32
docker images
四、Dockerfile 自定义 Redis 镜像
1. 基础环境准备
mkdir -p /root/redis && cd /root/redis
# 加载 CentOS 基础镜像并推送到私有仓
docker load -i /opt/paas/images/centos-centos7.5.1804.tar
docker tag <镜像ID> server:5000/centos
docker push server:5000/centos
2. 编写 Dockerfile 与 YUM 源
- Dockerfile 内容
FROM server:5000/centos MAINTAINER your-name RUN rm -rf /etc/yum.repos.d/* COPY ./local.repo /etc/yum.repos.d/ RUN yum install redis -y && \ sed -i 's/^bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis.conf && \ sed -i 's/^protected-mode yes/protected-mode no/g' /etc/redis.conf EXPOSE 6379 CMD ["redis-server","/etc/redis.conf"] - local.repo 本地源配置
[docker] name=docker baseurl=ftp://10.XX.3.137/paas gpgcheck=0 enabled=1
3. 构建、推送与归档
docker build -t your-redis:v1.1 .
docker tag <镜像ID> server:5000/your-redis:v1.1
docker push server:5000/your-redis:v1.1
# 导出镜像文件
docker save -o your-redis.tar your-redis:v1.1
五、Docker Compose 一键编排服务
1. 安装 Docker Compose
wget ftp://server/paas/docker-compose/v1.25.5-docker-compose-Linux-x86_64
mv v1.25.5-* /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
docker-compose -v
2. 编写 Compose 配置文件
version: '2.0'
services:
redis:
hostname: your-redis
container_name: your-redis
image: server:5000/your-redis:v1.1
ports:
- 6379:6379
restart: always
3. 启动与功能验证
docker-compose up -d
docker ps | grep redis
# 进入容器测试 Redis
docker exec -it <容器ID> redis-cli
set name your-name
get name
exit
六、关键要点总结
- 环境基石:内核转发、hosts 解析、SELinux / 防火墙是 Docker 稳定运行的前提。
- 镜像管理:私有 Registry 实现镜像私有化,
tag/push/pull是核心流程。 - 镜像构建:Dockerfile 遵循最小镜像、分层构建、固化配置原则。
- 服务编排:Compose 用 YAML 声明式定义服务,实现一键启停与依赖管理。
- 生产建议:启用 TLS 加密 Registry、配置镜像加速、限制容器资源、使用数据卷持久化。
结语
本文覆盖 CentOS 7 下 Docker 从环境初始化到服务编排的全流程,命令可直接复用、配置可直接落地,既适用于技能实训,也可作为中小企业容器化部署参考。遵循标准化流程,可大幅降低环境差异带来的故障风险,提升应用交付效率。
更多推荐



所有评论(0)