开发者社区> 蓝帽子小智> 正文

Docker05_Docker默认网络原理、网络模式、自定义网络(二)

简介: ②. 网络模式 ③. 外部是如何访问tomcat或者redis的?
+关注继续查看

②. 网络模式


微信图片_20220107122308.png


③. 外部是如何访问tomcat或者redis的?


①. 使用(宿主机的ip:端口号)进行访问tomcat或者redis的时候,会根据启动容器的-p映射端口原则,找到对应的映射端口,通过 iptables -nL去查看容器内的端口对应的ip,通过这个ip就可以访问到docker中的容器(tomcat/ redis)


微信图片_20220107122329.png


②. 默认、域名访问不通


[root@i-id8g0yu9 ~]# docker run -d --name mytomcat tomcat:jre8-alpine
2e4107a77847a3b1805b5010fe46bfd14c02b0389a6bc5c84f897547ad5c0f2d
[root@i-id8g0yu9 ~]# docker exec -it mytomcat /bin/bash
bash-4.4# ping myredis
ping: bad address 'myredis'
bash-4.4# 


③. 容器之间互相ping通(–link), docker run -d -P --name=mytomcat1 --link=myredis tomcat:jre8-alpine;这种方式启动的时候,会查询–link的容器的ip并写死到当前容器的/etc/hosts下面;而是单向的,对方并不知道我的存在,问题: myredis ip地址变了不会更新(解决方案:使用自定义网络)


[root@i-id8g0yu9 ~]# docker run -d  --name=mytomcat1 --link=myredis tomcat:jre8-alpine
0c5e60a75d031ef3b627eb0b794694e85c15c55cffee612597d356a3c1bf1f07
[root@i-id8g0yu9 ~]# docker exec -it  mytomcat1 /bin/bash
bash-4.4# ping myredis
PING myredis (172.17.0.2): 56 data bytes
64 bytes from 172.17.0.2: seq=0 ttl=64 time=0.180 ms
64 bytes from 172.17.0.2: seq=1 ttl=64 time=0.123 ms
64 bytes from 172.17.0.2: seq=2 ttl=64 time=0.120 ms
^C
--- myredis ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.120/0.141/0.180 ms
bash-4.4# cat /etc/hosts  
127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2  myredis 4982a68fda73(容器id)
172.17.0.3  0c5e60a75d03(容器id)
[root@i-id8g0yu9 ~]# docker ps
CONTAINER ID   IMAGE                COMMAND                  CREATED          STATUS              PORTS      NAMES
0c5e60a75d03   tomcat:jre8-alpine   "catalina.sh run"        2 minutes ago    Up About a minute   8080/tcp   mytomcat1
4982a68fda73   redis                "docker-entrypoint.s…"   25 minutes ago   Up 25 minutes       6379/tcp   myredis


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
探索本地Docker桥接网络
本文讲的是探索本地Docker桥接网络,【编者的话】本文主要介绍了Docker的基础网络知识,作者通过容器与MongoDB实例的连接的小实验探索了Docker的网路知识以及其中的一些问题。
1665 0
Docker——网络通信(五)(5)
Docker——网络通信(五)(5)
12 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
29133 0
docker 之网络配置
Docker 网络实现 首先,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)来收发数据包;此外,如果不同子网之间要进行通信,需要路由机制。
1085 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
20693 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23579 0
+关注
蓝帽子小智
一朵花凋零荒芜不了整个春天,一次跌倒也荒废不了整段旅程!
646
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载