环境: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
版权归原作者 帝落若烟 所有, 如有侵权,请联系我们删除。