码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • docker 如何访问宿主机的localhost


    方法一:

    1、可以在使用localhost的地方替换host.docker.internal

    对于mac和windows,可以使用host.docker.internal替换127.0.0.1,如 mongodb://host.docker.internal:27017

    2、对于linux可以使用:

    创建一个桥接网络
    下面的localNet是网络名字,可自行修改;关于192.168.0.0这个子网,也可以自行定义.
    默认按照下面的命令,执行后将可以通过192.168.0.1访问宿主机.

    docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 localNet


    使用192.168.0.1替换127.0.0.1,如mongodb://192.168.0.1:27017

    方法二:

    可以在启动docker服务的时候把宿主机的ip当作环境变量穿进去

    docker run -d --name nginx --env hostip="172.17.32.60" 

    可以在容器里面env|grep hostip查看ip地址

    在程序中可以使用代码查询这个环境变量

    1. // cmd 可以传入 env|grep hostip
    2. func Cmd(cmd string) []byte {
    3. out, err := exec.Command("/bin/bash", "-c", cmd).Output()
    4. if err != nil {
    5. return nil
    6. }
    7. return out
    8. }

    拓展如何访问同一台机器上的其他docker

    docker network --help

    创建一个自定义的docker局域网

    docker network create mynet 

    然后在启动容器的时候,让容器加入局域网

    1. docker pull redis
    2. docker pull nginx
    3. #运行redis容器
    4. docker run -itd --name redis --network mynet --network-alias redis -p 6379:6379 redis
    5. #运行nginx容器
    6. docker run -d --name nginx -p 80:80 --network mynet --network-alias nginx --privileged=true -v /home/wwwroot:/home/wwwroot -v /home/wwwlogs:/home/wwwlogs nginx

    可以使用如下命令查询网络的情况

    docker network inspect mynet

    当然可以使用docker network connect 加入相同的网段

    1. #加入nginx到mynet网络
    2. [root@localhost /]# docker network connect mynet nginx
    3. #加入redis到mynet网络
    4. [root@localhost /]# docker network connect mynet redis
    5. #查看mynet网络包含的容器,会发现两个容器都加入当前网络了,后面使用ping命令是能够ping通容器名称的。
    6. [root@localhost /]# docker network inspect mynet

    参考:

    docker network详解、教程_wangyue23com的博客-CSDN博客_docker network

  • 相关阅读:
    表结构及索引设计
    人工智能是个什么样的专业?
    可编程渲染管线(Scriptable Render Pipeline, SRP)
    数据库的新选择 Amazon Aurora
    ifconfig、ifup和ifdown命令详解
    二叉树常见问题
    为什么要使用动态代理IP?数据采集使用动态代理有哪些优势?
    实战项目:负载均衡式在线OJ
    java毕业设计——基于java+Socket+sqlserver的网络通信系统设计与实现(毕业论文+程序源码)——网络通信系统
    C++之基于Winsock2封装UDPServer与UDPClient
  • 原文地址:https://blog.csdn.net/xiangzaixiansheng/article/details/126055498
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号