社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

Docker网络

dotNET跨平台 • 3 年前 • 457 次点击  

本文分成两个部分,第一个部分是一个关于docker网络的相关知识和命令, 第二部分是踩的一些坑

docker网络

docekr0

docker0是Docker中的默认网络接口。当启动Docker时,它会在主机上创建一个名为docker0的虚拟网络接口。docker0主要用于容器和宿主机之间的通信以及容器与外部网络的连接。

docker0是一个桥接网络接口,它在Docker安装和启动时自动生成。

容器互联 --link (了解)

我们通过容器的名字是无法ping通的,例如【docker exec -it tomcat02 ping tomcat01】是没有办法ping通的,

当然我们可以使用--link可以解决网络连通问题 使用docker run -d -P --name tomcat03 --link tomcat02 tomcat运行tomcat03并且连通tomcat02是可以的,并且通过docker exec -it tomcat03 ping tomcat02可以ping通。

但是反向就不能ping通了【docker exec -it tomcat02 ping tomcat03】就会ping失败。

网络模式

  • • bridge:桥接docker(默认,自己创建也使用bridge模式);

  • • none:不配置网络;

  • • host:和宿主机共享网络;

  • • container:容器网络连通!(用的少,局限很大);

命令

  • • 创建一个虚拟的网络

--driver bridge  # 桥接模式
--subnet 192.168.0.0/16  # 配制一个子网,65535个字段  192.168.0.2——192.168.255.255
--gateway 192.168.0.1   # 配制默认的路由网关
mynet #表示自定义的网络名
  • • 查看docker network ls

  • • 查看详情 docker network inspect mynet

  • • 将容器加入网络 docker network connect mynet rongqiid

更多docker推荐这一片详细的文章【真的是一片文章就学的清清楚楚的】,不是笔者写的,里面包含部署Redis集群(可以尝试下)。

https://blog.csdn.net/weixin_43246215/article/details/108934216

踩的一部分坑

docker连接mysql SQLSTATE[HY000] [2002] Connection refused, No route to host怎么办

使用docker生成mysql容器,

在连接时,

如果你把host写成 localhost $host='localhost';

会报错:SQLSTATE[HY000] [2002] No such file or directory

如果把 host 写成 IP 地址,

$host='127.0.0.1';

会报错 SQLSTATE[HY000] [2002] Connection refused

解决:

应该写成mysql容器的名称,

例如 $host='lnmp_mysql';

这里有个前提, 需要你的mysql容器和php容器在同一个docker网络,

或者使用 --link lnmp_mysql指定。

感谢前辈们提供的解决办法

原文:https://www.cnblogs.com/maowenqiang/p/16010447.html

推荐阅读

欢迎关注我的公众号“Net分享”,技术文章第一时间推送,随缘更新 , 分享一些你可能注意不到的细节。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/160452