本文简单的说明如何基于 docker 中官方的 alpine 镜像搭建运行 nginx 的镜像。

本次演示以 docker 中的 alpine 3.8 镜像作为基础镜像。

1
FROM alpine:3.8

为加快国内的构建速度,将 alpine 的源改为国内的地址。

1
2
RUN echo http://mirrors.ustc.edu.cn/alpine/v3.8/main > /etc/apk/repositories && \
echo http://mirrors.ustc.edu.cn/alpine/v3.8/community >> /etc/apk/repositories

然后直接使用 alpine 的包管理工具 apk 安装 nginx 的二进制分发包

1
RUN apk add nginx

注意,在 apk 安装 nginx 中缺失了一个步骤,会导致安装好的 nginx 无法启动运行,因此需要手动完成下一步

建立一个名为 /run/nginx 的目录

1
RUN mkdir /run/nginx

最后,设置容器启动时运行的命令:

1
CMD ["nginx", "-g", "daemon off;"]

最后奉上完整的 Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
FROM alpine:3.8

RUN echo http://mirrors.ustc.edu.cn/alpine/v3.8/main > /etc/apk/repositories && \
echo http://mirrors.ustc.edu.cn/alpine/v3.8/community >> /etc/apk/repositories

RUN apk update

RUN apk add nginx

RUN mkdir /run/nginx

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

保存以后,在 Dockerfile 文件所在的目录中执行:

1
docker build -t="my-nginx:1.0" .

构建镜像。