DockerFile简单使用

DockerFile

前言

这里是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,作者也在慢慢了解,大家也慢慢了解吧;

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值