当前位置: 首页> 文旅> 旅游 > 不用vip也能看的黄台的app_怎么做宣传_重庆seo优_汕头seo网站建设

不用vip也能看的黄台的app_怎么做宣传_重庆seo优_汕头seo网站建设

时间:2025/8/10 13:13:17来源:https://blog.csdn.net/pilot_speed/article/details/144977731 浏览次数:0次
不用vip也能看的黄台的app_怎么做宣传_重庆seo优_汕头seo网站建设

Docker学习,理论知识,第三天–DockerFile

一、DockerFile解析

1、DockerFile是什么

DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。

构建三步骤:1、手动编写一个DockerFile文件2、docker build,获得一个自定义的镜像3、docker run

2、DockerFile构建过程解析

基础知识:2.1》、每条保留字指令都必须为大写字母,且后面要跟随至少一个参数2.2》、知名按照从上到下,顺序执行2.3》、#表示注释2.4》、每条指令都会创建一个新的镜像层,并对镜像进行提交大致执行流程:2.1》、docker从基础镜像运行一个容器(一定会有一个基础镜像)2.2》、执行一条指令并对容器做出修改2.3》、执行类似docker commit的操作提交一个新的镜像层2.4》、docker再基于刚提交的镜像运行一个新容器2.5》、执行dockerfile中的下一条指令到所有制令都执行完成

①、dockerfile是软件原材料build>②、docker镜像是软件的交付品==run=>③、docker容器则是软件的一个运行状态

3、DockerFile保留字指令

3.1》、FROM	基础镜像,当前新的镜像是基于那个镜像的FROM scratch
3.2》、MAINTAINER 镜像维护者的姓名和邮箱地址MAINTAINER The CentOs Project <james_taylor@126.com>
3.3》、RUN  容器构建的时候需要运行的命令RUN groupadd -r redis && useradd -r -g redis redis 
3.4》、EXPOSE  当前容器对外暴露出的端口EXPOSE 6379
3.5》、WORKDIR  制定在创建容器后,终端默认登录进来的工作目录,一个落脚点WORKDIR	/data
3.6》、ENV  用来在构建镜像的过程中设置环境变量ENV  MY_PATH /usr/mytest(这个环境变量可以在后续的任何RUN指令中使用,这就如同在命令前制定了环境变量前缀一样,也可以在其他指令中直接使用这些环境变量,如 WORKDIR $MY_PATH)3.7》、ADD  将宿主机目录下的文件拷贝进镜像且ADD命令自动处理URL和解压tar压缩包 ADD  centos-7-docker.tar.xz    (COPY直接拷贝,ADD拷贝+解压缩)
3.8》、COPY  类似ADD,拷贝文件和目录到镜像中             COPY src  desc  或 COPY["src","desc"]
3.9》、VOLUME 容器数据卷,用于数据保存和持久化[HOST和容器目录文件映射]VOLUME  myFile:myFileContainer
3.10》、CMD  指定一个容器启动时要运行的命令(DockerFile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换)shell格式: CMD <命令>exec格式:  CMD ["可执行文件","参数1","参数2"](即 docker run -it centos /bin/bash 会覆盖dockerfile文件中的CMD 命令)
3.11》、ENTRYPOINT 指定一个容器启动时要运行的命令(EBTRYPOINT的目的和CMD一样,都是在指定容器启动程序及参数)(和CMD不同的是,CMD会被覆盖,ENTRYPOINT会被追加)
3.12》、ONBUILD  当构建一个被继承的DockerFile时运行命令,父镜像在被子继承后,父镜像的onbuild被触发ONBUILD RUN echo "hello...world"(类似于触发器,只要有子镜像继承了‘我’,就会处罚这条命令)
3.13》、LABEL 标签

4、DockerFile自定义镜像myCentOS

Base镜像scratch,DockerHub中99%的镜像都是通过在base镜像中安装和配置需要的软件构建出来的

需求:修改centos登录后的默认路径、支持vim编辑器、支持ip addr查看网络配置代码:4.1、创建mycentos  DockerFile文件FROM centos  ##本地centos镜像MAINTAINER mycentosmlee<james_taylor@126.com> ##作者介绍ENV  MYPATH /usr/local ##设置变量WORKDIR $MYPATH  ##默认登录后进入tmp路径RUN yum -y install vim  ##安装vimRUN yum -y install net-tools ##安装网络适配器EXPOSE 80  ##对外暴露端口80CMD echo $MYPATH  ##输出 mypathCMD echo "success.....ok" ##输出 success。。。okCMD /bin/bash ##运行/bin/bash4.2、构建  docker build -f dockerfile文件路径 -t 新镜像的名字:TAG .  (TAG版本号.当前目录)4.3、docker images 查看新创建的镜像4.4、docker run -it mycentos:1.3   (检测目录  ip addr  vim)4.5、docker history 镜像ID      列出镜像的变更历史

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5、DockerFile 的 CMD和ENTERPOINT命令案例

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

回忆:
3.10》、CMD  指定一个容器启动时要运行的命令(DockerFile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换)shell格式: CMD <命令>exec格式:  CMD ["可执行文件","参数1","参数2"](即 docker run -it centos /bin/bash 会覆盖dockerfile文件中的CMD 命令)
3.11》、ENTRYPOINT 指定一个容器启动时要运行的命令(EBTRYPOINT的目的和CMD一样,都是在指定容器启动程序及参数)(和CMD不同的是,CMD会被覆盖,ENTRYPOINT会被追加)

案例:

CMD

在hub.docker.com中tomcat dockerfile文件的最后有一句话:CMD ["catalina.sh", "run"]   ##启动tomcat
我们测试  docker run -it tomcat ls -l  会发现列出了/usr/local/tomcat的目录列表
docker ps 发现tomcat没有运行,证明CMD ["catalina.sh", "run"]没有被执行,而是执行了ls -l

ENTERPOINT

先测试下这个:
curl  http://ip.cn  会将该网址的页面信息输出
curl  -s http://ip.cn
curl  -s -i http://ip.cn1)、创建myCurlDockerFile文件,内容:FROM centosRUN yum -y install curlCMD ["curl","-s","http://ip.cn"]
2)、build文件生成镜像docker build -f myCurlDockerFile -t myip .
3)、run镜像docker run -it myip
4)、测试 curl -s -i http://ip.cn
5)、测试 增加一个 -i 的参数docker run -it myip -i类似 在CMD ["curl","-s","http://ip.cn"]后增加了一行CMD -i
6)、将CMD 变成ENTERPOINTFROM centosRUN yum -y install curlENTERPOINT ["curl","-s","http://ip.cn"]
7)、build文件生成镜像docker build -f myCurlDockerFile2 -t myip2 .
8)、run镜像docker run -it myip2
9)、run镜像docker run -it myip2 -i类似在ENTERPOINT ["curl","-s","http://ip.cn"]中增加了参数ENTERPOINT ["curl","-s","-i","http://ip.cn"]

6、DockerFile的ONBUILD命令案例

3.12》、ONBUILD  当构建一个被继承的DockerFile时运行命令,父镜像在被子继承后,父镜像的ONBUILD被触发

案例:

1、创建myonbuild文件FROM centosRUN yum -y install curlENTERPOINT ["curl","-s","http://ip.cn"]ONBILD RUN echo "hello...world"
2、build生成镜像并rundocker build -f myonbuild -t myip_father .docker imagesdocker run myip_father
3、创建myonbuild2文件FROM myip_fatherRUN yum -y install curlCMD ["curl","-s","http://ip.cn"]
4、build生成镜像并rundocker build -f myonbuild -t myip_son .docker imagesdocker run myip_son

在这里插入图片描述

关键字:不用vip也能看的黄台的app_怎么做宣传_重庆seo优_汕头seo网站建设

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: