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

每一个指令都会创建提交一个新的镜像
docker构建镜像_第1张图片

dockerfile指令

docker构建镜像_第2张图片

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

启动了刚刚打包的镜像后,出现了这两个目录,这个就是我在dockerfile里面挂载的目录
docker构建镜像_第3张图片
这两个目录在外面一定有以之对应的挂载目录,只不过,我在上面的dockerfile文件里面写的是匿名挂载,需要查看挂载详细,需要去看这个容器的详细信息

docker inspect 容器id

找到了这个
docker构建镜像_第4张图片
看,挂载详细找到了

制作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

docker构建镜像_第5张图片

你可能感兴趣的:(linux,docker,容器,运维)