赞
踩
这里是dockerfile的小结,还有整个的一个基础docker的总结在这里:https://blog.csdn.net/hello_list/article/details/124221409,如果看到这篇一定要链接看看,有惊喜哦!
构建镜像的脚本文件;
我们发现我们从dockerhub仓库拉取的镜像都是最基础的,在使用中很不方便,我们需要一些功能,但是并没有,比如我们开启好几个centos想要ping一下网络,也是没有,这样就很不方便,那这里我们就可以自己构建镜像,添加具体自己需要的功能:
我们先来认识下DockerFile构建的命令:
就这么几个,也不用多说,我们直接上手使用,立马就会
我们在自己构建镜像前其实可以参考从官方拉取过来的tomcat镜像:
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat 9.0 402713d372bf 6 weeks ago 680MB [root@localhost ~]# docker history 402713d372bf IMAGE CREATED CREATED BY SIZE COMMENT 402713d372bf 6 weeks ago /bin/sh -c #(nop) CMD ["catalina.sh" "run"] 0B <missing> 6 weeks ago /bin/sh -c #(nop) EXPOSE 8080 0B <missing> 6 weeks ago /bin/sh -c set -eux; nativeLines="$(catalin… 0B <missing> 6 weeks ago /bin/sh -c set -eux; savedAptMark="$(apt-m… 20.2MB <missing> 6 weeks ago /bin/sh -c #(nop) ENV TOMCAT_SHA512=179af1d… 0B <missing> 6 weeks ago /bin/sh -c #(nop) ENV TOMCAT_VERSION=9.0.62 0B <missing> 6 weeks ago /bin/sh -c #(nop) ENV TOMCAT_MAJOR=9 0B <missing> 6 weeks ago /bin/sh -c #(nop) ENV GPG_KEYS=48F8E69F6390… 0B <missing> 6 weeks ago /bin/sh -c #(nop) ENV LD_LIBRARY_PATH=/usr/… 0B <missing> 6 weeks ago /bin/sh -c #(nop) ENV TOMCAT_NATIVE_LIBDIR=… 0B <missing> 6 weeks ago /bin/sh -c #(nop) WORKDIR /usr/local/tomcat 0B <missing> 6 weeks ago /bin/sh -c mkdir -p "$CATALINA_HOME" 0B <missing> 6 weeks ago /bin/sh -c #(nop) ENV PATH=/usr/local/tomca… 0B <missing> 6 weeks ago /bin/sh -c #(nop) ENV CATALINA_HOME=/usr/lo… 0B <missing> 6 weeks ago /bin/sh -c #(nop) CMD ["jshell"] 0B <missing> 6 weeks ago /bin/sh -c set -eux; arch="$(dpkg --print-… 343MB <missing> 6 weeks ago /bin/sh -c #(nop) ENV JAVA_VERSION=11.0.14.1 0B <missing> 6 weeks ago /bin/sh -c #(nop) ENV LANG=C.UTF-8 0B <missing> 6 weeks ago /bin/sh -c #(nop) ENV PATH=/usr/local/openj… 0B <missing> 6 weeks ago /bin/sh -c { echo '#/bin/sh'; echo 'echo "$J… 27B <missing> 6 weeks ago /bin/sh -c #(nop) ENV JAVA_HOME=/usr/local/… 0B <missing> 6 weeks ago /bin/sh -c set -eux; apt-get update; apt-g… 11.3MB <missing> 6 weeks ago /bin/sh -c apt-get update && apt-get install… 152MB <missing> 6 weeks ago /bin/sh -c set -ex; if ! command -v gpg > /… 19MB <missing> 6 weeks ago /bin/sh -c set -eux; apt-get update; apt-g… 10.7MB <missing> 6 weeks ago /bin/sh -c #(nop) CMD ["bash"] 0B <missing> 6 weeks ago /bin/sh -c #(nop) ADD file:e8d512b08fe2ddc6f… 124MB
我们就可以看到官方镜像的构建脚本文件,官方的这些也都是自己构建的,那我们可以去参考构建我们自己的;
我们来尝试构建一个自己的tomcat镜像:
FROM tomcat:9.0 #我这里没有从centos开始构建,这里大家可以通过centos构建,add添加外部环境的压缩的tomcat这里我直接用了官方的镜像
MAINTAINER xuexiriji<1101101100@qq.com> # 签名:姓名+邮箱
RUN apt-get update # 更新软件包
RUN apt-get install inetutils-ping # 可以使用ping命令
RUN apt-get install net-tools # 可以使用ifconfig命令
RUN apt install -y iproute2 # 可以使用ip addr命令
# 到这里我们可以发现其实就是一些自动化的脚本
CMD ["/bin/bash"]
CMD ["ls"] # 比如我们运行容器默认执行命令
# EXPOSE 8080暴露8080端口
# WORKDIR "/usr/local"
# VOLUME ["/"]需要挂载出去的路径
# LABEL 标签
# 反正就这么点命令,用到哪个去了解下就可以了
怎么使用DockerFile呢
1、编写docketFile脚本文件
2、执行脚本文件
docker build -f 脚本文件名(默认dockerfile可以省略) -t 镜像名字 .(表示当前路径)
报错:
这里的注释不能直接写在后面,不然会把注释视为参数
修改后:
我们可以看到,其实也是一行行执行脚本,同时会输出脚本执行信息
这里其实是因为这歌apt-get更新卡顿问题,再次执行一次 ,重新构建,成功;
我们可以查看下,默认的比原来的镜像要大了点儿:
3、启动容器
我们发现,最后我们并没有给到命令,所以退出就停止了
最后执行的是ls命令:
我们可以这样:
docker run -it -d -P mytomcat:1.0 catalina.sh run
可以看到我们的镜像成功运行成容器
进入容器,我们可以看到这些命令都有,可以使用ping,ip addr ,ifconfig:
我们构建好的镜像还可以通过docker push 推送到docker hub仓库中,就都可以使用了,这里我就不发布和演示了;
这里只是简单使用了下dockerfile,作者也在慢慢了解,大家也慢慢了解吧;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。