Dockerfile(七)

dockerfile介绍

Dockerfile 是用来构建docker镜像的脚本文件

构建步骤

  1. 创建dockerfile文件
  2. docker build构建成为一个镜像
  3. docker run 运行镜像
  4. docker push 发布镜像

镜像对应的版本标签,点击进去都有dockerfile构建镜像脚本文件

Dockerfile构建过程

基础知识:

  • 每个保留关键字(指令)都必须是大写字母
  • 命令的执行是自上而下,按照顺序执行的
  • “#” 表示注释
  • 每一个指令都会创建一个镜像层,并提交

Dockerfile是面向开发的,需要开发人员编写脚本文件,作镜像,然后发布
Docker镜像逐渐成为企业的交付标准,必须掌握
步骤:开发,部署,运维,缺一不可
Dockerfile:构建的脚本文件,定义了整个构建的步骤和所需要的应用
DockerImage:通过dockerfile构建生成的镜像,
DockerContainer:容器就是镜像运行起来提供服务的

Dockerfile指令

FROM			# Dockerfile除了注释第一行必须是FROM,FROM后面跟镜像名称,代表我们要基于那个基础镜像来构建我们的容器
MAINTAINER		# 镜像作者 姓名+邮箱
RUN				# RUN后面跟一个具体命令
ADD				# 拷贝本机文件或者远程文件到镜像内,会自动解压
WORKDIR			# 工作目录
VOLUME			# 挂载的目录
EXPOSE			# 指定容器监听的端口,格式为[port]/tcp或者[udp]/udp
CMD				# 指定容器运行时需要运行的命令,只有最后一个生效,可被替代
ENTRYPOINT		# 指定容器运行时需要运行的命令,可以追加命令
ONBUILD			# 
COPY			# 将本机文件Copy到镜像中
ENV				# 构建时,设置环境变量

img

实战测试

基础镜像:scratch,Docker hub中几乎所有的镜像都是从这个基础镜像,然后所需要的应用和配置来进行构建的

测试官方镜像centos,发现好多基础命令不支持

[root@izuf6akcgealirj602cmxsz ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
a1d0c7532777: Pull complete 
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
[root@izuf6akcgealirj602cmxsz ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        latest    3218b38490ce   7 weeks ago    516MB
centos       latest    5d0da3dc9764   5 months ago   231MB
[root@izuf6akcgealirj602cmxsz ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED       STATUS                   PORTS                               NAMES
e0039750e206   mysql     "docker-entrypoint.s…"   3 hours ago   Exited (1) 2 hours ago                                       slave-mysql
3ced17650858   mysql     "docker-entrypoint.s…"   3 hours ago   Up 3 hours               33060/tcp, 0.0.0.0:3310->3306/tcp   master-mysql
[root@izuf6akcgealirj602cmxsz ~]# docker run -it centos /bin/bash
[root@1655ad8705b2 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@1655ad8705b2 /]# ll
bash: ll: command not found
[root@1655ad8705b2 /]# clear
bash: clear: command not found
[root@1655ad8705b2 /]# ifconfog
bash: ifconfog: command not found
[root@1655ad8705b2 /]# ifconfig
bash: ifconfig: command not found
[root@1655ad8705b2 /]# vim
bash: vim: command not found
[root@1655ad8705b2 /]#

创建自己的CentOS,增加vim,net-tools

[root@izuf6akcgealirj602cmxsz dockerfile]# vim dockerfile 
[root@izuf6akcgealirj602cmxsz dockerfile]# cat dockerfile 
# 来自那个基础镜像
FROM centos:7
# 作者
MAINTAINER jgenius<496875938@qq.com>

# 执行命令
RUN yum update -y
RUN yum -y install vim
RUN yum -y install net-tools
# 设置环境变量
ENV MYPATH /usr/local

# 容器监听端口
EXPOSE 80

# 工作目录
WORKDIR $MYPATH	

CMD echo "构建结束"

CMD /bin/bash


# 构建自己的镜像
[root@izuf6akcgealirj602cmxsz dockerfile]# docker build -f dockerfile -t mycentos .
Sending build context to Docker daemon  2.048kB
Step 1/10 : FROM centos:7
7: Pulling from library/centos
2d473b07cdd5: Pull complete 
......

Installed:
  net-tools.x86_64 0:2.0-0.25.20131004git.el7                                   

Complete!
Removing intermediate container 146583947b92
 ---> e895df1a89a1
Step 6/10 : ENV MYPATH /usr/local
 ---> Running in da8715510b81
Removing intermediate container da8715510b81
 ---> f4e715bf7e3e
Step 7/10 : EXPOSE 80
 ---> Running in 0a082b75e52c
Removing intermediate container 0a082b75e52c
 ---> 3f1791a85425
Step 8/10 : WORKDIR $MYPATH
 ---> Running in 07fee72e35b8
Removing intermediate container 07fee72e35b8
 ---> 2975e4cbfdcc
Step 9/10 : CMD echo "构建结束"
 ---> Running in e6faaf350851
Removing intermediate container e6faaf350851
 ---> 8e84d89876fb
Step 10/10 : CMD /bin/bash
 ---> Running in 5601875bf4b2
Removing intermediate container 5601875bf4b2
 ---> ce7606870899
Successfully built ce7606870899
Successfully tagged mycentos:latest

# 查看自己构建的镜像
[root@izuf6akcgealirj602cmxsz ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
mycentos     latest    ce7606870899   11 minutes ago   860MB
centos       7         eeb6ee3f44bd   5 months ago     204MB

测试运行自己构建的centos

[root@izuf6akcgealirj602cmxsz dockerfile]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
mycentos     latest    ce7606870899   25 minutes ago   860MB
centos       7         eeb6ee3f44bd   5 months ago     204MB
[root@izuf6akcgealirj602cmxsz dockerfile]# docker run -it mycentos /bin/bash
[root@b1b8dca83a94 local]# pwd
/usr/local     # 设置了工作目录,直接进入工作目录了
[root@b1b8dca83a94 local]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

发现自己构建的centos,有了部分基础的命令了

查看镜像构建过程日志

[root@izuf6akcgealirj602cmxsz dockerfile]# docker history mycentos
IMAGE          CREATED          CREATED BY                                      SIZE      COMMENT
ce7606870899   31 minutes ago   /bin/sh -c #(nop)  CMD ["/bin/sh" "-c" "/bin…   0B        
8e84d89876fb   31 minutes ago   /bin/sh -c #(nop)  CMD ["/bin/sh" "-c" "echo…   0B        
2975e4cbfdcc   31 minutes ago   /bin/sh -c #(nop) WORKDIR /usr/local            0B        
3f1791a85425   31 minutes ago   /bin/sh -c #(nop)  EXPOSE 80                    0B        
f4e715bf7e3e   31 minutes ago   /bin/sh -c #(nop)  ENV MYPATH=/usr/local        0B        
e895df1a89a1   31 minutes ago   /bin/sh -c yum -y install net-tools             156MB     
d4e8564a7004   31 minutes ago   /bin/sh -c yum -y install vim                   210MB     
370bc58dd806   31 minutes ago   /bin/sh -c yum update -y                        290MB     
c5561827c0a8   34 minutes ago   /bin/sh -c #(nop)  MAINTAINER jgenius<496875…   0B        
eeb6ee3f44bd   5 months ago     /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B        
<missing>      5 months ago     /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B        
<missing>      5 months ago     /bin/sh -c #(nop) ADD file:b3ebbe8bd304723d4…   204MB

CMD 和 ENTRYPOINT 的区别

CMD				# 指定容器运行时需要运行的命令,只有最后一个生效,可被替代
ENTRYPOINT		# 指定容器运行时需要运行的命令,可以追加命令

测试CMD

# 编写构建CMD镜像脚本
[root@izuf6akcgealirj602cmxsz dockerfile]# vim dockerfile-cmd
[root@izuf6akcgealirj602cmxsz dockerfile]# cat dockerfile-cmd 
FROM centos
CMD ["ls","-l"]

# 构建CMD镜像
[root@izuf6akcgealirj602cmxsz dockerfile]# docker build -f dockerfile-cmd -t cmd_test .
Sending build context to Docker daemon  3.072kB
Step 1/2 : FROM centos:7
 ---> eeb6ee3f44bd
Step 2/2 : CMD ["ls","-l"]
 ---> Running in 1cc5d0601f6f
Removing intermediate container 1cc5d0601f6f
 ---> e005683c7fdd
Successfully built e005683c7fdd
Successfully tagged cmd_test:latest

# 运行镜像,发现 ls -a 命令生效了
[root@izuf6akcgealirj602cmxsz dockerfile]# docker run cmd_test
.
..
.dockerenv
anaconda-post.log
bin
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

# 追加命令运行容器,发现在CMD情况下 追加 -l 命令,替换了CMD["ls","-a"], -l 不是一个命令,导致报错了 
[root@izuf6akcgealirj602cmxsz dockerfile]# docker run cmd_test -l
docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "-l": executable file not found in $PATH: unknown.
ERRO[0000] error waiting for container: context canceled 

#CMD情况下,追加命令需要 追加完整命令
[root@izuf6akcgealirj602cmxsz dockerfile]# docker run cmd_test ls -al
total 64
drwxr-xr-x   1 root root  4096 Feb 15 06:41 .
drwxr-xr-x   1 root root  4096 Feb 15 06:41 ..
-rwxr-xr-x   1 root root     0 Feb 15 06:41 .dockerenv
-rw-r--r--   1 root root 12114 Nov 13  2020 anaconda-post.log
lrwxrwxrwx   1 root root     7 Nov 13  2020 bin -> usr/bin
drwxr-xr-x   5 root root   340 Feb 15 06:41 dev
drwxr-xr-x   1 root root  4096 Feb 15 06:41 etc
drwxr-xr-x   2 root root  4096 Apr 11  2018 home
lrwxrwxrwx   1 root root     7 Nov 13  2020 lib -> usr/lib
lrwxrwxrwx   1 root root     9 Nov 13  2020 lib64 -> usr/lib64
drwxr-xr-x   2 root root  4096 Apr 11  2018 media
drwxr-xr-x   2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x   2 root root  4096 Apr 11  2018 opt
dr-xr-xr-x 118 root root     0 Feb 15 06:41 proc
dr-xr-x---   2 root root  4096 Nov 13  2020 root
drwxr-xr-x  11 root root  4096 Nov 13  2020 run
lrwxrwxrwx   1 root root     8 Nov 13  2020 sbin -> usr/sbin
drwxr-xr-x   2 root root  4096 Apr 11  2018 srv
dr-xr-xr-x  13 root root     0 Jan 27 07:32 sys
drwxrwxrwt   7 root root  4096 Nov 13  2020 tmp
drwxr-xr-x  13 root root  4096 Nov 13  2020 usr
drwxr-xr-x  18 root root  4096 Nov 13  2020 var

测试ENTRYPOINT

# 编写构建ENTRYPOINT镜像脚本
[root@izuf6akcgealirj602cmxsz dockerfile]# vim dockerfile-entrypoint
[root@izuf6akcgealirj602cmxsz dockerfile]# cat dockerfile-entrypoint 
FROM centos:7
ENTRYPOINT ["ls","-a"]

# 构建ENTRYPOINT镜像
[root@izuf6akcgealirj602cmxsz dockerfile]# docker build -f dockerfile-entrypoint -t entrypoint .
Sending build context to Docker daemon  4.096kB
Step 1/2 : FROM centos:7
 ---> eeb6ee3f44bd
Step 2/2 : ENTRYPOINT ["ls","-a"]
 ---> Running in 803df74bd9db
Removing intermediate container 803df74bd9db
 ---> e782e758f8f2
Successfully built e782e758f8f2
Successfully tagged entrypoint:latest

# 运行测试,在这一步发现和CMD没有任何区别
[root@izuf6akcgealirj602cmxsz dockerfile]# docker run entrypoint
.
..
.dockerenv
anaconda-post.log
bin
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

# 追加命令运行容器,发现是可以直接将所需的命令参数追加到ENTRYPOINT后面去执行的
[root@izuf6akcgealirj602cmxsz dockerfile]# docker run entrypoint -l
total 64
drwxr-xr-x   1 root root  4096 Feb 15 07:17 .
drwxr-xr-x   1 root root  4096 Feb 15 07:17 ..
-rwxr-xr-x   1 root root     0 Feb 15 07:17 .dockerenv
-rw-r--r--   1 root root 12114 Nov 13  2020 anaconda-post.log
lrwxrwxrwx   1 root root     7 Nov 13  2020 bin -> usr/bin
drwxr-xr-x   5 root root   340 Feb 15 07:17 dev
drwxr-xr-x   1 root root  4096 Feb 15 07:17 etc
drwxr-xr-x   2 root root  4096 Apr 11  2018 home
lrwxrwxrwx   1 root root     7 Nov 13  2020 lib -> usr/lib
lrwxrwxrwx   1 root root     9 Nov 13  2020 lib64 -> usr/lib64
drwxr-xr-x   2 root root  4096 Apr 11  2018 media
drwxr-xr-x   2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x   2 root root  4096 Apr 11  2018 opt
dr-xr-xr-x 119 root root     0 Feb 15 07:17 proc
dr-xr-x---   2 root root  4096 Nov 13  2020 root
drwxr-xr-x  11 root root  4096 Nov 13  2020 run
lrwxrwxrwx   1 root root     8 Nov 13  2020 sbin -> usr/sbin
drwxr-xr-x   2 root root  4096 Apr 11  2018 srv
dr-xr-xr-x  13 root root     0 Jan 27 07:32 sys
drwxrwxrwt   7 root root  4096 Nov 13  2020 tmp
drwxr-xr-x  13 root root  4096 Nov 13  2020 usr
drwxr-xr-x  18 root root  4096 Nov 13  2020 var

实战测试:Tomcat

# 编写Dockerfile脚本文件
[root@izuf6akcgealirj602cmxsz tomcat]# vim Dockerfile 

FROM centos:7
MAINTAINER jgenius<496875938@qq.com>

COPY readme.txt /usr/local/readme.txt
ADD apache-tomcat-8.5.75.tar.gz /usr/local/
ADD jdk-8u201-linux-x64.tar.gz /usr/local/

RUN yum -y install vim

ENV MYPATH /usr/local
WORKDIR $MYPATH

ENV JAVA_HOME /usr/local/jdk1.8.0_201
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.75
ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.75
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

EXPOSE 8080

CMD /usr/local/apache-tomcat-8.5.75/bin/startup.sh &&  tail -F /usr/local/apache-tomcat-8.5.75/logs/catalina.out

# 构建镜像
[root@izuf6akcgealirj602cmxsz tomcat]# docker build -t diytomcat .
Sending build context to Docker daemon  615.7MB
Step 1/15 : FROM centos:7
 ---> eeb6ee3f44bd
Step 2/15 : MAINTAINER jgenius<496875938@qq.com>
 ---> Running in f8c87af57f47
Removing intermediate container f8c87af57f47
 ---> 9b6220d814bd
Step 3/15 : COPY readme.txt /usr/local/readme.txt
 ---> ea4155756376
Step 4/15 : ADD apache-tomcat-8.5.75.tar.gz /usr/local/
 ---> 7e9814d367e4
Step 5/15 : ADD jdk-8u201-linux-x64.tar.gz /usr/local/
 ---> a3120ec31fa2
Step 6/15 : RUN yum -y install vim
 ---> Running in b58505c881f6
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
 * base: ftp.sjtu.edu.cn
 * extras: ftp.sjtu.edu.cn
 * updates: ftp.sjtu.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package vim-enhanced.x86_64 2:7.4.629-8.el7_9 will be installed
--> Processing Dependency: vim-common = 2:7.4.629-8.el7_9 for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: which for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: perl(:MODULE_COMPAT_5.16.3) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: libperl.so()(64bit) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: libgpm.so.2()(64bit) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Running transaction check
---> Package gpm-libs.x86_64 0:1.20.7-6.el7 will be installed
---> Package perl.x86_64 4:5.16.3-299.el7_9 will be installed
--> Processing Dependency: perl(Socket) >= 1.3 for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Scalar::Util) >= 1.10 for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl-macros for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(threads::shared) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(threads) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(constant) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Time::Local) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Time::HiRes) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Storable) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Socket) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Scalar::Util) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Pod::Simple::XHTML) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Pod::Simple::Search) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Getopt::Long) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Filter::Util::Call) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Temp) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Spec::Unix) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Spec::Functions) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Spec) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Path) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Exporter) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Cwd) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Carp) for package: 4:perl-5.16.3-299.el7_9.x86_64
---> Package perl-libs.x86_64 4:5.16.3-299.el7_9 will be installed
---> Package vim-common.x86_64 2:7.4.629-8.el7_9 will be installed
--> Processing Dependency: vim-filesystem for package: 2:vim-common-7.4.629-8.el7_9.x86_64
---> Package which.x86_64 0:2.20-7.el7 will be installed
--> Running transaction check
---> Package perl-Carp.noarch 0:1.26-244.el7 will be installed
---> Package perl-Exporter.noarch 0:5.68-3.el7 will be installed
---> Package perl-File-Path.noarch 0:2.09-2.el7 will be installed
---> Package perl-File-Temp.noarch 0:0.23.01-3.el7 will be installed
---> Package perl-Filter.x86_64 0:1.49-3.el7 will be installed
---> Package perl-Getopt-Long.noarch 0:2.40-3.el7 will be installed
--> Processing Dependency: perl(Pod::Usage) >= 1.14 for package: perl-Getopt-Long-2.40-3.el7.noarch
--> Processing Dependency: perl(Text::ParseWords) for package: perl-Getopt-Long-2.40-3.el7.noarch
---> Package perl-PathTools.x86_64 0:3.40-5.el7 will be installed
---> Package perl-Pod-Simple.noarch 1:3.28-4.el7 will be installed
--> Processing Dependency: perl(Pod::Escapes) >= 1.04 for package: 1:perl-Pod-Simple-3.28-4.el7.noarch
--> Processing Dependency: perl(Encode) for package: 1:perl-Pod-Simple-3.28-4.el7.noarch
---> Package perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 will be installed
---> Package perl-Socket.x86_64 0:2.010-5.el7 will be installed
---> Package perl-Storable.x86_64 0:2.45-3.el7 will be installed
---> Package perl-Time-HiRes.x86_64 4:1.9725-3.el7 will be installed
---> Package perl-Time-Local.noarch 0:1.2300-2.el7 will be installed
---> Package perl-constant.noarch 0:1.27-2.el7 will be installed
---> Package perl-macros.x86_64 4:5.16.3-299.el7_9 will be installed
---> Package perl-threads.x86_64 0:1.87-4.el7 will be installed
---> Package perl-threads-shared.x86_64 0:1.43-6.el7 will be installed
---> Package vim-filesystem.x86_64 2:7.4.629-8.el7_9 will be installed
--> Running transaction check
---> Package perl-Encode.x86_64 0:2.51-7.el7 will be installed
---> Package perl-Pod-Escapes.noarch 1:1.04-299.el7_9 will be installed
---> Package perl-Pod-Usage.noarch 0:1.63-3.el7 will be installed
--> Processing Dependency: perl(Pod::Text) >= 3.15 for package: perl-Pod-Usage-1.63-3.el7.noarch
--> Processing Dependency: perl-Pod-Perldoc for package: perl-Pod-Usage-1.63-3.el7.noarch
---> Package perl-Text-ParseWords.noarch 0:3.29-4.el7 will be installed
--> Running transaction check
---> Package perl-Pod-Perldoc.noarch 0:3.20-4.el7 will be installed
--> Processing Dependency: perl(parent) for package: perl-Pod-Perldoc-3.20-4.el7.noarch
--> Processing Dependency: perl(HTTP::Tiny) for package: perl-Pod-Perldoc-3.20-4.el7.noarch
--> Processing Dependency: groff-base for package: perl-Pod-Perldoc-3.20-4.el7.noarch
---> Package perl-podlators.noarch 0:2.5.1-3.el7 will be installed
--> Running transaction check
---> Package groff-base.x86_64 0:1.22.2-8.el7 will be installed
---> Package perl-HTTP-Tiny.noarch 0:0.033-3.el7 will be installed
---> Package perl-parent.noarch 1:0.225-244.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                    Arch       Version                Repository   Size
================================================================================
Installing:
 vim-enhanced               x86_64     2:7.4.629-8.el7_9      updates     1.1 M
Installing for dependencies:
 gpm-libs                   x86_64     1.20.7-6.el7           base         32 k
 groff-base                 x86_64     1.22.2-8.el7           base        942 k
 perl                       x86_64     4:5.16.3-299.el7_9     updates     8.0 M
 perl-Carp                  noarch     1.26-244.el7           base         19 k
 perl-Encode                x86_64     2.51-7.el7             base        1.5 M
 perl-Exporter              noarch     5.68-3.el7             base         28 k
 perl-File-Path             noarch     2.09-2.el7             base         26 k
 perl-File-Temp             noarch     0.23.01-3.el7          base         56 k
 perl-Filter                x86_64     1.49-3.el7             base         76 k
 perl-Getopt-Long           noarch     2.40-3.el7             base         56 k
 perl-HTTP-Tiny             noarch     0.033-3.el7            base         38 k
 perl-PathTools             x86_64     3.40-5.el7             base         82 k
 perl-Pod-Escapes           noarch     1:1.04-299.el7_9       updates      52 k
 perl-Pod-Perldoc           noarch     3.20-4.el7             base         87 k
 perl-Pod-Simple            noarch     1:3.28-4.el7           base        216 k
 perl-Pod-Usage             noarch     1.63-3.el7             base         27 k
 perl-Scalar-List-Utils     x86_64     1.27-248.el7           base         36 k
 perl-Socket                x86_64     2.010-5.el7            base         49 k
 perl-Storable              x86_64     2.45-3.el7             base         77 k
 perl-Text-ParseWords       noarch     3.29-4.el7             base         14 k
 perl-Time-HiRes            x86_64     4:1.9725-3.el7         base         45 k
 perl-Time-Local            noarch     1.2300-2.el7           base         24 k
 perl-constant              noarch     1.27-2.el7             base         19 k
 perl-libs                  x86_64     4:5.16.3-299.el7_9     updates     690 k
 perl-macros                x86_64     4:5.16.3-299.el7_9     updates      44 k
 perl-parent                noarch     1:0.225-244.el7        base         12 k
 perl-podlators             noarch     2.5.1-3.el7            base        112 k
 perl-threads               x86_64     1.87-4.el7             base         49 k
 perl-threads-shared        x86_64     1.43-6.el7             base         39 k
 vim-common                 x86_64     2:7.4.629-8.el7_9      updates     5.9 M
 vim-filesystem             x86_64     2:7.4.629-8.el7_9      updates      11 k
 which                      x86_64     2.20-7.el7             base         41 k

Transaction Summary
================================================================================
Install  1 Package (+32 Dependent packages)

Total download size: 19 M
Installed size: 63 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/gpm-libs-1.20.7-6.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for gpm-libs-1.20.7-6.el7.x86_64.rpm is not installed
Public key for perl-5.16.3-299.el7_9.x86_64.rpm is not installed
--------------------------------------------------------------------------------
Total                                               26 MB/s |  19 MB  00:00     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-9.2009.0.el7.centos.x86_64 (@CentOS)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : gpm-libs-1.20.7-6.el7.x86_64                                1/33 
  Installing : 2:vim-filesystem-7.4.629-8.el7_9.x86_64                     2/33 
  Installing : 2:vim-common-7.4.629-8.el7_9.x86_64                         3/33 
  Installing : which-2.20-7.el7.x86_64                                     4/33 
install-info: No such file or directory for /usr/share/info/which.info.gz
  Installing : groff-base-1.22.2-8.el7.x86_64                              5/33 
  Installing : 1:perl-parent-0.225-244.el7.noarch                          6/33 
  Installing : perl-HTTP-Tiny-0.033-3.el7.noarch                           7/33 
  Installing : perl-podlators-2.5.1-3.el7.noarch                           8/33 
  Installing : perl-Pod-Perldoc-3.20-4.el7.noarch                          9/33 
  Installing : 1:perl-Pod-Escapes-1.04-299.el7_9.noarch                   10/33 
  Installing : perl-Encode-2.51-7.el7.x86_64                              11/33 
  Installing : perl-Text-ParseWords-3.29-4.el7.noarch                     12/33 
  Installing : perl-Pod-Usage-1.63-3.el7.noarch                           13/33 
  Installing : 4:perl-macros-5.16.3-299.el7_9.x86_64                      14/33 
  Installing : perl-Storable-2.45-3.el7.x86_64                            15/33 
  Installing : perl-Exporter-5.68-3.el7.noarch                            16/33 
  Installing : perl-constant-1.27-2.el7.noarch                            17/33 
  Installing : perl-Socket-2.010-5.el7.x86_64                             18/33 
  Installing : perl-Time-Local-1.2300-2.el7.noarch                        19/33 
  Installing : perl-Carp-1.26-244.el7.noarch                              20/33 
  Installing : perl-PathTools-3.40-5.el7.x86_64                           21/33 
  Installing : perl-Scalar-List-Utils-1.27-248.el7.x86_64                 22/33 
  Installing : 1:perl-Pod-Simple-3.28-4.el7.noarch                        23/33 
  Installing : perl-File-Temp-0.23.01-3.el7.noarch                        24/33 
  Installing : perl-File-Path-2.09-2.el7.noarch                           25/33 
  Installing : perl-threads-shared-1.43-6.el7.x86_64                      26/33 
  Installing : perl-threads-1.87-4.el7.x86_64                             27/33 
  Installing : 4:perl-Time-HiRes-1.9725-3.el7.x86_64                      28/33 
  Installing : perl-Filter-1.49-3.el7.x86_64                              29/33 
  Installing : 4:perl-libs-5.16.3-299.el7_9.x86_64                        30/33 
  Installing : perl-Getopt-Long-2.40-3.el7.noarch                         31/33 
  Installing : 4:perl-5.16.3-299.el7_9.x86_64                             32/33 
  Installing : 2:vim-enhanced-7.4.629-8.el7_9.x86_64                      33/33 
  Verifying  : perl-HTTP-Tiny-0.033-3.el7.noarch                           1/33 
  Verifying  : perl-threads-shared-1.43-6.el7.x86_64                       2/33 
  Verifying  : perl-Storable-2.45-3.el7.x86_64                             3/33 
  Verifying  : groff-base-1.22.2-8.el7.x86_64                              4/33 
  Verifying  : perl-Exporter-5.68-3.el7.noarch                             5/33 
  Verifying  : perl-constant-1.27-2.el7.noarch                             6/33 
  Verifying  : perl-PathTools-3.40-5.el7.x86_64                            7/33 
  Verifying  : 4:perl-macros-5.16.3-299.el7_9.x86_64                       8/33 
  Verifying  : 2:vim-enhanced-7.4.629-8.el7_9.x86_64                       9/33 
  Verifying  : 1:perl-parent-0.225-244.el7.noarch                         10/33 
  Verifying  : perl-Socket-2.010-5.el7.x86_64                             11/33 
  Verifying  : which-2.20-7.el7.x86_64                                    12/33 
  Verifying  : 2:vim-filesystem-7.4.629-8.el7_9.x86_64                    13/33 
  Verifying  : perl-File-Temp-0.23.01-3.el7.noarch                        14/33 
  Verifying  : 1:perl-Pod-Simple-3.28-4.el7.noarch                        15/33 
  Verifying  : perl-Time-Local-1.2300-2.el7.noarch                        16/33 
  Verifying  : 1:perl-Pod-Escapes-1.04-299.el7_9.noarch                   17/33 
  Verifying  : perl-Carp-1.26-244.el7.noarch                              18/33 
  Verifying  : 2:vim-common-7.4.629-8.el7_9.x86_64                        19/33 
  Verifying  : perl-Scalar-List-Utils-1.27-248.el7.x86_64                 20/33 
  Verifying  : perl-Pod-Usage-1.63-3.el7.noarch                           21/33 
  Verifying  : perl-Encode-2.51-7.el7.x86_64                              22/33 
  Verifying  : perl-Pod-Perldoc-3.20-4.el7.noarch                         23/33 
  Verifying  : perl-podlators-2.5.1-3.el7.noarch                          24/33 
  Verifying  : 4:perl-5.16.3-299.el7_9.x86_64                             25/33 
  Verifying  : perl-File-Path-2.09-2.el7.noarch                           26/33 
  Verifying  : perl-threads-1.87-4.el7.x86_64                             27/33 
  Verifying  : 4:perl-Time-HiRes-1.9725-3.el7.x86_64                      28/33 
  Verifying  : gpm-libs-1.20.7-6.el7.x86_64                               29/33 
  Verifying  : perl-Filter-1.49-3.el7.x86_64                              30/33 
  Verifying  : perl-Getopt-Long-2.40-3.el7.noarch                         31/33 
  Verifying  : perl-Text-ParseWords-3.29-4.el7.noarch                     32/33 
  Verifying  : 4:perl-libs-5.16.3-299.el7_9.x86_64                        33/33 

Installed:
  vim-enhanced.x86_64 2:7.4.629-8.el7_9                                         

Dependency Installed:
  gpm-libs.x86_64 0:1.20.7-6.el7                                                
  groff-base.x86_64 0:1.22.2-8.el7                                              
  perl.x86_64 4:5.16.3-299.el7_9                                                
  perl-Carp.noarch 0:1.26-244.el7                                               
  perl-Encode.x86_64 0:2.51-7.el7                                               
  perl-Exporter.noarch 0:5.68-3.el7                                             
  perl-File-Path.noarch 0:2.09-2.el7                                            
  perl-File-Temp.noarch 0:0.23.01-3.el7                                         
  perl-Filter.x86_64 0:1.49-3.el7                                               
  perl-Getopt-Long.noarch 0:2.40-3.el7                                          
  perl-HTTP-Tiny.noarch 0:0.033-3.el7                                           
  perl-PathTools.x86_64 0:3.40-5.el7                                            
  perl-Pod-Escapes.noarch 1:1.04-299.el7_9                                      
  perl-Pod-Perldoc.noarch 0:3.20-4.el7                                          
  perl-Pod-Simple.noarch 1:3.28-4.el7                                           
  perl-Pod-Usage.noarch 0:1.63-3.el7                                            
  perl-Scalar-List-Utils.x86_64 0:1.27-248.el7                                  
  perl-Socket.x86_64 0:2.010-5.el7                                              
  perl-Storable.x86_64 0:2.45-3.el7                                             
  perl-Text-ParseWords.noarch 0:3.29-4.el7                                      
  perl-Time-HiRes.x86_64 4:1.9725-3.el7                                         
  perl-Time-Local.noarch 0:1.2300-2.el7                                         
  perl-constant.noarch 0:1.27-2.el7                                             
  perl-libs.x86_64 4:5.16.3-299.el7_9                                           
  perl-macros.x86_64 4:5.16.3-299.el7_9                                         
  perl-parent.noarch 1:0.225-244.el7                                            
  perl-podlators.noarch 0:2.5.1-3.el7                                           
  perl-threads.x86_64 0:1.87-4.el7                                              
  perl-threads-shared.x86_64 0:1.43-6.el7                                       
  vim-common.x86_64 2:7.4.629-8.el7_9                                           
  vim-filesystem.x86_64 2:7.4.629-8.el7_9                                       
  which.x86_64 0:2.20-7.el7                                                     

Complete!
Removing intermediate container b58505c881f6
 ---> f7c7a68bc8cb
Step 7/15 : ENV MYPATH /usr/local
 ---> Running in c80ff7a55bf5
Removing intermediate container c80ff7a55bf5
 ---> d29ae1bb4dfc
Step 8/15 : WORKDIR $MYPATH
 ---> Running in c686e90f4678
Removing intermediate container c686e90f4678
 ---> 1927e4494b78
Step 9/15 : ENV JAVA_HOME /usr/local/jdk1.8.0_201
 ---> Running in 1e6d577fd522
Removing intermediate container 1e6d577fd522
 ---> 9391d5cd2312
Step 10/15 : ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 ---> Running in 156650aa4794
Removing intermediate container 156650aa4794
 ---> 18d697e1f150
Step 11/15 : ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.75
 ---> Running in 103b82d9f517
Removing intermediate container 103b82d9f517
 ---> a2505e909792
Step 12/15 : ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.75
 ---> Running in 1ff80bc569fa
Removing intermediate container 1ff80bc569fa
 ---> bd4e5a4685e3
Step 13/15 : ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
 ---> Running in 1a99a198675c
Removing intermediate container 1a99a198675c
 ---> 3cc9600d8f6b
Step 14/15 : EXPOSE 8080
 ---> Running in 0634171163a1
Removing intermediate container 0634171163a1
 ---> eefcb23a07b3
Step 15/15 : CMD /usr/local/apache-tomcat-8.5.75/bin/startup.sh &&  tail -F /usr/local/apache-tomcat-8.5.75/logs/catalina.out
 ---> Running in 5fcf919b6207
Removing intermediate container 5fcf919b6207
 ---> 866e2c50f3a3
Successfully built 866e2c50f3a3
Successfully tagged diytomcat:latest

# 运行镜像
[root@izuf6akcgealirj602cmxsz tomcat]# docker run -d -p 8899:8080 --name tomcat_test -v /home/jgenius/tomcat/test:/usr/local/apache-tomcat-8.5.75/webapps/test diytomcat
1ab375cdaa650fcef2c4757381bf3136c4ae488258c5f80772008a0177a83a1b

# 本地测试访问
curl localhost:8899



<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>Apache Tomcat/8.5.75</title>
        <link href="favicon.ico" rel="icon" type="image/x-icon" />
        <link href="tomcat.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
        <div id="wrapper">
            <div id="navigation" class="curved container">
                <span id="nav-home"><a href="https://tomcat.apache.org/">Home</a></span>
                <span id="nav-hosts"><a href="/docs/">Documentation</a></span>
                <span id="nav-config"><a href="/docs/config/">Configuration</a></span>
                <span id="nav-examples"><a href="/examples/">Examples</a></span>
                <span id="nav-wiki"><a href="https://wiki.apache.org/tomcat/FrontPage">Wiki</a></span>
                <span id="nav-lists"><a href="https://tomcat.apache.org/lists.html">Mailing Lists</a></span>
                <span id="nav-help"><a href="https://tomcat.apache.org/findhelp.html">Find Help</a></span>
                <br class="separator" />
            </div>
            <div id="asf-box">
                <h1>Apache Tomcat/8.5.75</h1>
            </div>
            <div id="upper" class="curved container">
                <div id="congrats" class="curved container">
                    <h2>If you're seeing this, you've successfully installed Tomcat. Congratulations!</h2>
                </div>
                <div id="notice">
                    <img id="tomcat-logo" src="tomcat.svg" alt="[tomcat logo]" />
                    <div id="tasks">
                        <h3>Recommended Reading:</h3>
                        <h4><a href="/docs/security-howto.html">Security Considerations How-To</a></h4>
                        <h4><a href="/docs/manager-howto.html">Manager Application How-To</a></h4>
                        <h4><a href="/docs/cluster-howto.html">Clustering/Session Replication How-To</a></h4>
                    </div>
                </div>
                <div id="actions">
                    <div class="button">
                        <a class="container shadow" href="/manager/status"><span>Server Status</span></a>
                    </div>
                    <div class="button">
                        <a class="container shadow" href="/manager/html"><span>Manager App</span></a>
                    </div>
                    <div class="button">
                        <a class="container shadow" href="/host-manager/html"><span>Host Manager</span></a>
                    </div>
                </div>
                <br class="separator" />
            </div>
            <div id="middle" class="curved container">
                <h3>Developer Quick Start</h3>
                <div class="col25">
                    <div class="container">
                        <p><a href="/docs/setup.html">Tomcat Setup</a></p>
                        <p><a href="/docs/appdev/">First Web Application</a></p>
                    </div>
                </div>
                <div class="col25">
                    <div class="container">
                        <p><a href="/docs/realm-howto.html">Realms &amp; AAA</a></p>
                        <p><a href="/docs/jndi-datasource-examples-howto.html">JDBC DataSources</a></p>
                    </div>
                </div>
                <div class="col25">
                    <div class="container">
                        <p><a href="/examples/">Examples</a></p>
                    </div>
                </div>
                <div class="col25">
                    <div class="container">
                        <p><a href="https://wiki.apache.org/tomcat/Specifications">Servlet Specifications</a></p>
                        <p><a href="https://wiki.apache.org/tomcat/TomcatVersions">Tomcat Versions</a></p>
                    </div>
                </div>
                <br class="separator" />
            </div>
            <div id="lower">
                <div id="low-manage" class="">
                    <div class="curved container">
                        <h3>Managing Tomcat</h3>
                        <p>For security, access to the <a href="/manager/html">manager webapp</a> is restricted.
                        Users are defined in:</p>
                        <pre>$CATALINA_HOME/conf/tomcat-users.xml</pre>
                        <p>In Tomcat 8.5 access to the manager application is split between
                           different users. &nbsp; <a href="/docs/manager-howto.html">Read more...</a></p>
                        <br />
                        <h4><a href="/docs/RELEASE-NOTES.txt">Release Notes</a></h4>
                        <h4><a href="/docs/changelog.html">Changelog</a></h4>
                        <h4><a href="https://tomcat.apache.org/migration.html">Migration Guide</a></h4>
                        <h4><a href="https://tomcat.apache.org/security.html">Security Notices</a></h4>
                    </div>
                </div>
                <div id="low-docs" class="">
                    <div class="curved container">
                        <h3>Documentation</h3>
                        <h4><a href="/docs/">Tomcat 8.5 Documentation</a></h4>
                        <h4><a href="/docs/config/">Tomcat 8.5 Configuration</a></h4>
                        <h4><a href="https://wiki.apache.org/tomcat/FrontPage">Tomcat Wiki</a></h4>
                        <p>Find additional important configuration information in:</p>
                        <pre>$CATALINA_HOME/RUNNING.txt</pre>
                        <p>Developers may be interested in:</p>
                        <ul>
                            <li><a href="https://tomcat.apache.org/bugreport.html">Tomcat 8.5 Bug Database</a></li>
                            <li><a href="/docs/api/index.html">Tomcat 8.5 JavaDocs</a></li>
                            <li><a href="https://github.com/apache/tomcat/tree/8.5.x">Tomcat 8.5 Git Repository at GitHub</a></li>
                        </ul>
                    </div>
                </div>
                <div id="low-help" class="">
                    <div class="curved container">
                        <h3>Getting Help</h3>
                        <h4><a href="https://tomcat.apache.org/faq/">FAQ</a> and <a href="https://tomcat.apache.org/lists.html">Mailing Lists</a></h4>
                        <p>The following mailing lists are available:</p>
                        <ul>
                            <li id="list-announce"><strong><a href="https://tomcat.apache.org/lists.html#tomcat-announce">tomcat-announce</a><br />
                                Important announcements, releases, security vulnerability notifications. (Low volume).</strong>
                            </li>
                            <li><a href="https://tomcat.apache.org/lists.html#tomcat-users">tomcat-users</a><br />
                                User support and discussion
                            </li>
                            <li><a href="https://tomcat.apache.org/lists.html#taglibs-user">taglibs-user</a><br />
                                User support and discussion for <a href="https://tomcat.apache.org/taglibs/">Apache Taglibs</a>
                            </li>
                            <li><a href="https://tomcat.apache.org/lists.html#tomcat-dev">tomcat-dev</a><br />
                                Development mailing list, including commit messages
                            </li>
                        </ul>
                    </div>
                </div>
                <br class="separator" />
            </div>
            <div id="footer" class="curved container">
                <div class="col20">
                    <div class="container">
                        <h4>Other Downloads</h4>
                        <ul>
                            <li><a href="https://tomcat.apache.org/download-connectors.cgi">Tomcat Connectors</a></li>
                            <li><a href="https://tomcat.apache.org/download-native.cgi">Tomcat Native</a></li>
                            <li><a href="https://tomcat.apache.org/taglibs/">Taglibs</a></li>
                            <li><a href="/docs/deployer-howto.html">Deployer</a></li>
                        </ul>
                    </div>
                </div>
                <div class="col20">
                    <div class="container">
                        <h4>Other Documentation</h4>
                        <ul>
                            <li><a href="https://tomcat.apache.org/connectors-doc/">Tomcat Connectors</a></li>
                            <li><a href="https://tomcat.apache.org/connectors-doc/">mod_jk Documentation</a></li>
                            <li><a href="https://tomcat.apache.org/native-doc/">Tomcat Native</a></li>
                            <li><a href="/docs/deployer-howto.html">Deployer</a></li>
                        </ul>
                    </div>
                </div>
                <div class="col20">
                    <div class="container">
                        <h4>Get Involved</h4>
                        <ul>
                            <li><a href="https://tomcat.apache.org/getinvolved.html">Overview</a></li>
                            <li><a href="https://tomcat.apache.org/source.html">Source Repositories</a></li>
                            <li><a href="https://tomcat.apache.org/lists.html">Mailing Lists</a></li>
                            <li><a href="https://wiki.apache.org/tomcat/FrontPage">Wiki</a></li>
                        </ul>
                    </div>
                </div>
                <div class="col20">
                    <div class="container">
                        <h4>Miscellaneous</h4>
                        <ul>
                            <li><a href="https://tomcat.apache.org/contact.html">Contact</a></li>
                            <li><a href="https://tomcat.apache.org/legal.html">Legal</a></li>
                            <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                            <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                        </ul>
                    </div>
                </div>
                <div class="col20">
                    <div class="container">
                        <h4>Apache Software Foundation</h4>
                        <ul>
                            <li><a href="https://tomcat.apache.org/whoweare.html">Who We Are</a></li>
                            <li><a href="https://tomcat.apache.org/heritage.html">Heritage</a></li>
                            <li><a href="https://www.apache.org">Apache Home</a></li>
                            <li><a href="https://tomcat.apache.org/resources.html">Resources</a></li>
                        </ul>
                    </div>
                </div>
                <br class="separator" />
            </div>
            <p class="copyright">Copyright &copy;1999-2022 Apache Software Foundation.  All Rights Reserved</p>
        </div>
    </body>

</html>

# 测试项目部署
# 进入容器查看容器内应用文件,目前test下没有任何文件
[root@izuf6akcgealirj602cmxsz tomcat]# docker exec -it 1ab375cdaa65 /bin/bash
[root@1ab375cdaa65 local]# cd apache-tomcat-8.5.75/
[root@1ab375cdaa65 apache-tomcat-8.5.75]# cd webapps/
[root@1ab375cdaa65 webapps]# ll
total 24
drwxr-x---  3 root root 4096 Jan 17 22:07 ROOT
drwxr-x--- 15 root root 4096 Jan 17 22:07 docs
drwxr-x---  7 root root 4096 Jan 17 22:07 examples
drwxr-x---  6 root root 4096 Jan 17 22:07 host-manager
drwxr-x---  6 root root 4096 Jan 17 22:07 manager
drwxr-xr-x  2 root root 4096 Feb 16 03:19 test
[root@1ab375cdaa65 webapps]# cd test/
[root@1ab375cdaa65 test]# ll
total 0

# 在宿主机上创建jsp文件,查看是否挂在成功
# 宿主机创建文件
[root@izuf6akcgealirj602cmxsz tomcat]# cd test/
[root@izuf6akcgealirj602cmxsz test]# ll
total 0
[root@izuf6akcgealirj602cmxsz test]# touch index.jsp
[root@izuf6akcgealirj602cmxsz test]# vim index.jsp 
[root@izuf6akcgealirj602cmxsz test]# cat index.jsp 
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试自定义tomcat</title>
</head>
<body>
Hello World!<br/>
<%
out.println("测试自定义tomcat,制作是否成功并查看挂在再宿主机上的目录是否和容器互通");
%>
</body>
</html>

# 查看容器内文件是否同步
[root@izuf6akcgealirj602cmxsz tomcat]# docker exec -it 1ab375cdaa65 /bin/bash
[root@1ab375cdaa65 local]# cd apache-tomcat-8.5.75/
[root@1ab375cdaa65 apache-tomcat-8.5.75]# cd webapps/
[root@1ab375cdaa65 webapps]# ll
total 24
drwxr-x---  3 root root 4096 Jan 17 22:07 ROOT
drwxr-x--- 15 root root 4096 Jan 17 22:07 docs
drwxr-x---  7 root root 4096 Jan 17 22:07 examples
drwxr-x---  6 root root 4096 Jan 17 22:07 host-manager
drwxr-x---  6 root root 4096 Jan 17 22:07 manager
drwxr-xr-x  2 root root 4096 Feb 16 03:19 test
[root@1ab375cdaa65 webapps]# cd test/
[root@1ab375cdaa65 test]# ll
total 0
[root@1ab375cdaa65 test]# ll
total 4
-rw-r--r-- 1 root root 299 Feb 16 03:24 index.jsp

# 浏览器访问部署的项目

发布镜像

DockerHub

  1. 地址:https://hub.docker.com/

  2. 创建自己的账号

  3. 登陆完成后,提交自己的镜像(docker push)

# 测试发布自己的镜像
# 登陆命令帮助
[root@izuf6akcgealirj602cmxsz test]# docker login --help

Usage:  docker login [OPTIONS] [SERVER]

Log in to a Docker registry.
If no server is specified, the default is defined by the daemon.

Options:
  -p, --password string   Password
      --password-stdin    Take the password from stdin
  -u, --username string   Username

# 登陆  
[root@izuf6akcgealirj602cmxsz test]# docker login -u jgenius
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

# 提交自己的镜像
[root@izuf6akcgealirj602cmxsz tomcat]# docker push jgenius/tomcat:1.0
The push refers to repository [docker.io/jgenius/tomcat]
An image does not exist locally with the tag: jgenius/tomcat

# 发现报错了,解决报错
# 给自定义的镜像增加标签
[root@izuf6akcgealirj602cmxsz tomcat]# docker tag 866e2c50f3a3 jgenius/diytomcat
[root@izuf6akcgealirj602cmxsz tomcat]# 

# 再次发布自己制作的镜像



发布到阿里云镜像->参考官方地址

  1. 登陆阿里云
  2. 找到容器镜像服务
  3. 创建命名空间
  4. 创建容器镜像仓库

[root@izuf6akcgealirj602cmxsz ~]# docker login --username=xinchej registry.cn-shanghai.aliyuncs.com
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

[root@izuf6akcgealirj602cmxsz ~]# docker push diytomcat
Using default tag: latest
The push refers to repository [docker.io/library/diytomcat]
69aeca061f9e: Preparing 
6e26aa735ead: Preparing 
c62ceb659eab: Preparing 
c9833f23d1b4: Preparing 
174f56854903: Preparing 
denied: requested access to the resource is denied

# 问题解决

总结

img

img

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值