CentOS7-Docker-DockerFile-05

CentOS7-Docker-DockerFile-05

1、什么是DockerFile

  • dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。
  • 构建步骤:
  1. 编写DockerFile文件
  2. docker build 构建镜像
  3. docker run

查看镜像的DockerFile

Docker Hub地址
CentOS7-Docker-DockerFile-05_第1张图片

CentOS7-Docker-DockerFile-05_第2张图片
CentOS7-Docker-DockerFile-05_第3张图片

2、DockerFile构建过程

  • 基础知识:
  1. 每条保留字指令都必须为大写字母后面要跟随至少一个参数
  2. 指令按照从上到下,顺序执行
  3. # 表示注释
  4. 每条指令都会创建一个新的镜像层,并对镜像进行提交
  • 流程:
  1. docker从基础镜像运行一个容器
  2. 执行一条指令并对容器做出修改
  3. 执行类似 docker commit 的操作提交一个新的镜像层
  4. Docker再基于刚提交的镜像运行一个新容器
  5. 执行dockerfile中的下一条指令直到所有指令都执行完成!
  • 说明:
  1. 从应用软件的角度来看,DockerFile,docker镜像与docker容器分别代表软件的三个不同阶段。
  2. DockerFile 是软件的原材料 (代码)
  3. Docker 镜像则是软件的交付品 (.apk)
  4. Docker 容器则是软件的运行状态 (客户下载安装执行)
  5. DockerFile 面向开发,Docker镜像成为交付标准,Docker容器则涉及部署与运维,三者缺一不可!

CentOS7-Docker-DockerFile-05_第4张图片

  • DockerFile:需要定义一个DockerFile,DockerFile定义了进程需要的一切东西
  • DockerFile涉及的内容包括执行代码或者是文件、环境变量、依赖包、运行时环境、动态链接库、操作系统的发行版、服务进程和内核进程(当引用进行需要和系统服务和内核进程打交道,这时需要考虑如何设计 namespace的权限控制)等等。
  • Docker镜像:在DockerFile 定义了一个文件之后,Docker build 时会产生一个Docker镜像,当运行Docker 镜像时,会真正开始提供服务;
  • Docker容器:容器是直接提供服务的。

3、DockerFile指令

  • 关键字
关键字 作用
FROM 基础镜像,当前新镜像是基于哪个镜像的
MAINTAINER 镜像维护者的姓名混合邮箱地址
RUN 容器构建时需要运行的命令
EXPOSE 当前容器对外暴露的端口
WORKDIR 指定在创建容器后,终端默认登录的进来工作目录
ENV 用来在构建镜像过程中设置环境变量
ADD 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
COPY 类似ADD,拷贝文件和目录到镜像中!
VOLUME 容器数据卷,用于数据保存和持久化工作
CMD 指定一个容器启动时要运行的命令,dockerFile中可以有多个CMD指令,但只有后一个生效!
ENTRYPOINT 指定一个容器启动时要运行的命令!和CMD一样
ONBUILD 当构建一个被继承的DockerFile时运行命令,父镜像在被子镜像继承后,父镜像的ONBUILD被触发

DockerFile菜鸟教程

CentOS7-Docker-DockerFile-05_第5张图片
CentOS7-Docker-DockerFile-05_第6张图片

4、实战测试

Docker Hub 中99% 的镜像都是通过在base镜像(Scratch)中安装和配置需要的软件构建出来的
CentOS7-Docker-DockerFile-05_第7张图片

1、自定义一个CentOS

1、查看下官方默认的CentOS的情况:

CentOS7-Docker-DockerFile-05_第8张图片

docker run -it --name centos001 centos /bin/bash

CentOS7-Docker-DockerFile-05_第9张图片

目的:
	使我们自己的镜像具备如下:登陆后的默认路径、vim编辑器、查看网络配置ifconfig支持

2、在宿主机的home目录下,创建 mydockerfile-test文件夹,新建dockerfile-centos文件

CentOS7-Docker-DockerFile-05_第10张图片

FROM centos
MAINTAINER hou<1658951186@qq.com>

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN yum -y install vim 
RUN yum -y install net-tools


EXPOSE 80

CMD echo $MYPATH
CMD echo "-------------------------end------------------------"
CMD /bin/bash

3、通过 dockerfile-centos文件,生成镜像

当前宿主机中的镜像列表信息

CentOS7-Docker-DockerFile-05_第11张图片

-- 生成镜像
-f dockerfile地址 
-t 新镜像名字:版本号
. 表示当前目录位置

docker build -f dockerfile-centos -t hou-centos:1.0 .
运行过程

[root@localhost dockerfile-test]# docker build -f dockerfile-centos -t hou-centos:1.0 .
Sending build context to Docker daemon  2.048kB
Step 1/10 : FROM centos
 ---> 5d0da3dc9764
Step 2/10 : MAINTAINER hou<1658951186@qq.com>
 ---> Running in 464d6efaf018
Removing intermediate container 464d6efaf018
 ---> 1b6e84821098
Step 3/10 : ENV MYPATH /usr/local
 ---> Running in e823f2263d02
Removing intermediate container e823f2263d02
 ---> 685794482262
Step 4/10 : WORKDIR $MYPATH
 ---> Running in 6f2a64534b44
Removing intermediate container 6f2a64534b44
 ---> c127563bb763
Step 5/10 : RUN yum -y install vim
 ---> Running in baa5b8015dc2
CentOS Linux 8 - AppStream                      1.9 MB/s | 8.4 MB     00:04    
CentOS Linux 8 - BaseOS                         3.4 MB/s | 4.6 MB     00:01    
CentOS Linux 8 - Extras                          19 kB/s |  10 kB     00:00    
Dependencies resolved.
================================================================================
 Package             Arch        Version                   Repository      Size
================================================================================
Installing:
 vim-enhanced        x86_64      2:8.0.1763-16.el8         appstream      1.4 M
Installing dependencies:
 gpm-libs            x86_64      1.20.7-17.el8             appstream       39 k
 vim-common          x86_64      2:8.0.1763-16.el8         appstream      6.3 M
 vim-filesystem      noarch      2:8.0.1763-16.el8         appstream       49 k
 which               x86_64      2.21-16.el8               baseos          49 k

Transaction Summary
================================================================================
Install  5 Packages

Total download size: 7.8 M
Installed size: 30 M
Downloading Packages:
(1/5): gpm-libs-1.20.7-17.el8.x86_64.rpm        152 kB/s |  39 kB     00:00    
(2/5): vim-filesystem-8.0.1763-16.el8.noarch.rp 1.4 MB/s |  49 kB     00:00    
(3/5): vim-enhanced-8.0.1763-16.el8.x86_64.rpm  2.7 MB/s | 1.4 MB     00:00    
(4/5): which-2.21-16.el8.x86_64.rpm             192 kB/s |  49 kB     00:00    
(5/5): vim-common-8.0.1763-16.el8.x86_64.rpm    7.1 MB/s | 6.3 MB     00:00    
--------------------------------------------------------------------------------
Total                                           4.7 MB/s | 7.8 MB     00:01     
warning: /var/cache/dnf/appstream-02e86d1c976ab532/packages/gpm-libs-1.20.7-17.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
CentOS Linux 8 - AppStream                      499 kB/s | 1.6 kB     00:00    
Importing GPG key 0x8483C65D:
 Userid     : "CentOS (CentOS Official Signing Key) "
 Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : which-2.21-16.el8.x86_64                               1/5 
  Installing       : vim-filesystem-2:8.0.1763-16.el8.noarch                2/5 
  Installing       : vim-common-2:8.0.1763-16.el8.x86_64                    3/5 
  Installing       : gpm-libs-1.20.7-17.el8.x86_64                          4/5 
  Running scriptlet: gpm-libs-1.20.7-17.el8.x86_64                          4/5 
  Installing       : vim-enhanced-2:8.0.1763-16.el8.x86_64                  5/5 
  Running scriptlet: vim-enhanced-2:8.0.1763-16.el8.x86_64                  5/5 
  Running scriptlet: vim-common-2:8.0.1763-16.el8.x86_64                    5/5 
  Verifying        : gpm-libs-1.20.7-17.el8.x86_64                          1/5 
  Verifying        : vim-common-2:8.0.1763-16.el8.x86_64                    2/5 
  Verifying        : vim-enhanced-2:8.0.1763-16.el8.x86_64                  3/5 
  Verifying        : vim-filesystem-2:8.0.1763-16.el8.noarch                4/5 
  Verifying        : which-2.21-16.el8.x86_64                               5/5 

Installed:
  gpm-libs-1.20.7-17.el8.x86_64         vim-common-2:8.0.1763-16.el8.x86_64    
  vim-enhanced-2:8.0.1763-16.el8.x86_64 vim-filesystem-2:8.0.1763-16.el8.noarch
  which-2.21-16.el8.x86_64             

Complete!
Removing intermediate container baa5b8015dc2
 ---> d9587c88dbaf
Step 6/10 : RUN yum -y install net-tools
 ---> Running in b9aacd14dd40
Last metadata expiration check: 0:00:10 ago on Thu Jan  6 14:48:41 2022.
Dependencies resolved.
================================================================================
 Package         Architecture Version                        Repository    Size
================================================================================
Installing:
 net-tools       x86_64       2.0-0.52.20160912git.el8       baseos       322 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 322 k
Installed size: 942 k
Downloading Packages:
net-tools-2.0-0.52.20160912git.el8.x86_64.rpm   2.5 MB/s | 322 kB     00:00    
--------------------------------------------------------------------------------
Total                                           662 kB/s | 322 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : net-tools-2.0-0.52.20160912git.el8.x86_64              1/1 
  Running scriptlet: net-tools-2.0-0.52.20160912git.el8.x86_64              1/1 
  Verifying        : net-tools-2.0-0.52.20160912git.el8.x86_64              1/1 

Installed:
  net-tools-2.0-0.52.20160912git.el8.x86_64                                     

Complete!
Removing intermediate container b9aacd14dd40
 ---> 34905ae822a5
Step 7/10 : EXPOSE 80
 ---> Running in a1b476e1c698
Removing intermediate container a1b476e1c698
 ---> c1dee8f8843a
Step 8/10 : CMD echo $MYPATH
 ---> Running in 2fdaef7a94e6
Removing intermediate container 2fdaef7a94e6
 ---> 151167473545
Step 9/10 : CMD echo "-------------------------end------------------------"
 ---> Running in 19a99b23e9b9
Removing intermediate container 19a99b23e9b9
 ---> 1782e00525b2
Step 10/10 : CMD /bin/bash
 ---> Running in e80c8a8d48b3
Removing intermediate container e80c8a8d48b3
 ---> 25ad1dfbbb2f
Successfully built 25ad1dfbbb2f
Successfully tagged hou-centos:1.0

4、查看生成的镜像

CentOS7-Docker-DockerFile-05_第12张图片

5、运行生成的centos镜像测试

CentOS7-Docker-DockerFile-05_第13张图片

-- 要加版本号哈,不然就会先去搜索下载镜像再运行
docker run -it --name centos001 hou-centos:1.0 /bin/bash

CentOS7-Docker-DockerFile-05_第14张图片

6、列出镜像地的变更历史

--docker history 镜像名称或镜像ID
docker history 25ad1dfbbb2f

CentOS7-Docker-DockerFile-05_第15张图片

2、CMD 和 ENTRYPOINT 关键字的区别

  • 两个命令都是指定一个容器启动时要运行的命令
  • CMD:会被 docker run 之后的参数替换只有最后一个生效
  • ENTRYPOINT: docker run 之后的参数会被当做参数传递给 ENTRYPOINT,形成新的组合

测试CMD命令

1、新建 dockerfile-cmd文件

CentOS7-Docker-DockerFile-05_第16张图片

-- 启动容器后,打印当前目录下所有的文件列表信息
FROM centos
CMD ["ls","-a"]
2、build dockerfile-centos文件,生成镜像
docker build -f dockerfile-cmd -t centos-cmd:1.0 .

CentOS7-Docker-DockerFile-05_第17张图片

3、启动容器测试
docker run -it centos-cmd:1.0

CentOS7-Docker-DockerFile-05_第18张图片

4、如果我们希望用 -l 列表展示信息,我们就需要加上 -l参数
docker run -it centos-cmd:1.0 -l

在这里插入图片描述

问题:
我们可以看到可执行文件找不到的报错,executable file not found。
跟在镜像名后面的是 command,运行时会替换 CMD 的默认值。

因此这里的 -l 替换了原来的 CMD,而不是添加在原来的 ls -a 后面。
而 -l 根本不是命令,所以自然找不到。
如果我们希望加入 -l 这参数,我们就必须重新完整的输入这个命令:

run -it centos-cmd:1.0 ls -la

CentOS7-Docker-DockerFile-05_第19张图片

测试ENTRYPOINT命令

1、新建 dockerfile-entrypoint文件

CentOS7-Docker-DockerFile-05_第20张图片

-- 启动容器后,打印当前目录下所有的文件列表信息
FROM centos
ENTRYPOINT ["ls","-a"]
2、build dockerfile-entrypoint文件,生成镜像
docker build -f dockerfile-entrypoint -t centos-entrypoint:1.0 .

CentOS7-Docker-DockerFile-05_第21张图片

3、启动容器测试
docker run -it centos-entrypoint:1.0

CentOS7-Docker-DockerFile-05_第22张图片

4、测试-l参数,发现可以直接使用,这里就是一种追加,
我们可以明显的知道 CMD 和ENTRYPOINT 的区别了
docker run -it centos-entrypoint:1.0 -l

CentOS7-Docker-DockerFile-05_第23张图片

3、自定义镜像 tomcat

1、准备工作

1、在宿主机home目录下新建tomcat文件夹
2、将apache-tomcat-8.5.73.tar.gz和jdk-linux-x64.tar.gz拷贝到 /home/tomcat目录下
3、在 /home/tomcat目录下,新建个Dockerfile文件(Dockerfile这个名称,在 docker build 时,就不用加 -f 选项了)

Tomcat8.5.73下载地址
JDK1.8.0_131下载地址

在这里插入图片描述

2、创建 Dockerfile文件

FROM centos
MAINTAINER hou<1658981186@qq.com>

#把宿主机当前上下文的read.txt拷贝到容器/usr/local/路径下
COPY read.txt  /usr/local/cincontainer.txt

#把java与tomcat添加到容器中
ADD jdk-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.73.tar.gz /usr/local/

#安装vim编辑器
RUN yum -y install vim

#设置工作访问时候的WORKDIR路径,登录落脚点
ENV MYPATH /usr/local
WORKDIR $MYPATH

#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_131
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.73
ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.73
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

#容器运行时监听的端口
EXPOSE 8080

#启动时运行tomcat并动态打印日志信息
CMD /usr/local/apache-tomcat-8.5.73/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.5.73/bin/logs/catalina.out

3、docker build Dockerfile文件,生成镜像

docker build -t hou-tomcat:1.0 .
-- 运行过程

[root@localhost tomcat]# docker build -t hou-tomcat:1.0 .
Sending build context to Docker daemon  196.1MB
Step 1/15 : FROM centos
 ---> 5d0da3dc9764
Step 2/15 : MAINTAINER hou<1658981186@qq.com>
 ---> Running in dddc2af70a27
Removing intermediate container dddc2af70a27
 ---> 8d3b9475b6c3
Step 3/15 : COPY read.txt  /usr/local/cincontainer.txt
 ---> aabb697f2f9a
Step 4/15 : ADD jdk-linux-x64.tar.gz /usr/local/
 ---> fb7fa22145b1
Step 5/15 : ADD apache-tomcat-8.5.73.tar.gz /usr/local/
 ---> 951bb5657195
Step 6/15 : RUN yum -y install vim
 ---> Running in f593431621b5
CentOS Linux 8 - AppStream                       56 kB/s | 8.4 MB     02:34    
CentOS Linux 8 - BaseOS                         611 kB/s | 4.6 MB     00:07    
CentOS Linux 8 - Extras                          14 kB/s |  10 kB     00:00    
Dependencies resolved.
================================================================================
 Package             Arch        Version                   Repository      Size
================================================================================
Installing:
 vim-enhanced        x86_64      2:8.0.1763-16.el8         appstream      1.4 M
Installing dependencies:
 gpm-libs            x86_64      1.20.7-17.el8             appstream       39 k
 vim-common          x86_64      2:8.0.1763-16.el8         appstream      6.3 M
 vim-filesystem      noarch      2:8.0.1763-16.el8         appstream       49 k
 which               x86_64      2.21-16.el8               baseos          49 k

Transaction Summary
================================================================================
Install  5 Packages

Total download size: 7.8 M
Installed size: 30 M
Downloading Packages:
(1/5): gpm-libs-1.20.7-17.el8.x86_64.rpm         38 kB/s |  39 kB     00:01    
(2/5): vim-filesystem-8.0.1763-16.el8.noarch.rp  18 kB/s |  49 kB     00:02    
(3/5): which-2.21-16.el8.x86_64.rpm             6.3 kB/s |  49 kB     00:07    
(4/5): vim-enhanced-8.0.1763-16.el8.x86_64.rpm   32 kB/s | 1.4 MB     00:43    
(5/5): vim-common-8.0.1763-16.el8.x86_64.rpm     31 kB/s | 6.3 MB     03:28    
--------------------------------------------------------------------------------
Total                                            38 kB/s | 7.8 MB     03:30     
warning: /var/cache/dnf/appstream-02e86d1c976ab532/packages/gpm-libs-1.20.7-17.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
CentOS Linux 8 - AppStream                      1.6 MB/s | 1.6 kB     00:00    
Importing GPG key 0x8483C65D:
 Userid     : "CentOS (CentOS Official Signing Key) "
 Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : which-2.21-16.el8.x86_64                               1/5 
  Installing       : vim-filesystem-2:8.0.1763-16.el8.noarch                2/5 
  Installing       : vim-common-2:8.0.1763-16.el8.x86_64                    3/5 
  Installing       : gpm-libs-1.20.7-17.el8.x86_64                          4/5 
  Running scriptlet: gpm-libs-1.20.7-17.el8.x86_64                          4/5 
  Installing       : vim-enhanced-2:8.0.1763-16.el8.x86_64                  5/5 
  Running scriptlet: vim-enhanced-2:8.0.1763-16.el8.x86_64                  5/5 
  Running scriptlet: vim-common-2:8.0.1763-16.el8.x86_64                    5/5 
  Verifying        : gpm-libs-1.20.7-17.el8.x86_64                          1/5 
  Verifying        : vim-common-2:8.0.1763-16.el8.x86_64                    2/5 
  Verifying        : vim-enhanced-2:8.0.1763-16.el8.x86_64                  3/5 
  Verifying        : vim-filesystem-2:8.0.1763-16.el8.noarch                4/5 
  Verifying        : which-2.21-16.el8.x86_64                               5/5 

Installed:
  gpm-libs-1.20.7-17.el8.x86_64         vim-common-2:8.0.1763-16.el8.x86_64    
  vim-enhanced-2:8.0.1763-16.el8.x86_64 vim-filesystem-2:8.0.1763-16.el8.noarch
  which-2.21-16.el8.x86_64             

Complete!
Removing intermediate container f593431621b5
 ---> ccc640109fd3
Step 7/15 : ENV MYPATH /usr/local
 ---> Running in d6260b3bda47
Removing intermediate container d6260b3bda47
 ---> 36d5d0b5ef33
Step 8/15 : WORKDIR $MYPATH
 ---> Running in 6284727f4c3b
Removing intermediate container 6284727f4c3b
 ---> e9d7a2395eb2
Step 9/15 : ENV JAVA_HOME /usr/local/jdk1.8.0_131
 ---> Running in bdca27b8e1ce
Removing intermediate container bdca27b8e1ce
 ---> 4899302c4ebb
Step 10/15 : ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 ---> Running in d13f4ab88cbe
Removing intermediate container d13f4ab88cbe
 ---> 234f0403b019
Step 11/15 : ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.73
 ---> Running in 732c5ac41e60
Removing intermediate container 732c5ac41e60
 ---> 6186375490d8
Step 12/15 : ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.73
 ---> Running in 570c7a15339b
Removing intermediate container 570c7a15339b
 ---> 0a16f2385ec2
Step 13/15 : ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
 ---> Running in df7eebe8078e
Removing intermediate container df7eebe8078e
 ---> 3ea0b91d7c81
Step 14/15 : EXPOSE 8080
 ---> Running in 8a4872c8e9c3
Removing intermediate container 8a4872c8e9c3
 ---> 67d4955ad68f
Step 15/15 : CMD /usr/local/apache-tomcat-8.5.73/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.5.73/bin/logs/catalina.out
 ---> Running in 827c14df6be7
Removing intermediate container 827c14df6be7
 ---> 466012b31894
Successfully built 466012b31894
Successfully tagged hou-tomcat:1.0

4、查看生成的镜像

CentOS7-Docker-DockerFile-05_第24张图片

5、启动容器

备注:
Docker挂载主机目录Docker访问出现cannot open directory .: Permission denied

解决办法:在挂载目录后多加一个--privileged=true参数即可
docker run -d -p 9090:8080 --name tomcat001 -v /home/tomcat/test:/usr/local/apache-tomcat-8.5.73/webapps/test -v /home/tomcat/tomcat_logs:/usr/local/apache-tomcat-8.5.73/logs --privileged=true hou-tomcat:1.0

在这里插入图片描述

6、验证测试访问

curl localhost:9090

CentOS7-Docker-DockerFile-05_第25张图片

CentOS7-Docker-DockerFile-05_第26张图片

7、发布项目测试

1、在 /home/tomcat/test 目录下,新建 WEB-INF文件
2、在 /home/tomcat/test/WEB-INF目录下,新建 web.xml启动文件
3、在 /home/tomcat/test 目录下,新建 test.jsp文件

web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>test</display-name>
</web-app>

test.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>heiheihei</title>
</head>
<body>
-----------welcome------------
<%=" my docker tomcat"%>
<br>
<br>
<% System.out.println("-------my docker tomcat-------");%>
</body>
</html>

8、再次访问测试

curl localhost:9090/test/test.jsp

CentOS7-Docker-DockerFile-05_第27张图片

CentOS7-Docker-DockerFile-05_第28张图片

9、查看日志

tail -f catalina.out

CentOS7-Docker-DockerFile-05_第29张图片

4、发布镜像

注册dockerhub ,需要有一个账号

1、登录 dockerhub

docker login -u 用户名

CentOS7-Docker-DockerFile-05_第30张图片

2、发布镜像

docker push 用户名/镜像名:版本号

显示带有标记的图像不存在于本地

在这里插入图片描述

-- 执行下面这条命令
docker tag 镜像ID 用户名/镜像名:版本号

再次 docker push

CentOS7-Docker-DockerFile-05_第31张图片

成功后,是这样的
可能是因为我用的虚拟机上传镜像,我的仓库里没有

CentOS7-Docker-DockerFile-05_第32张图片
docker制作自己的镜像并上传dockerhub—乔叶叶

5、总结

CentOS7-Docker-DockerFile-05_第33张图片

这是跟着大佬学习做的笔记,大家也可以去看看哈

【狂神说Java】Docker最新超详细版教程通俗易懂

你可能感兴趣的:(Docker,docker,容器,运维)