docker构建镜像

Dockerfile就是用来构建docker镜像的构建文件,是一个命令脚本
通过这个脚本可以生成镜像,镜像是一层一层的,脚本一个命令就是一层,也就是说,一个命令就是一层

**

构建步骤:
1.编写一个dockerfile文件
2.docker build 构建成为一个镜像
3.docker run 运行镜像
4.docker push 发布镜像,可以发布到dockerHub,阿里云镜像仓库

**

这个脚本文件名是自定义的,不过,一般都是dockerfile比较好一点,
dockerfile文件里面的内容,所有的指令都是大写

FROM centos
VOLUME ["volume01","volume02"]
CMD echo "---end---"
CMD /bin/bash

每一个指令都会创建提交一个新的镜像

dockerfile指令

FROM 基础镜像,一切以这里开始 MAINTAINER 镜像是谁写的,一般是姓名加邮箱
RUN 镜像构建的时候需要运行的命令
ADD 步骤,这个是我们自己加的内容,比如,往这个镜像里面加MySQL
WORKDIR 镜像的工作目录
VOLUME 挂载的目录
EXPOSE 保留端口配置
CMD 指定这个容器启动的时候要运行的命令,只有最后一个生效,这个是替代
ENTRYPOINT 指定这个容器启动的时候要运行的命令,可以追加命令 这个会与CMD弄混淆
ONBUILD 当构建一个被继承dockerfile 这个时候就会运行ONBUILD
COPY 类似ADD,将我们文件拷贝到镜像中
ENV 构建的时候设置环境变量

启动了刚刚打包的镜像后,出现了这两个目录,这个就是我在dockerfile里面挂载的目录

这两个目录在外面一定有以之对应的挂载目录,只不过,我在上面的dockerfile文件里面写的是匿名挂载,需要查看挂载详细,需要去看这个容器的详细信息

docker inspect 容器id

找到了这个

看,挂载详细找到了

制作Centos镜像

现在来制作一个自己的镜像

[root@iZwz99sm8v95sckz8bd2c4Z dockerfile]# cat mydockerfile-centos
FROM centos #基于什么镜像
MAINTAINER xiaoxin.com> #制作人,备注

ENV MYPATH /usr/local #设置环境变量
WORKDIR $MYPATH #使用环境变量,就是一启动镜像会进入这个目录

RUN yum -y install vim #安装vim
RUN yum -y install net-tools #安装net-tools

EXPOSE 80 #暴露端口

#指定容器启动的时候运行命令
CMD echo $MYPATH 
CMD echo "---end---"
CMD /bin/bash

dockerfille文件写好后,就可以开始构建镜像了

docker build -f dockerfile文件路径 -t 镜像名[:版本号] . #(这里有个小点.)

上面命令中,-t参数用来指定 image 文件的名字,后面还可以用冒号指定标签。如果不指定,默认的标签就是latest。最后的那个点表示 Dockerfile 文件所在的路径,上例是当前路径,所以是一个点。

制作成功后,还可以去查看构建详细

docker gistory 容器id

版权声明:
作者:linrux
链接:https://www.tot7.cn/technology/linux/292.html
来源:阿信博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>