docker ——安装tomcat

环境:centos7

安装tomcat

第一步:联网

第二步:开启docker

systemctl start docker

第三步:拉取镜像

docker pull tomcat             //下载tomcat镜像

docker pull tomcat   

第四步:创建容器

docker run -d -p 8080:8080 --name tomcat9 tomcat        //启动基于tomcat镜像创建tomcat9的容器

docker run -d  宿主机端口:容器端口 --name 容器名  基于的镜像名

docker run -d -p 8080:8080 --name tomcat9 tomcat

docker ps

docker ps
docker exec -it tomcat9 /bin/bash

 docker exec -it tomcat9 /bin/bash      //进入tomcat9容器

 

 显而易见,这个时候打开火狐浏览器输入localhost:8080并不可以看到界面

 

 文件报错404,显示文件并不存在

docker exec -it tomcat9 /bin/bash

第五步:修改404错误

root@8696593e28a3:/usr/local/tomcat# whereis tomcat      //查看tomcat的路径

whereis tomcat

 

进入路径,查看文件信息,进入webapps,查看文件,里面并没有文件,这就是网页报错404的原因,因为找不到文件

root@8696593e28a3:/usr/local/tomcat# cd /usr/local/tomcat
root@8696593e28a3:/usr/local/tomcat# ls

root@8696593e28a3:/usr/local/tomcat#
root@8696593e28a3:/usr/local/tomcat/webapps# ls

 cd /usr/local/tomcat
ls
cd webapps
ls

复制webapps.dist到webapps

cd ..
ls
cp -r webapps.dist/* webapps

 回到刚才浏览器刷新可以出现以下界面

 创建无需复制webapps.dist到webapps的容器

docker commit mytomcat tomcat:web

docker images

docker run -it --name tomcat-web tomcat:web /bin/bash

[root@localhost ~]# docker commit mytomcat tomcat:web    //创建基于tomcat9的镜像tomcat:web

[root@localhost ~]# docker images                                     //查看镜像

[root@localhost ~]# docker run -it --name tomcat-web tomcat:web /bin/bash       //启动基于镜像tomcat:web创建的镜像tomcat-web

docker ps -a

[root@localhost ~]# docker ps -a

 分层下载

docker pull nginx

 查看镜像分层的方式可以通过 docker image inspect 命令!

docker image inspect nginx:latest

举一个简单的例子,假如基于Ubuntu Linux 16.04创建一个新的镜像,这就是新镜像的第一层;如果在该镜像中添加Python包,就会在基础镜像层之上创建第二个镜像层;如果继续添加一个安全补丁,就会创建第三个镜像层。

本人理解的意思就是,想要下载A镜像和B镜像,A镜像5M,B镜像3M,A镜像和B镜像有2M文件相似,如果不使用分层下载直接打包下载,那么一共想要耗费8M的流量。但是如果使用分层下载,那么只需耗费6M的流量,那2M的内容可以实现共享。

当然这只是我个人理解,如果有误欢迎指正哦!


UnionFS(联合文件系统)

Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。Union 文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录

数据卷:

docker run -it -v /home/ceshi:/home --name tomcat-volume tomcat /bin/bash

[root@localhost ~]# docker run -it -v /home/ceshi:/home --name tomcat-volume tomcat /bin/bash

验证数据同步

容器:

宿主机:

两者数据同步,即在容器里进行的操作同步到宿主机,宿主机里进行的操作也会同步到容器,如果你们不信的话,可以试试哦~

创建基于tomcat镜像的tomcat-yun容器,宿主机/home/yun与容器/home对应,宿主机/etc/yun与容器/etc对应

docker run -it -v /home/yun:/home -v  /etc/yun:/etc --name tomcat-yun tomcat /bin/bash

[root@localhost ~]# docker run -it -v /home/yun:/home -v  /etc/yun:/etc --name tomcat-yun tomcat /bin/bash

猜你喜欢

转载自blog.csdn.net/weixin_64033212/article/details/130245251