我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Docker容器与宿主机相互访问

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Docker容器与宿主机相互访问

        近期公司在给客户安装部署项目时,由于客户电脑处于无任何网络下,因此需要宿主机与容器之间可以互相访问;但是,由于容器的特性,localhost和127.0.0.1在容器中都是指向容器内,而不是宿主机,因此需要调整。

        通过我大量搜索和实践,发现网上教的什么自定义网络和修改容器启动指定net网络都不太好用,最后通过实践发现了更方便的方法。

        这里用win10测试,家庭版、专业版都适用(Linux本身有网卡,可不使用docker的虚拟网卡,不过使用docker的虚拟网卡ip也是好使的)。

        首先启动你的docker,然后Win + R ,输入cmd回车,在命令行输入ipconfig,查看ip

        从图中可看见,192.168.99.1就是docker的虚拟网卡ip,使用Docker desktop启动的docker就是如图的适配器名称,使用Docker toolbox部署的docker,网卡适配器名称是VirtualBox。

        接着使用ping命令来ping这个docker虚拟网卡地址

ping 192.168.99.1

访问成功效果:

        接着,进入docker容器内ping这个网卡ip地址

#进入容器docker exec -it <容器ID> /bin/bash#ping网卡ip地址ping 192.168.99.1#若未安装ping命令,使用以下命令进行下载apt-get updateapt-get install -y inetutils-ping或apt-get install iputils-ping

ping成功效果:

        由此可发现,宿主机与容器都可以ping通192.168.99.1这个ip地址,那么我们就可以使用这个ip地址来进行宿主机和容器直接的访问啦。

作者踩的坑:我自己在度娘里遨游的时候,找到了两种方法,一个是建立一个容器网络network,将容器放入这个容器网络中,这种方式只能实现容器与容器直接的快速交互, 若用docker虚拟网卡ip其实也可以互相访问,没必要建立容器网络。

二是将容器暴露在宿主机上,创建容器时增加--net=host,但是这种启动方式存在缺陷,就是端口不能进行映射了,即-p 8080:80 这个命令不能使用了,这样很容易端口冲突,导致容器无法访问;若进行生产环境部署时,十分不建议使用,当端口冲突时,十分不易察觉。

        OK,以上就是本次的分享内容,哪里若是不对,欢迎大家来指正~~~///(^v^)\\\~~~

来源地址:https://blog.csdn.net/guo0208/article/details/128965734

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Docker容器与宿主机相互访问

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Docker容器与宿主机相互访问更方便的方法

Docker是当今使用范围最广的开源容器技术之一,具有高效易用的优点,然而如果使用Docker时采取不当安全策略,则可能导致系统面临安全威胁,这篇文章主要给大家介绍了关于Docker容器与宿主机相互访问更方便的方法,需要的朋友可以参考下
2023-05-20

Docker跨主机容器间相互访问的实现

本文主要介绍了Docker跨主机容器间相互访问的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-04

docker容器访问宿主机的MySQL操作

背景: 有一个flask项目提供接口,使用docker容器构建并且运行,MySQL在宿主机运行,需要在容器中可以让flask连接上宿主机的mysql 使用ifconfig命令可以看到,有一个docker0和eth0,在docker容器中可以
2022-05-13

docker怎么访问宿主机网络

Docker默认情况下无法直接访问宿主机网络,因为Docker容器是在一个隔离的网络环境中运行的。然而,你可以通过一些方法实现Docker容器访问宿主机网络:使用host网络模式:在运行Docker容器时,通过--network=host参
docker怎么访问宿主机网络
2024-04-09

docker容器间互相访问(dockerbridge网络)

本文主要介绍了docker容器间互相访问(dockerbridge网络),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-04

docker怎么访问宿主机文件

要访问宿主机文件,可以通过将宿主机文件挂载到容器中的方式实现。具体步骤如下:在运行容器时,使用 -v 参数将宿主机文件挂载到容器中。例如:docker run -v /path/to/host/file:/path/to/container
docker怎么访问宿主机文件
2024-05-21

docker怎么访问宿主机端口

在Docker容器中访问宿主机的端口,可以使用宿主机的特殊地址host.docker.internal。在Docker容器中,可以通过host.docker.internal来访问宿主机的端口。例如,如果宿主机的端口是8080,可以在Do
docker怎么访问宿主机端口
2024-04-09

docker访问宿主机的方法是什么

要在Docker容器中访问宿主机,可以使用特殊的IP地址host.docker.internal。这个地址会自动指向宿主机的IP地址。在容器内部,可以将它用作宿主机的IP地址来访问宿主机上的服务或资源。另外,也可以通过在Docker运行时
docker访问宿主机的方法是什么
2024-05-14

docker容器时间与宿主机怎么同步

Docker容器的时间通常是与宿主机同步的,但有时候可能会出现时间不同步的情况。以下是一些常见的方法来确保Docker容器的时间与宿主机同步:使用Docker守护程序选项来指定容器时间与宿主机时间同步:可以在运行容器时使用 -v /etc
docker容器时间与宿主机怎么同步
2024-04-09

docker实现跨宿主机的容器之间网络互联

本文主要介绍了docker实现跨宿主机的容器之间网络互联,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-04

docker容器连接宿主机redis和mysql

当我们在用docker部署项目的时候可能会遇到这样一个问题:项目A和项目B都用到了redis和mysql,如果在docker-compose里link或者dependon一个redis和mysql的话,会发现每一个项目都有一个redis和m
2023-08-18

Docker容器与宿主机资源怎么隔离与共享

Docker容器与宿主机资源可以通过一些机制进行隔离与共享:命名空间(Namespaces):Docker使用Linux的命名空间功能来隔离容器与宿主机的资源,比如PID命名空间用来隔离进程,Network命名空间用来隔离网络等。控制组(C
Docker容器与宿主机资源怎么隔离与共享
2024-05-07

Docker MySQL无法被宿主机访问的问题解决

目录1 问题描述2 原因3 解决方案1 问题描述docker启动mysql容器后,创建一个localhost访问的用户:create user test@lohttp://www.cppcns.comcalhost identified
2022-07-06

Docker MySQL无法被宿主机访问如何解决

这篇文章主要介绍“Docker MySQL无法被宿主机访问如何解决”,在日常操作中,相信很多人在Docker MySQL无法被宿主机访问如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Docker My
2023-07-02

docker内部访问宿主机的方法是什么

Docker容器可以通过宿主机的IP地址或者宿主机名进行访问。在Docker中,宿主机的IP地址通常是172.17.0.1(也可能是其他地址,取决于Docker网络配置),而宿主机的主机名通常是host.docker.internal。可以
docker内部访问宿主机的方法是什么
2024-04-09

编程热搜

目录