CentOS Docker镜像构建流程
在CentOS系统上构建镜像前,需先安装Docker。常见步骤如下:
sudo yum update -ysudo yum install -y yum-utils device-mapper-persistent-data lvm2sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum install -y docker-ce docker-ce-cli containerd.iosudo systemctl start docker && sudo systemctl enable dockerdocker --version(显示版本信息则说明安装成功)Dockerfile是构建镜像的核心文本文件,需包含基础镜像、维护者信息、操作指令、启动命令等内容。以下是针对CentOS的典型示例及关键说明:
# 1. 基础镜像(必须为第一行有效指令,推荐使用官方镜像)
FROM centos:7 # 或 centos:latest(根据需求选择版本)
# 2. 维护者信息(可选但建议添加)
LABEL maintainer="your-email@example.com"
# 3. 镜像操作指令
RUN yum -y update && \ # 更新系统包(建议合并为一步减少层数)
yum -y install epel-release vim wget curl net-tools && \ # 安装常用工具
yum clean all # 清理缓存(减小镜像体积)
# 4. 设置工作目录(容器内的默认路径)
WORKDIR /app
# 5. 暴露端口(声明容器内服务监听的端口,非宿主机映射)
EXPOSE 80
# 6. 启动命令(容器启动时执行的命令)
CMD ["/bin/bash"] # 交互式shell,可根据需求改为服务启动命令(如 CMD ["httpd", "-D", "FOREGROUND"])
关键规范:
RUN指令(如将yum update与yum install合并),减少镜像层数;yum clean all),避免缓存占用空间;WORKDIR替代RUN cd(避免后续指令路径混乱);yum install -y httpd-2.4.6),避免latest导致版本不一致在Dockerfile所在目录下,执行以下命令构建镜像:
docker build -t my-centos-image:1.0 . # -t 指定镜像名称及标签(如1.0),. 表示当前目录(Dockerfile所在路径)
说明:
构建完成后,通过以下命令查看本地镜像列表:
docker images
输出结果中,若存在my-centos-image:1.0(名称与标签需与构建时一致),则说明镜像构建成功
使用构建的镜像启动一个容器,验证其是否符合预期:
docker run -it --name my-centos-container my-centos-image:1.0 # -it 表示交互模式,--name 指定容器名称
验证内容:
cat /etc/centos-release(查看CentOS版本);vim --version(查看是否安装vim);EXPOSE 80),可通过curl localhost(容器内)或curl 宿主机IP(宿主机)测试端口连通性若需将镜像分享给他人或在其他环境使用,可将其推送到Docker Hub(公共仓库):
docker login # 登录Docker Hub账号(需提前注册)
docker tag my-centos-image:1.0 your-dockerhub-username/my-centos-image:1.0 # 为镜像打标签(格式:用户名/镜像名:标签)
docker push your-dockerhub-username/my-centos-image:1.0 # 推送镜像到Docker Hub
说明:推送前需确保镜像标签包含Docker Hub用户名,否则无法推送