参考:https://www.jianshu.com/p/59e0a8828b3b,根据自己实际操作整理
拉取centos镜像
docker pull centos
查询镜像id标识
docker images
启动容器
docker run -i -t -v /root/software/:/mnt/software/ 9f38484d220f /bin/bash
参数解析
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
9f38484d220f:标识images ID标识
/bin/bash:一旦容器启动,需要执行的命令,当前使用 "/bin/bash", 表示启动后直接进bash shell
说明:访问容器中/root/software 相当于访问 本地 /mnt/software/
进入容器后操作如同普通虚拟机操作
安装jdk,安装tomcat
tar -zxvf apache-tomcat-8.5.16.tar.gz
tar -zxvf jdk-8u131-linux-x64.tar.gz
mv apache-tomcat-8.5.16 /opt/tomcat
mv jdk1.8.0_131/ /opt/jdk
设置java环境变量
vi /etc/profile
文件末尾添加
JAVA_HOME=/opt/jdk/
JAVA_BIN=/opt/jdk/bin
JRE_HOME=/opt/jdk/jre
CLASSPATH=/opt/jdk/jre/lib:/opt/jdk/lib:/opt/jdk/jre/lib/charsets.jar
export JAVA_HOME JAVA_BIN JRE_HOME PATH CLASSPATH
source /etc/profile
vi ~/.bashrc
末尾添加
export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source ~/.bashrc
验证java环境
启动tomcat
设置启动脚本
vi /root/run.sh
添加内容
#!/bin/bash
source ~/.bashrc
sh /opt/tomcat/bin/catalina.sh run
设置权限
chmod u+x /root/run.sh
创建tomcat镜像
docker ps -a
docker commit a71e42370a98 mytomcat:1.0
tomcat webapps与宿主机绑定
宿主服务器创建一个webapps文件夹,用来存放项目,映射容器中的 tomcat 的webapps
mkdir /root/webapps/test
cd /root/webapps/test
vi index.html
index.html中写个“你好”
启动tomcat
docker run -d -p 58080:8080 -v /root/webapps/:/opt/tomcat/webapps/ --name mytomcat_1 mytomcat:1.0 /root/run.sh
参数解释:
-d:以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
--name:表示容器名称,用一个有意义的名称命名即可。
浏览器访问http://IP:58080/test/index.html