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>