4.docker镜像原理
查看镜像
[root@wmd03 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest f796d3d2c195 3 weeks ago 647MB
centos latest 0d120b6ccaa8 2 months ago 215MB
镜像是一种轻量型的,可独立运行的软件包,用来打包软件运行环境和基于运行环境开发的软件,她包含运行某个软件所需要的所有内容,包括代码,运行时,库,环境变量和配置文件
启动tomcat
两种:
1.docker run -it -p 8888:8080 tomcat(小写的p,指定端口对应)
2.docker run -it -P tomcat(大写的P,随机端口)
1.docker run -it -p 8888:8080 tomcat(小写的p,指定端口对应)
[root@wmd03 ~]# docker run -it -p 8888:8080 tomcat
这两个端口是端口映射的意思
docker对外开放的端口:docker中tomcat的端口,外部访问不能使用:localhost:8080,只能使用localhost:8888
这里可能会出现一个问题:localhost:8888无法出现汤姆猫:
这是因为docker的tomcat容器中的webapp文件夹下是空的,可以这么解决
1.进入交互页面
[root@wmd03 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c5edf5059a7a tomcat "catalina.sh run" About a minute ago Up About a minute 0.0.0.0:8080->8080/tcp relaxed_williams
[root@wmd03 ~]# docker exec -it c5edf5059a7a /bin/bash
root@c5edf5059a7a:/usr/local/tomcat# ls
BUILDING.txt NOTICE RUNNING.txt lib temp work
CONTRIBUTING.md README.md bin logs webapps
LICENSE RELEASE-NOTES conf native-jni-lib webapps.dist
root@c5edf5059a7a:/usr/local/tomcat# cd webapps
root@c5edf5059a7a:/usr/local/tomcat/webapps# ls---->发现webapp下没有文件
2.将webapps.dist复制到webapp里
root@c5edf5059a7a:/usr/local/tomcat# rm -rf webapps
root@c5edf5059a7a:/usr/local/tomcat# cp -r webapps.dist/ webapps
3.这时访问localhost:8080可以访问到tom猫
2.docker run -it -P tomcat(大写的P,随机端口)
[root@wmd03 ~]# docker run -it -P tomcat
[root@wmd03 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ba5858a71800 tomcat "catalina.sh run" 8 seconds ago Up 7 seconds 0.0.0.0:32768->8080/tcp eloquent_swirles
发现docker对外的端口为32768
提交更改并生成新的镜像
目标:我们将原来的tomcat中的文档部分删除掉,并生成新的tomcat镜像
1.删除原来的tomcat的doc文档:
[root@wmd03 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0c3bab59d46e tomcat "catalina.sh run" 38 seconds ago Up 37 seconds 0.0.0.0:8888->8080/tcp ecstatic_bohr
[root@wmd03 ~]# docker exec -it 0c3bab59d46e /bin/bash --->进入正在运行的tomcat的交互页面
root@0c3bab59d46e:/usr/local/tomcat# cd webapps
root@0c3bab59d46e:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager manager
root@0c3bab59d46e:/usr/local/tomcat/webapps# rm -rf docs/ -->删除docs目录
2.提交更改生成新的镜像: docker commit -m="提交的描述信息" -a="作者" 容器id 命名空间/要创建的目标镜像名:[版本号]
[root@wmd03 ~]# docker commit -m="吴孟达提交的没有文档的tomcat" -a="吴孟达" 0c3bab59d46e wmd/tomcat:1.2
[root@wmd03 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
wmd/tomcat 1.2 36f256ca0afb 6 seconds ago 649MB
tomcat latest f796d3d2c195 3 weeks ago 647MB
centos latest 0d120b6ccaa8 2 months ago 215MB
发现生成了新的镜像,此时如果启动新的镜像,访问文档应该会报404,因为没有文档文件夹
[root@wmd03 ~]# docker run -it -p 7777:8080 tomcat名称:版本号
[root@wmd03 ~]# docker run -it -p 7777:8080 wmd/tomcat:1.2
页面输入:localhost:7777 点击上图的文档按钮,发现确实报404
3.后台运行方式:
[root@wmd03 ~]# docker run - -p 7777:8080 wmd/tomcat:1.2