Dockerfile制作基于基础镜像的tomcat镜像
创始人
2024-06-03 14:40:03
0

1.按照业务类型或系统类型等方式划分创建目录环境。

[root@docker ~]# mkdir  -p /data/dockerfile/tomcat


2.目录下准备安装的相关文件,下载所需的安装包。


[root@docker ~]# cd  /data/dockerfile/tomcat/
[root@docker tomcat]# wget https://yw-du.oss-accelerate.aliyuncs.com/jdk-8u161-linux-x64.tar.gz
[root@docker tomcat]# wget  https://downloads.apache.org/tomcat/tomcat-9/v9.0.55/src/apache-tomcat-9.0.55-src.tar.gz


3.编写dockerfile和readme.txt文件

[root@docker tomcat]# touch readme.txt
[root@docker tomcat]# vim Dockerfile

Dockerfile :

# centos系统作为底层
FROM centos
# 作者信息及邮箱
MAINTAINER xxxx@xxx.com
# 将readme.txt复制到容器的/usr/local/readme.txt
COPY readme.txt /usr/local/readme.txt
# 添加两个压缩包到 /usr/local之中,会自动解压缩
ADD jdk-8u181-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.52.tar.gz /usr/local/
# 运行两条命令:更新包和下载vim
RUN apt-get update -y
RUN apt-get install -y vim
# 定义环境变量
ENV MYPATH /usr/local
# 设置工作目录
WORKDIR $MYPATH 
# 配置jdk环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_181
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 配置tomcat环境变量
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.52
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.52
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin/
# 暴露端口
EXPOSE 8080
# 执行命令
CMD /usr/local/apache-tomcat-9.0.52/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.52/bin/logs/catalina.out 

4.构建镜像

sudo docker build -f Dockerfile -t test/tomcat:1.0 .

5.查看新镜像

sudo docker images
 

6.新建容器+挂载目录

sudo docker run -d -p 9090:8080 --name tomcat01 -v /test_tomcat/test:/usr/local/apache-tomcat-9.0.52/webapps/test -v /test_tomcat/tomcatlogs:/usr/local/apache-tomcat-9.0.52/logs test/tomcat:1.0
 

挂载了两个目录,一个保存webapp一个保存logs

  • -d 后台执行
  • -p 指定端口映射
  • --name 容器目录
  • -v 数据卷挂载

7.测试发布网页

新建一个WEB-INF目录,再添加一个index.html
再在WEB-INF中新建一个web.xml文件
文件目录:

web.xml




index.html

text

text

测试 测试 测试

访问 localhost:8005/test

8.Docker Hub上发布镜像

(1)https://hub.docker.com/ 注册账号
(2) 确定账号可以登陆
(3)在服务器上提及自己的镜像

  • 查看如何登陆

         sudo docker login --help

  • 登陆dockerhub

sudo docker login -u 用户名

  • push 自己的镜像
    注意如果这里不加上作者信息,会被拒绝提交

sudo docker push test/tomcat:1.0

  • 如果push不了,请参考是不是应为该镜像名和用户表示是信息已经被人用了
  • 使用docker tag给你的镜像改名

sudo docker tag test/tomcat:1.0 name/tomcat:1.0

再使用push命令来提交

sudo docker push name/tomcat:1.0

docker hub上查看新的镜像

9. 阿里云上发布镜像
(1)登陆阿里云
(2)进入阿里云镜像管理
(3)新建一个命名空间(一个用户只能免费创建三个)
(4)新建一个仓库(包含各种镜像)
(5)根据阿里云的镜像仓库操作指南进行操作:

退出之前登陆的DockerHub

sudo docker logout


登陆阿里云镜像

docker login --username=dc registry.cn-hangzhou.aliyuncs.com


将我们自己的镜像推送到阿里云
坑1:给你自己的镜像名更改名字为阿里云提供的这个。也就是你前面新建的仓库的名字(全路经),重新打上一个tag进行发布

docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/dc/dc_test:[镜像版本号


使用docker push吧!

docker push registry.cn-hangzhou.aliyuncs.com/dc/dc_test:[镜像版本号]


看看我push的结果:

sudo docker push dc_test


再去阿里云上看看
 

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...