13、docker-dockerfile-自制镜像

dockerfile是用来构建docker镜像的文件!基于命令参数脚本

实现:

  ·编写一个dockerfile文件

  ·docker build 构成一个镜像文件

  ·docker run 运行镜像

  ·docker  push    发布镜像(可以发布到DockerHub、阿里云镜像仓库)

 

============================================DockerFile构建过程=======================================

基础知识:

  ·每个保留关键字(指令)都是大写字母

  ·执行从上到下

  · #表示注释

  ·每一个指令都会创建一个新的镜像层,并提交

 

         

   ·dockerfile是面向开发的,如果要发布项目就需要左镜像,就要编写dockerfile文件

 

DockerFile:构建文件,定义了一切步骤,源代码

DockerImages:通过DockerFile构建文件生成的镜像,最终发布产品

Docker容器:容器就是镜像运行起来的提供的服务器

=====================================================

DockerFile的指令

  ·FROM        #指定基础镜像,一切从这里开始

  ·MAINTAINER     #镜像是谁写的:姓名+邮箱

  ·RUN         #镜像构建的时候需要运行的命令、再命令前面加上RUN即可

  ·ADD         #添加内容(如tomcat的压缩包),copy文件,会自动解压

  ·WORKDIR       #设置镜像的工作目录

  ·VOLUME         #设置卷,挂载主机的目录

  ·EXPOSE       #指定对外的端口(暴露的端口)

  ·RUN         #指定容器启动后要做的事情

  ·CMD         #指定容器启动的时候要运行的命令、只有最后一个会生效、可被替代

  ·ENTRPOINT     #指定容器启动的时候要运行的命令,可以追加命令

  ·ONBUILD       #当构建一个被继承DockerFile  这个时候会运行  ONBUILD  的指令   出发指令

  ·COPY         #类似ADD  将我们的文件拷贝到镜像中

  ·ENV          #构建的时候设置环境变量

  ·USER          #用于指定用户、1切换用户

  

 

========================================================================================

测试:

1、编写dockerfile文件 

  ·创建目录放dockerfile脚本文件 

  ·vim mydockerfile-centos

  ·建议先下载centos:7镜像、在脚本里就可以直接调取  FROM centos:7、有时候版本太高的反而有问题

#以centos为基础镜像
FROM
centos:7
#镜像的作者 MAINTAINER xiaoxin
<303977143@qq.com> #设置登录的目录、将这个目录赋值给MYPATH ENV MYPATH /usr/local #工作目录 WORKDIR $MYPATH #运行的指令 RUN yum install -y vim RUN yum install -y net-tools #暴露端口 EXPOSE 80 CMD echo $MYPATH CMD echo "---end---" #启动后进入的命令行 CMD /bin/bash

2、通过dockerfile文件来构建镜像

docker build -f ./mydockerfile-centos -t mycentos:1.0 .

注意:·这里由于上面FROM centos   直接用了官方的最新版本的centos 、所以在执行的时候报错了、如下

  

 解决办法:

  ·先下载docker  pull  centos:7  指定版本的centos 7  ,然后FROM centos:7  指定版本去做镜像即可

 

3、运行生成的镜像

  ·查看镜像:docker   images

  ·运行镜像:docker  run -it  mycentos:1.0

  ·查看确实是直接到了工作目录里  

    ··ENV MYPATH /usr/local

    ··WORKDIR $MYPATH

             

 4、测试命令

  ·ifconfig

  ·vim  test

 

5、查看镜像的建立过程、就是查看dockerfile文件内容

  docker  history  容器id

 

posted @ 2024-06-18 10:23  little小新  阅读(2)  评论(0编辑  收藏  举报