当前位置:   article > 正文

DockerFile简单使用_dockerfile怎么运行

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    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

我们就可以看到官方镜像的构建脚本文件,官方的这些也都是自己构建的,那我们可以去参考构建我们自己的;

我们来尝试构建一个自己的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 标签
# 反正就这么点命令,用到哪个去了解下就可以了
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

怎么使用DockerFile呢

1、编写docketFile脚本文件

2、执行脚本文件

docker build -f 脚本文件名(默认dockerfile可以省略) -t 镜像名字 .(表示当前路径)
  • 1

报错:

在这里插入图片描述

这里的注释不能直接写在后面,不然会把注释视为参数

修改后:

在这里插入图片描述

我们可以看到,其实也是一行行执行脚本,同时会输出脚本执行信息

在这里插入图片描述

这里其实是因为这歌apt-get更新卡顿问题,再次执行一次 ,重新构建,成功;

在这里插入图片描述

我们可以查看下,默认的比原来的镜像要大了点儿:

在这里插入图片描述

3、启动容器

我们发现,最后我们并没有给到命令,所以退出就停止了
在这里插入图片描述

最后执行的是ls命令

在这里插入图片描述

我们可以这样:

docker run -it -d -P mytomcat:1.0 catalina.sh run
  • 1

可以看到我们的镜像成功运行成容器

在这里插入图片描述

进入容器,我们可以看到这些命令都有,可以使用ping,ip addr ,ifconfig

在这里插入图片描述

我们构建好的镜像还可以通过docker push 推送到docker hub仓库中,就都可以使用了,这里我就不发布和演示了;

这里只是简单使用了下dockerfile,作者也在慢慢了解,大家也慢慢了解吧;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/565142
推荐阅读
相关标签
  

闽ICP备14008679号