springboot里面学习到了docker,顺便温习一下linux。另外,微软牛逼,hyper-v,强无敌。
先放一张命令表,以供参考
1、搜索镜像
[root@localhost ~]# docker search tomcat
2、拉取镜像
[root@localhost ~]# docker pull tomcat
3、根据镜像启动容器
docker run ‐‐name mytomcat ‐d tomcat:latest
4、docker ps
查看运行中的容器
5、 停止运行中的容器
docker stop 容器的id
6、查看所有的容器
docker ps ‐a
7、启动容器
docker start 容器id
8、删除一个容器
docker rm 容器id
9、启动一个做了端口映射的tomcat
[root@localhost ~]# docker run ‐d ‐p 8888:8080 tomcat
‐d:后台运行
‐p: 将主机的端口映射到容器的一个端口 主机端口:容器内部的端口
10、为了演示简单关闭了linux的防火墙
service firewalld status ;查看防火墙状态
service firewalld stop:关闭防火墙
11、查看容器的日志
docker logs container‐name/container‐id
更多命令参看
https://docs.docker.com/engine/reference/commandline/docker/
可以参考每一个镜像的文档
- yum install docker 安装 docker。安装完成后可以 systemctl start docker 启动 docker,然后 docker ‐v ,查询docker的把版本,若有信息出现,则安装成功。
- 设置开机自动启动docker: systemctl enable docker
- docker search tomcat : 搜寻tomcat,docker pull tomcat :下载tomcat最新版本(默认),也可以根据tag来选择下载的版本。
- 启动镜像 docker start 容器id..
一些具体的安装步骤就不这么详细说了,相信我看着前面的命令表就能完成。写这篇博客主要是想讲一个坑的解决方法。
正文
在完成端口号映射之后,可以在主机输入虚拟机ip:8888(映射的端口号)来访问tomcat的主页。但是高版本的WEB-INF/下面是没有任何页面的,所以会访问到404页面。为此,解决方法:
- systemctl disable firewalld.service 永久关闭防火墙。(以防疏忽)
- docker exec -it c110e319cdd1(启动的Tomcat容器的容器id) /bin/bash 进入这个路径
- ls -l 查看当前文件夹内的所有文件
- cd webapps 进入webapps文件夹下
- ls -l 查看webapps下的文件 显示total 0,问题就出在这里,webapps文件夹下没有东西
- cd .. 返回上一级目录
- rm -rf webapps 删除webapps文件夹(-r是级联删除,-f是强制删除,不然文件夹是删不掉的)
- mv webapps.dist webapps 将webapps.dist文件夹下的内容复制到给webapps文件夹
- 访问tomcat,成功
解决方法参考了这篇博客https://blog.csdn.net/elsostal/article/details/104408838