背景
参考了狂神老师的 Docker 教程,非常棒!
https://www.bilibili.com/video/BV1og4y1q7M4?p=15
直接运行容器
本地找不到镜像会自动下载
--rm
- Automatically remove the container when it exits
- 该参数官方推荐,一般用来测试,这个容器用完就会自动删除,用完即删
![](https://img-blog.csdnimg.cn/img_convert/74dbad80e09c2480356e7faecd4e3dd6.png)
下载 ing
下载成功后,容器内部运行日志
![](https://img-blog.csdnimg.cn/img_convert/d292c29b133f18c2be604b0aa982e4d9.png)
能看到最后在 8080 端口运行成功
停止运行容器,查看镜像和容器列表
![](https://img-blog.csdnimg.cn/img_convert/d83ea6810f81a223526e29179bfa9512.png)
刚刚下载的镜像还在,但是容器已经自动删除了
下载 tomcat 最新版镜像
docker pull tomcat
查看下载的镜像
docker images
运行容器
- -d:后台守护Inc方式运行
- -p:端口映射,容器内 8080 端口映射到宿主机 8080 端口
- --name:自定义容器名
docker run -d -p 8080:8080 --name tomcat01 tomcat
浏览器访问 8080 端口验证 Tomcat
![](https://img-blog.csdnimg.cn/img_convert/c54a5eedd93303204703d36d3dec52d0.png)
进入容器内部终端模式
docker exec -it tomcat01 /bin/bash
查看目录
# 找不到命令
ll
# 正常命令
ls -l
![](https://img-blog.csdnimg.cn/img_convert/2bd09d54a80fdd0398c7867f2dd4e6f9.png)
进入 webapps 目录
![](https://img-blog.csdnimg.cn/img_convert/0181cb2fec0f2f1d166941ecd9db1e11.png)
webapps 目录下啥东西都没
直接访问 8080 报 404 存在的两个问题
- linux 命令变少了
- webapps 目录为空
- 所以导致直接访问 8080 端口无法正常打开 Tomcat
原因
阿里云镜像的原因,阿里云默认是最小的镜像,所以不必要的都剔除掉,保证最小可运行的环境!
进入 webapps.dist 目录
![](https://img-blog.csdnimg.cn/img_convert/0fa907c4fc08c86554482a75bc5e7269.png)
发现 Tomcat 需要用到的目录和文件都在里面
从 webapps.dist 目录下复制所有内容到 webapps 目录下
cp -r webapps.dist/* webapps/
![](https://img-blog.csdnimg.cn/img_convert/390ccf6c850f6986ff7a095006c43ca1.png)
多个目录复制记得加参数 -r
再次访问 8080 端口验证 Tomcat
![](https://img-blog.csdnimg.cn/img_convert/ece589fd91e4c2d7adc664f06481bccc.png)