赞
踩
dockerfile是我们用来自定义构建docker镜像的脚本文件
构建步骤:
1、编写一个dockerfile文件
2、docker build 构建成为一个镜像
3、docker run运行镜像
4、docker push发布镜像(DockerHub、阿里云镜像仓库!)
1.DockerFile基础知识
1、每个保留关键字(指令)都是必须是大写字母
2、执行从上到下顺序执行
3、# 表示注释
4、每一个指令都会创建提交一个新的镜像层,并提交!
2.DcokerFile的指令
FROM # 基础镜像,一切从这里开始构建
MAINTAINER # 镜像是谁写的:姓名+邮箱
RUN # 镜像构建的时候需要运行的命令
ADD # t需要增加的文件(添加的文件回进行解压)
WORKDIR # 镜像的工作目录
VOLUME # 挂载的目录
EXPOSE # 暴露端口配置
CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD # 当构建一个被继承DockerFile这个时候就会运行ONBUILD的指令。触发指令。
COPY # 类似ADD,将我们文件拷贝到镜像中(本地文件拷贝到镜像中)
ENV # 构建的时候设置环境变量!
一个简单的DockerFile文件
FROM centos:7
MAINTAINER sywl<xxx@qq.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "-----end-----"
CMD /bin/bash
# 通过这个文件构建镜像
# 命令:docker build -f dockerfile文件路径 -t 镜像名:[tag] . (注意最后有个点,表示当前路径下)
docker build -f mydockerfile-centos -t mycentos:0.1 . #这里可以不加-f参数,但是mydockerfile-centos得改成官方默认的名字dockerfile
Successfully built 285c2064af01
Successfully tagged mycentos:0.1
#测试运行
docker run -it mycentos
容器工作目录则为/usr/local,并且有vim和ifconfig命令
#查看镜像的构建过程
docker history [镜像id]
Dockerfile中CMD与ENTRYPOINT的区别
CMD用法
#编写一个CMD用法的Dockerfile
vim Dockerfile_cmd
FROM centos:7
CMD ["ls","-a"]
#构建CMD用法的镜像
docker build -f Dockerfile_cmd -t test_cmd .
#运行镜像
docker run text_cmd
发现容器直接运行了ls -a
#但是,CDM创建的镜像在运行容器时在后面追加参数时会报错,需写完整的命令去替换
docker run test_cmd ls -a -l
ENTRYPOINT用法
#编写一个ENTRYPOINT用法的Dockerfile
vim Dockerfile_entrypoint
FROM centos:7
ENTRYPOINT ["ls","-a"]
#构建ENTRYPOINT用法的镜像
docker build -f Dockerfile_entrypoint -t test_entrypoint .
#运行镜像
docker run text_entrypoint
此处与cmd无异
#但是在运行容器追加参数时,可以正常运行
docker run test_entrypoint -l
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。