700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Docker_使用DockerFile监本构建镜像

Docker_使用DockerFile监本构建镜像

时间:2021-02-06 23:30:32

相关推荐

Docker_使用DockerFile监本构建镜像

使用DockerFile监本构建镜像

DockerFile是由一系列命令和参数构建的脚本

是一个镜像的描述版本

build 参数详解

DockerFile 创建容器卷

创建dockerfile文件

FROM centosVOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]CMD echo "finished,-----success1"CMD /bin/bash

DockerFile生成镜像

切记有点,如果本地有centos会快很多,不然会从远程拉取在

docker build -f d:/Docker/DockerFile -t zql/centos1 .

创建之后会有对应的宿主机的共享文件夹对应 查看

docker inspect 容器ID

“Volumes”:这个里面会有信息

DockerFile 命令

FROM 继承镜像

基础镜像,当前新镜像是基于哪个镜像的

MAINTAINER 镜像作者

镜像维护者的姓名和邮箱地址

RUN 执行shell命令

容器构建时候需要运行的命令,执行具体的shell 命令

EXPOSE 暴露端口

当前容器对外暴露的端口

WORKDIR 工作目录

指定在创建容器后,终端默认登陆的进来工作目录,一个逻辑点,默认进入目录

ENV 环境变量

用来构建镜像过程中的环境变量

ADD 复制文件&解压

将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL解压tar压缩包

COPY 复制文件

类似ADD,拷贝文件和目录到镜像中

将从构建上线文目录中<原路径>的文件、目录复制到新一层的镜像内的<目标路径>位置

COPY src destCOPY ["src","dest"]

VOLUME 共享目录

容器数据卷,用于数据保存和持久化工作。和上级下级镜像共享文件夹

CMD 执行shell(最后一个)

指定一个容器启动时候要运行的命令

DockerFIle中可以有多个CMD指令,但是只有最后一个生效,CMD会被docker run之后的参数替换

ENTRYPOINT 执行shell

指定一个容器启动时要运行的命令

ENTRPPOINT的目的和CMD一样,都是在指定容器启动程序及参数,不会覆盖,追加模式

ONBUILD 父镜像触发器

当构建一个被继承的Dockerfile时运行命令,父镜像在被子镜像继承后父镜像的onbuild被触发

创建DockerFile

FROM centosRUN yum install -y curlENTRYPOINT ["curl","-s","]ONBUILD RUN echo 'father---onbuild'

生成images

docker build -f DockerFile3 -t my_father_centos .

创建子DockerFile

FROM my_father_centosRUN yum install -y curlENTRYPOINT ["curl","-s","]

生成子images

docker build -f DockerFile4 -t my_son_centos .

案例

base镜像(search)Docker Hub中99%的镜像都是通过在base镜像中安装和配置需要的软件构建出来的

案例解析

精简版的centos 只是拥有内核,没有其他,目的实现有其他shell的

自定义mycentos

登陆后的默认路径VIM 编辑器查看网络配置ifconfig

编写DockerFile

FROM centosENV MYPATH /usr/localWORKDIR $MYPATHRUN yum -y install vim RUN yum -y install net-toolsEXPOSE 80CMD echo $MYPATHCMD echo 'ok'CMD /bin/bash

DockerFile build 镜像

docker build -f DockerFile2 -t mycentos:1.3 .

CMD 可以执行,但是解析不了shell命令,只能是最后一个

镜像构建历史

docker history 镜像ID或者名称

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。