什么是Dockerfile
所谓的Dockefile是构建镜像的一种方式。docker daemon守护进程可以基于Dockefile的指令构建一个新的镜像。
Dockerfile和镜像的区别
镜像本身是一个可以直接启动为容器的只读目录结构,而容器时一个读写的目录结构,用户看到的是镜像的目录结构和容器的目录结构的合并merged展示层。
而Dockefile本身并不是镜像,我们可以使用”docker image build”基于该文件进行编译生成镜像。
优点
1.可以利用缓存技术;
2.修改比较方便;
3.占用体积较小;
4.传输方便
dockerfile 常用命令
Dockefile的常用指令(16+)
– FROM
– MAINTAINER
– LABEL
– ADD
– COPY
– EXPOSE
– CMD
– ENTRYPOINT
– VOLUME
– HEALTHCHECK
– RUN
– ONBUILD
– ENV
– ARG
– USER
– SHELL
dockerfile文件
# 指定基础镜像,表示基于哪个镜像启动新的容器
FROM alpine# 声明作者信息
MAINTAINER JasonYin www.oldboyedu.com linux94 y1053419035@qq.com# 在容器中运行命令
RUN sed -i ‘s#https\?://dl-cdn.alpinelinux.org/alpine#https://mirrors.tuna.tsinghua.edu.cn/alpine#g’ /etc/apk/repositories && \
apk add nginx && \
mkdir /usr/share/nginx/html && \
echo www.oldboyedu.com > /usr/share/nginx/html/index.html && \
rm -rf /var/cache/# 拷贝本地文件到容器的指定路径
COPY oldboyedu-nginx.conf /etc/nginx/http.d/default.conf# 指定启动指令
CMD [“nginx”,”-g”,”daemon off;”]
编译镜像
docker image build -t test:v1.0 .
启动自定义的镜像
docker run –name web -dp 80:80 test:v1.0