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

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: ②. 网络模式③. 外部是如何访问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


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
13天前
|
存储 算法 Windows
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(下)
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例
|
4天前
|
网络协议 程序员 网络性能优化
【网络原理】TCP 协议中比较重要的一些特性(三)
【网络原理】TCP 协议中比较重要的一些特性(三)
10 0
|
4天前
|
缓存 网络协议
【网络原理】TCP 协议中比较重要的一些特性(二)
【网络原理】TCP 协议中比较重要的一些特性(二)
10 0
|
4天前
|
网络协议
【网络原理】TCP 协议中比较重要的一些特性(一)
【网络原理】TCP 协议中比较重要的一些特性(一)
8 0
|
4天前
|
负载均衡 网络协议 安全
【计算机网络】虚拟路由冗余(VRRP)协议原理与配置
【计算机网络】虚拟路由冗余(VRRP)协议原理与配置
10 0
|
4天前
|
运维 安全 Linux
深入理解Docker自定义网络:构建高效的容器网络环境
深入理解Docker自定义网络:构建高效的容器网络环境
|
4天前
|
缓存 安全 算法
网络原理 HTTP _ HTTPS
网络原理 HTTP _ HTTPS
10 0
|
5天前
|
监控 网络协议 数据安全/隐私保护
运用自定义协议设计与实现“跨网络计算器”
运用自定义协议设计与实现“跨网络计算器”
25 3
|
12天前
|
机器学习/深度学习 PyTorch TensorFlow
【Python机器学习专栏】卷积神经网络(CNN)的原理与应用
【4月更文挑战第30天】本文介绍了卷积神经网络(CNN)的基本原理和结构组成,包括卷积层、激活函数、池化层和全连接层。CNN在图像识别等领域表现出色,其层次结构能逐步提取特征。在Python中,可利用TensorFlow或PyTorch构建CNN模型,示例代码展示了使用TensorFlow Keras API创建简单CNN的过程。CNN作为强大深度学习模型,未来仍有广阔发展空间。
|
13天前
|
安全 网络协议 算法
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
【计算机网络】http协议的原理与应用,https是如何保证安全传输的