1.dockerfile常用指令
(1) FROM
指定base镜像,如果本地不存在会从远程仓库下载。
(2) MAINTAINER
设置镜像的作者,比如用户邮箱等。
(3) COPY
把文件从build context复制到镜像
支持两种形式:COPY src dest 和 COPY [“src”, “dest”]
src必须指定build context中的文件或目录
示例:
[root@server1 docker]# vim index.html
www.sun.com
[root@server1 docker]# vim Dockerfile
FROM busybox
RUN touch file1
COPY index.html /
查看
[root@server1 docker]# docker images
[root@server1 docker]# docker history demo:v1
进入交互式页面,查看刚才指令是否执行成功
[root@server1 docker]# docker run -it --rm demo:v1
(4)ADD
用法与COPY类似,不同的是src可以是归档压缩文件,文件会被自动解压到dest,也可以自动下载URL并拷贝到镜像:
示例:
[root@server1 docker]# tar zcf test.tar.gz /etc
[root@server1 docker]# vim Dockerfile
FROM busybox
RUN touch file1
COPY index.html /
ADD test.tar.gz /mnt
[root@server1 docker]# docker build -t demo:v2 .
查看效果:
[root@server1 docker]# docker images
[root@server1 docker]# docker history demo:v2
[root@server1 docker]# docker run -it --rm demo:v2
(4) ENV
设置环境变量,变量可以被后续的指令使用:
ENV HOSTNAME sevrer1
示例:
[root@server1 docker]# vim Dockerfile
FROM busybox
RUN touch file1
COPY index.html /
ADD test.tar.gz /mnt
ENV HOSTNAME server1
[root@server1 docker]# docker build -t demo:v3 .
查看命令和之前相同,这里直接验证最后结果
(5) EXPOSE
如果容器中运行应用服务,可以把服务端口暴露出去:
EXPOSE 80
[root@server1 docker]# vim Dockerfile
FROM busybox
RUN touch file1
COPY index.html /
ADD test.tar.gz /mnt
ENV HOSTNAME server1
EXPOSE 80
[root@server1 ~]# docker run -d --name demo -P nginx
[root@server1 ~]# docker inspect demo
随机指