网站首页 > 基础教程 正文
作者:程序员的时光
思维导图:
1,Docker映射是什么?
容器里面运行着应用,外部需要访问交互,涉及到容器里面的端口和宿主机之间的映射;
通过端口映射,我们就可以从外部访问宿主机的指定端口来访问到容器的应用;
2,如何实现Docker映射?
这里我们以Tomcat为例子,我们看看如何在外部通过Docker端口映射来访问宿主主机里面的Tomca。
2.1,下载tomcat容器镜像
下载镜像:docker pull tomcat:tag,不加版本号的话默认是下载最新版本
查看所有镜像:docker images,我这里是已经下载了三个版本的tomcat
2.2,创建并启动tomcat容器
创建启动tomcat容器:docker run --name tomcat1 -d tomcat :latest, 其中-d是表示后台运行容器,tomcat1是容器名称,tomcat :latest是注明版本号
查看正在运行的容器:docker ps
2.3,开放端口映射命令
映射命令:docker run --name 容器名称 -d -p (服务器端口):(Docker端口) image-name
--name:自定义容器名,不指定时,docker会自动生成一个名称
-d:表示后台运行容器
服务器端口:这里的tomcat端口是8080
Docker端口:我们任意设置一个端口号,但是前提是这个端口号不能被占用
image-name:指定运行的镜像名称以及Tag,这里也可以用镜像ID都可以的
这个时候我们的端口以及搭建好了,我们在浏览器中输入服务器ip地址(查看命令:ip addr show)再加上Docker端口就可以访问了。
结果,就这??
2.4,关于访问映射端口出现404问题
这个问题相信刚开始搭建的时候应该都遇到过,我查了一下原因如下:
解决办法:
我们先进入到tomcat的目录:
进入之后,修改webapps为webapps2或者修改webapps.dist为webapps就可以了
我们先来看看效果:
3,提交运行容器成为镜像
上述运行成功之后,也存在一定问题,如果不退当前容器的情况下,运行端口端口映射的tomcat是可以访问到首页的;但是,我们只是在这个容器中修改了 命名,我们重启了这个容器,修改的命名就会恢复。
为了防止恢复问题,我们自己把修改后的镜像映射成新的镜像
命令:docker commit -a=“作者名” -m=“备注” 运行时容器ID 新镜像名称
然后我们就可以用新镜像来重新访问映射端口的应用了
非常方便!
- 关注我,助你早日成为全栈工程师。
往期经典 :
基于Springboot+SpringCloud+Redis+商城系统
基于springboot、springcloud实现java快速开发平台
基于springboot的资源+博客系统发布「原创」【开源】
猜你喜欢
- 2024-10-12 Docker方式部署Nextcloud docker部署项目的两种方式
- 2024-10-12 一起学docker-可视化管理01-Portainer
- 2024-10-12 牛掰!Docker从入门到上手的终极指南,看这一篇文章就够了
- 2024-10-12 Docker进阶---使用网络 docker的网络连接方式
- 2024-10-12 开源&Docker :再说自动化了,一个docker搞定你90%的登录与签到
- 2024-10-12 干货分享:Docker实战中一些技巧 docker基础实战教程一:入门
- 2024-10-12 Linux 安装docker linux 安装docker 没图标
- 2024-10-12 跟我一起学docker(七)--网络 docker网络管理
- 2024-10-12 松勤软件测试:详解Docker,如何用portainer管理Docker容器
- 2024-10-12 Docker之6 网络管理 docker网络类型 以及特点
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)