Dockerfile用法和参数详解
Dockerfile创建镜像 – Dockerfile格式,对应的参数FROM//指定基于哪个基础镜像格式 FROM或者FROM :,比如FROM centosFROM centos:latestMAINTAINER//指定作者信息格式MAINTAIN,比如MAINTAINERamingaming@aminglinux.comR...
·
Dockerfile创建镜像 – Dockerfile格式,对应的参数
- FROM //指定基于哪个基础镜像
格式 FROM 或者 FROM :, 比如
FROM centos
FROM centos:latest
- MAINTAINER //指定作者信息
格式 MAINTAIN ,比如
MAINTAINER aming aming@aminglinux.com - RUN //镜像操作指令
格式为 RUN 或者 RUN [“executable”, “param1”, “param2”],比如
RUN yum install httpd
RUN [“/bin/bash”, “-c”, “echo hello”]
- MAINTAINER //指定作者信息
- CMD // 三种格式:
CMD [“executable”, “param1”, “param2”]
CMD command param1 param2
CMD [“param1”, “param2”]
RUN和CMD看起来挺像,但是CMD用来指定容器启动时用到的命令,只能有一条。比如
CMD [“/bin/bash”, “/usr/local/nginx/sbin/nginx”, “-c”, “/usr/local/nginx/conf/nginx.conf”]
- EXPOSE
格式为 EXPOSE […] , 比如
EXPOSE 22 80 8443
这个用来指定要映射出去的端口,比如容器内部我们启动了sshd和nginx,所以我们需要把22和80端口暴漏出去。这个需要配合-P(大写)来工作,也就是说在启动容器时,需要加上-P,让它自动分配。如果想指定具体的端口,也可以使用-p(小写)来指定。 - ENV
格式 ENV , 比如
ENV PATH /usr/local/mysql/bin:$PATH
它主要是为后续的RUN指令提供一个环境变量,我们也可以定义一些自定义的变量
ENV MYSQL_version 5.6 - ADD 格式 add
将本地的一个文件或目录拷贝到容器的某个目录里。 其中src为Dockerfile所在目录的相对路径,它也可以是一个url。比如
ADD
- EXPOSE
Dockerfile创建镜像 – Dockerfile示例(安装nginx)
mkdir /root/docker && cd /root/docker
在当地路径创建一个测试文件:
[root@es1 docker]# vim index.html
<h1>This docker test page!</h1>
vim Dockerfile (Dockerfile文件名为官方指定,不可更改名字)
FROM centos
#维护者信息
MAINTAINER liaochao liaochao@i31.com
#相关的操作
RUN rpm -ivh https://mirrors.aliyun.com/centos/7.5.1804/extras/x86_64/Packages/epel-release-7-9.noarch.rpm
RUN yum install nginx -y
##添加文件,默认跟dockerfile同级目录
ADD index.html /usr/share/nginx/html/index.html
#修改参数
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
#设置开放端口
EXPOSE 80
#执行命令
CMD ["nginx"]
此时我们写完了开始进行bulid
docker build -t chao/nginx:v1 /root/docker/
耐心等待运行完成,
[root@es1 docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
chao/nginx v1 664da2f4b97d About a minute ago 417MB
我们创建一个容器进行测试
[root@es1 docker]# docker run -itd --rm --name test chao/nginx:v1
4a91a0081fdae992cba2279573c86ac7d01f895d4240f3c2ff4cb16d7db4c92c
[root@es1 docker]# curl 172.17.0.2
<h1>This docker test page!</h1>
此时可以看见我们定义的测试文件正常打印出来。
更多推荐
已为社区贡献2条内容
所有评论(0)