导航菜单

制作镜像方式二:Dockerfile(推荐)

陆兴东 2026-06-04 64 浏览 Docker

通过声明式脚本构建,可复现、可版本控制、支持高级特性。

构建流程

# 1. 编辑 Dockerfile(D 必须大写)
vim Dockerfile

# 2. 构建镜像(末尾的点表示当前目录为构建上下文)
docker build -t nginx:v0.2 .

# 3. 运行容器
docker run -dit --name nginx -v /etc/localtime:/etc/localtime:ro -p 80:80 nginx:v0.2

Dockerfile 完整示例

# 引入基础镜像(scratch 表示空白镜像)
FROM centos:8

# 构建时执行的操作
RUN rm -rf /etc/yum.repos.d/*
RUN cat > /etc/yum.repos.d/test.repo << 'EOF'
[BaseOS]
name=CentOS-$releasever - Base
baseurl=https://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=0
enabled=1

[AppStream]
name=CentOS-$releasever - AppStream
baseurl=https://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/
gpgcheck=0
enabled=1
EOF

# 合并多条命令到一层,减少镜像层数
RUN yum clean all && yum makecache && \
    yum install nginx -y && \
    rm -f /usr/share/nginx/html/index.html && \
    echo "hello dockerfile" > /usr/share/nginx/html/index.html

# 声明容器启动后监听的端口
EXPOSE 80

# 设置默认启动指令(可被覆盖)
CMD ["nginx", "-g", "daemon off;"]