通过docker commit来实现镜像的构建

通过docker commit来实现镜像的构建

目标:接下来我们通过基础镜像centos(latest),在该镜像中安装jdk和tomcat以后将其制作为一个新的镜像mycentos

1.创建容器

#拉取镜像

docker pull centos

#创建容器

docker run -di --name mycentos1 centos

2.拷贝资源

#通过官网下载tomcat和jdk安装包
curl -O https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.20/bin/apache-tomcat-10.0.20.tar.gz
 curl -O https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.tar.gz
#将宿主机的tomcat和jdk拷贝至容器
docker cp /root/apache-tomcat-10.0.20.tar.gz mycentos:/root
docker cp /root/jdk-18_linux-x64_bin.tar.gz mycentos:/root

3.安装资源

#进入容器
docker exec -it mycentos1 /bin/bash
---------在容器内部执行-------------
#切换至/root目录
cd /root/
#创建tomcat和java目录
mkdir -p /usr/local/tomcat
mkdir -p /usr/local/java
#将jdk和tomcat解压至容器/usr/local/java和/usr/local/tomcat目录中
tar -zxvf apache-tomcat-10.0.20.tar.gz -C /usr/local/tomcat
tar -zxvf jdk-18_linux-x64_bin.tar.gz -C /usr/local/java
#配置jdk环境变量
vi /etc/profile
#在环境变量文件中添加以下内容
export JAVA_HOME=/usr/local/java/jdk-18.0.1.1
export PATH=$PATH:$JAVA_HOME/bin
#重新加载环境变量文件
source /etc/profile
#测试环境变量是否配置成功
[root@15d01d4d5db5 apache-tomcat-9.0.62]# java -version
java version "18.0.1.1" 2022-04-22
Java(TM) SE Runtime Environment (build 18.0.1.1+2-6)
Java HotSpot(TM) 64-Bit Server VM (build 18.0.1.1+2-6, mixed mode, sharing)
#启动tomcat
[root@a72a482d83f2 apache-tomcat-10.0.20]# bin/startup.sh  
Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-10.0.20
Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-10.0.20
Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-10.0.20/temp
Using JRE_HOME:        /usr/local/java/jdk-18.0.1.1
Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-10.0.20/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-10.0.20/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
#没有指定端口,无法访问页面,所以停止tomcat
[root@5f173819912b apache-tomcat-10.0.20]# bin/shutdown.sh
#删除tomcat和jdk压缩包
rm apache-tomcat-9.0.62.tar.gz jdk-18_linux-x64_bin.tar.gz -rf
#退出容器
exit

4.构建镜像

[root@web-server ~]# docker commit -a="liang" -m="jdk18 and tomcat9" mycentos1 mycentos
  • -a:提交的镜像作者

  • -c:使用Dockerfile指令来创建镜像;

  • -m:提交时的文字说明

  • -p:在commit时,将容器暂停

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fVyRedoC-1652014992170)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220508204405103.png)]

5.使用构建的镜像创建容器
在这里插入图片描述

启动完tomcat后,访问http://192.168.85.5:8080
在这里插入图片描述


总结:docker commit的步骤

  1. 去官网下载centos镜像
  2. 根据官网镜像创建了一个容器
  3. 将宿主机的jdk和tomcat的资源拷贝进容器
  4. 在容器内部安装了jdk和tomcat
  5. 将这个已安装 jdk和tomcat的容器重新构建为一个新镜像mycentos


遇到的问题:

前面的步骤全部成功,但到了最终访问页面访问不出来,原因是tomcat9版本和jdk18版本不搭配,tomcat版本过低,改为tomcat10就成功了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值