我们需要编写一个运行脚本,当启动容器时,运行该脚本,启动 Tomcat,具体过程如下:
sh /opt/tomcat/bin/catalina.sh run
注意:这里必须先加载环境变量,然后使用 Tomcat 的运行脚本来启动 Tomcat 服务。
使用以下命令,根据某个“容器 ID”来创建一个新的“镜像”:
docker commit 57c312bbaad1 huangyong/javaweb:0.1
该容器的 ID 是“57c312bbaad1”,所创建的镜像名是“huangyong/javaweb:0.1”,随后可使
docker run -d -p 58080:8080 --name javaweb huangyong/javaweb:0.1 /root/run.sh
-d:表示以“守护模式”执行/root/run.sh 脚本,此时 Tomcat 控制台不会出现在输出终端
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端
口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口
了。
--name:表示容器名称,用一个有意义的名称命名即可。
关于 Docker 网桥的内容,需要补充说明一下。实际上 Docker 在宿主机与容器之间,搭建
了一座网络通信的桥梁,我们可通过宿主机 IP 地址与端口号来映射容器内部的 IP 地址与
端口号,
在一系列参数后面的是“镜像名”或“镜像 ID”,怎么方便就怎么来。最后是“初始命令”,
它是上面编写的运行脚本,里面封装了加载环境变量并启动 Tomcat 服务的命令。容器。
访问:http://192.168.65.132:58080/
//给镜像安装程序(本例是 ifconfig 命令)
docker run liyong/javaweb:0.1 yum install net-tools -y
//提交求改后的镜像
docker commit 15af459a3b87 liyong/javaweb:0.1
//映射本地文件夹进入容器中
docker run -i -t -v /root/Downloads/:/mnt/software/ c726f2a9a837 /bin/bash
//显示网桥信息