ubuntu docker使用Dockerfile建立tomcat镜像包含jdk16.0.1的容器

1. 准备工作 

bulingbuling@us:~$ ls
apache-tomcat-9.0.45.tar.gz  Dockerfile  index.html  jdk-16.0.1_linux-x64_bin.tar.gz
bulingbuling@us:~$ 

Dockerfile文件内容如下

# Base images 基础镜像
From ubuntu

#Maintainer 维护者信息
Maintainer bulingbuling

#Add  文件放在当前目录下,拷过去会自动解压
Add jdk-16.0.1_linux-x64_bin.tar.gz /usr/local/
Add apache-tomcat-9.0.45.tar.gz /usr/local/

#Copy复制到镜像文件中(测试时能用到)
Copy index.html /usr/local/apache-tomcat-9.0.45/webapps/ROOT/

#Env 设置环境变量java与tomcat环境变量
Env JAVA_HOME /usr/local/jdk-16.0.1
Env CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
Env CATALINA_HOME /usr/local/apache-tomcat-9.0.45
Env CATALINA_BASE /usr/local/apache-tomcat-9.0.45
Env PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

#Workdir 相当于cd
Workdir /usr/local/apache-tomcat-9.0.45/

#容器运行时监听的端口 (没有则无法设置随机端口)
Expose 8080

#Entrypoint 自动执行  (没有会无法访问端口 curl(56) Recv failure: Connection reset by peer)
Entrypoint ["/usr/local/apache-tomcat-9.0.45/bin/catalina.sh","run"]

2.依据Dockerfile建立镜像
sudo docker build -t tomcat  .  (有个符号“.”表示当前目录)   (sudo 可以免执行  docker 免 sudo 命令 )

Step 12/12 : Entrypoint ["/usr/local/apache-tomcat-9.0.45/bin/catalina.sh","run"]
 ---> Running in f8ce662b471b
Removing intermediate container f8ce662b471b
 ---> 0735c78d3c66
Successfully built 0735c78d3c66
Successfully tagged tomcat:latest

3.docker images     (查看镜像)

bulingbuling@us:~$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
tomcat       latest    0735c78d3c66   31 minutes ago   400MB
ubuntu       latest    7e0aa2d69a15   3 weeks ago      72.7MB

4.docker run -it --name mytomcat -d -p 66:8080 tomcat  (启动容器端口为:8080) 

  • d: 后台运行容器,并返回容器ID;

  • -i: 以交互模式运行容器,通常与 -t 同时使用;

  • -P: 随机端口映射,容器内部端口随机映射到主机的端口

  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

  • --name="nginx-lb": 为容器指定一个名称;

5.docker ps  (查看以启动的容器  docker ps  -a  包括未启动的容器)

bulingbuling@us:~$ docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                   NAMES
ec4b8063d1e8   tomcat    "/usr/local/apache-t…"   6 minutes ago    Up 6 minutes    0.0.0.0:66->8080/tcp, :::66->8080/tcp   mytomcat
f642603f6776   tomcat    "/usr/local/apache-t…"   41 minutes ago   Up 41 minutes   0.0.0.0:88->8080/tcp, :::88->8080/tcp   brave_lewin

6.连接端口(外部浏览器    主机ip:端口号    http://192.168.0.666:66)

bulingbuling@us:~$ curl localhost:66
CTYPE html>
<html lang="en">
	<head>
		    <meta charset="UTF-8">
		        <meta http-equiv="X-UA-Compatible" content="IE=edge">
			    <meta name="viewport" content="width=device-width, initial-scale=1.0">
			        <title>Document</title>
	</head>
	<body>
		    <p>笙歌醉梦青衫落拓予风复笙歌</p>
	</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以按照以下步骤制作Tomcat镜像: 1. 创建一个新的目录,例如 "tomcat-docker"。 2. 在该目录中创建一个名为 "Dockerfile" 的文件,并输入以下内容: ``` # 基于centos7镜像创建 FROM centos:7 # 设置环境变量 ENV TOMCAT_VERSION 9.0.41 ENV CATALINA_HOME /opt/tomcat # 安装必要的软件包 RUN yum update -y && \ yum install -y java-1.8.0-openjdk-devel wget && \ yum clean all # 下载Tomcat安装包 RUN wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-9/v${TOMCAT_VERSION}/bin/apache-tomcat-${TOMCAT_VERSION}.tar.gz && \ tar -zxvf apache-tomcat-${TOMCAT_VERSION}.tar.gz && \ rm -f apache-tomcat-${TOMCAT_VERSION}.tar.gz && \ mv apache-tomcat-${TOMCAT_VERSION} ${CATALINA_HOME} # 删除Tomcat中自带的webapps RUN rm -rf ${CATALINA_HOME}/webapps/* # 暴露Tomcat端口 EXPOSE 8080 # 启动Tomcat CMD ["/opt/tomcat/bin/catalina.sh", "run"] ``` 该Dockerfile做了以下事情: - 基于CentOS 7镜像创建一个新的镜像。 - 设置了环境变量,包括Tomcat版本和安装路径。 - 安装了Java和wget软件包。 - 下载并解压了Tomcat安装包。 - 删除了Tomcat中自带的webapps目录(可以根据需要更改)。 - 暴露了Tomcat的8080端口。 - 启动Tomcat。 3. 在该目录中运行以下命令构建Tomcat镜像: ``` docker build -t my-tomcat . ``` 其中,"my-tomcat"是您的镜像名称,可以根据需要更改。 4. 运行以下命令启动Tomcat容器: ``` docker run -d -p 8080:8080 my-tomcat ``` 其中,"-d"选项表示容器将在后台运行,"-p"选项将主机的8080端口映射到容器的8080端口,"my-tomcat"是您之前构建的Tomcat镜像名称。 5. 访问 http://localhost:8080 即可查看Tomcat主页。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值