docker container 访问外部宿主机服务

Docker中访问宿主机:host.docker.internal host.docker.internal主要用于容器内部访问宿主机上的服务,而容器之间的通信通常通过Docker的网络配置和容器名/服务名来实现。 阅读详情

docker 容器的默认网络是采用桥接的形式(和主机在同一个局域网中,但是单独使用一个独立的局域网IP),程序在生产环境中运行时,连接数据库、redis等只需要配置对应的服务地址就可以了。

在开发环境中,如果服务在docker中运行,数据库在本机运行,配置数据库连接的时候配置 127.0.0.1 就不好使了。

可以用两种方式解决这个问题。

一是将宿主机和容器看着是独立的两台机器,在配置地址的时候配置宿主机的局域网ip或是公网ip。

二是将宿主机地址直接写成: host.docker.internal,不过第二种方式需要docker 版本 大于 18.03,且要在windows和mac下才能用。

要测试这两个方式能不能访问宿主机,可以直接用docker运行一个镜像在命令行进行ping测试:

# Start the Alpine container and drop into a Shell prompt.
docker container run --rm -it alpine sh

# Install the ping utility.
apk update && apk add iputils

# Ping your local network IP address (replace my IP address with yours).
ping 192.168.1.3

# You should see this output (hit CTRL+C to stop it):
PING host.docker.internal 56(84) bytes of data.
64 bytes from 192.168.1.3: icmp_seq=1 ttl=37 time=0.539 ms
64 bytes from 192.168.1.3: icmp_seq=2 ttl=37 time=0.417 ms
64 bytes from 192.168.1.3: icmp_seq=3 ttl=37 time=0.661 ms

最后,本地的数据库,像mysql这种,默认是没有开启外部访问权限的,需要去手动开启。

# 授权
mysql> grant all privileges  on *.* to root@'%' identified by "yourpwd";
# 报错及处理方式
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> SET GLOBAL validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges  on *.* to root@'%' identified by "yourpwd";
Query OK, 0 rows affected, 1 warning (0.01 sec)

# 刷新权限
mysql>FLUSH PRIVILEGES

mysql> quit
Bye

参考资料: 

    https://nickjanetakis.com/blog/docker-tip-35-connect-to-a-database-running-on-your-docker-host

    https://nickjanetakis.com/blog/docker-tip-65-get-your-docker-hosts-ip-address-from-in-a-container?

    https://www.cnblogs.com/cnblogsfans/archive/2009/09/21/1570942.html

Docker网络配置+部署SpringCloud项目 文章目录Docker网络配置Docker部署SpringCloud项目 Docker网络配置 Docker网络模式介绍 Docker在创建容器时有四种网络模式:bridge/host/container/none,bridge为默认不需要用–net去指定,其他三种模式需要在创建容器时使用–net去指定 1.bridge模式(默认模式) docker run时使用–net=bridge,这种模式会为... 阅读详情

相关推荐

Docker与Kubernetes系列(三): 外部访问Docker容器

这段时间工作中用到了Docker以及Kubernetes(简称K8S),现在整理下我学习Docker以及K8S过程中看的一些比较好的资料,方便自己回顾,也希望能给容器小白一些帮助。给自己定一个小目标,二月底之前完成。 这是本系列的第三篇文章, 将介绍如何访问Docker容器。 一、外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p

沈鸿斌的博客 7216

如何检测docker是否支持host.docker.internal

它提供了一种简便的方式来访问宿主机上的服务。但是,这个主机名在不同的 Docker 版本和环境中的支持情况可能会有所不同。主要用来诊断域名系统 (DNS) 基础结构的信息。查询DNS的记录,查询域名解析是否正常,在网络故障时用来诊断网络问题。如果查询失败或显示其他错误消息,则可能是因为您的 Docker 版本不支持。如果输出显示了宿主机的 IP 地址,则说明 Docker 支持。运行一个临时容器:使用以下命令在交互模式下启动一个临时容器。如果您看到类似于以下输出,表示您的 Docker 支持。

IT飞牛 8781

docker中如何启动服务并配置外界访问端口配置

如果你在云服务或使用虚拟机,确保相应的端口在安全组或防火墙规则中是开放的,以允许外部访问。这个命令会列出所有正在运行的容器,你可以在这里看到你刚刚启动的容器及其端口映射信息。如果宿主机是远程服务器,你需要使用服务器的IP地址或域名来访问。如果宿主机是本地机器,你可以通过浏览器访问。参数来发布容器端口到宿主机上。端口上运行一个web服务,并且你想要将其映射到宿主机的。替换为你想要运行的Docker镜像名。现在,你应该能够通过访问宿主机的。例如,如果你有一个名为。

舒一笑的博客 3269

docker配置容器内访问主机服务

当我们在Docker容器中运行应用程序时,有时候需要访问宿主机的IP地址。然而,默认情况下,Docker容器内无法直接使用宿主机的IP地址。为了解决这个问题,Docker提供了一个特殊的主机名。通过上述步骤,我们可以在Docker容器内轻松访问宿主机的IP地址。这对于需要与宿主机进行通信或连接到宿主机上运行的服务非常有用。主机名来访问宿主机的IP地址。是Docker网络中宿主机的默认网关地址。解析为宿主机的IP地址,并返回该地址。参数将宿主机的IP地址映射到。,使得容器可以轻松访问宿主机。

sinat_35773915的博客 7645

11-4 AEB 算法原理及系统组成

本专题旨在探讨如何利用仿真软件开发自动紧急制动系统AEB,主要通过整理开发流程,实现从需求到验证的全流程掌握,为后续开发提供支持;同时,研究了如何在汽车自动驾驶仿真工具中开发自己的算法,并解决了从ISO、E-CNAP、GB/T以及交通法规等提炼出功能需求的问题,以快速实现原型模型的开发。本专题重点讲解了AEB的工作原理、系统/软件架构和需求、算法模型及实现、CCRs/CCRb/CCRm建模与仿真、VRU-AEB-B/P/M建模与仿真,同时还提供了测试用例,期待将AEB算法成功地产品化。

AIgraphX 8556

正交试验-方差分析-数据展现形式

方差分析(ANOVA, Analysis of Variance)用于比较多个组之间的均值差异,确定因素对响应变量的显著性影响。示例分析。

m0_58326994的博客 1971

Docker容器网络(七)

在应用程序和网络之间是 Docker 网络,被亲切地称为容器网络模型 或 CNM(Container Network Model)。是 CNM 为您的 Docker 容器代理连接性,并且还抽象出网络中常见的多样性和复杂性。结果是可移植性,它来自 CNM 强大的网络驱动程序。这些是 Docker 引擎、Swarm 和 UCP 的可插拔接口,提供了多主机网络、网络层加密和服务发现等特殊功能。每个驱动程序都提供权衡,并根据用例具有不同的优势。

致力于不留技术债务cuizb.top 6604

python控制caxa模块_CAXA二次开发实用手册.doc

您所在位置:网站首页 > 海量文档&nbsp>&nbsp汽车/机械/制造&nbsp>&nbsp机械软件CAXA二次开发实用手册.doc119页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。 下载提示1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。2.该文档所得收...

weixin_39990819的博客 1766

Docker网络入门:host.docker.internal详解

简单来说,是一个特殊的主机名,它指向运行Docker引擎的主机(也就是你的电脑)。当我们在容器内部使用这个主机名时,就能访问到宿主机上的服务。这个功能特别适合开发环境使用,比如:- 容器需要连接宿主机上运行的数据库- 需要访问宿主机的某些API服务- 调试时需要在容器和宿主机之间进行通信。

StarfallRaven13的博客 576

SAP 固定资产采购简介

SAP 固定资产采购是指企业通过采购流程获取长期使用并记录为固定资产的物品。固定资产是企业为长期使用而购置的资产,如机器设备、办公设备、建筑物、车辆等,通常这些资产的使用期限较长,并且在资产负债表上记录。在SAP系统中,固定资产采购流程通常与物料管理(MM)模块和固定资产管理(FI-AA)模块相结合。这个过程涉及从需求的提出、采购订单的创建,到货物接收、发票校验和资产激活的多个步骤。

我小时候很黑的博客 1731

cursor AI代码编辑器IDE对接deepseek模型api;字节ai编辑器trae

参考: https://www.cursor.com/ https://platform.deepseek.com/https://www.cursor.com/下载安装后,注册账号登录即可 再高级里选择设置 再模型这注册模型: 模型名称一定要填正确,url地址填好,最后填上秘钥验证

weixin_42357472的博客 1万+

Docker 网络端口映射 四大网络模式

Docker 的四大网络模式 Host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。Container:创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。None:该模式关闭了容器的网络功能。Bridge:默认为该模式,此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及iptables nat 表配置与宿主机通信。自定义网络

低温热源的博客 2884

科研必备:15款顶尖AI科研工具全面分析汇总(持续更新ing)

科研必备:15款AI科研工具全面分析汇总(持续更新ing)

Code_流苏:在代码中寻诗意,在实践中觅真知 9659

Docker 网络

Docker 网络

weixin_59105297的博客 201

★教程2:fpga学习教程入门100例目录【含程序操作讲解视频】

★基础入门 1.FPGA开发软件安装

FPGA/MATLAB学习教程/源码/项目合作开发 7万+

RK3588高速接口实战-PCIE

摘要: RK3588的PCIe接口支持PCIe 3.0x4和PCIe 2.1x1/x2,具备Root Complex和Endpoint模式,适用于NVMe SSD、5G模块等高速设备。硬件设计需注意85Ω/100Ω阻抗匹配、220nF AC耦合电容及100MHz参考时钟。设备树需配置控制器节点、PHY模式和IOMMU映射(RC模式用iommu-map,EP模式用iommus)。调试时可通过lspci检查链路状态,dmesg查看训练日志,perf分析性能。常见问题包括设备识别失败(检查复位时序、PHY配置)、

weiyvyy的博客 505

docker之网络配置

课程目标 1、Docker网络配置 2、Docker部署SpringCloud项目 Docker网络配置 Docker网络模式介绍 Docker在创建容器时有四种网络模式:bridge/host/container/none,bridge为默认不需要用–net去指定,其他三种模式需要在创建容器时使用–net去指定 1.bridge模式(默认模式) docker run时使用–net=bridge,...

Kobe Bryant 1955

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

docker容器网络

docker容器网络 Docker在安装后自动提供3种网络,可以使用docker network ls命令查看 [root@localhost ~]# docker network ls NETWORK ID NAME DRIVER SCOPE c31a5817d93d bridge bridge local 649a7455b6e0 host host local acc4255a45df none null loca

qq_68054650的博客 198

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Docker容器网络

网络模式 bridge–net=bridge默认网络,Docker启动后创建一个docker0网桥,默认创建的容器也是添加到这个网桥中。 host–net=host容器不会获得一个独立的network namespace,而是与宿主机共用一个。这就意味着容器不会有自己的网卡信息,而是使用宿主机的。容器除了网络,其他都是隔离的。 none–net=none获取独立的network namespace,但不为容器进行任何网络配置,需要我们手动配置。 contain...

m0_57474995的博客 144

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Docker容器-----网络模式

docker网桥是宿主机虚拟出来的,并不是真实存在的网络设备,外部网络是无法寻址到的,这也意味着外部网络无法直接通过Container-IP访问到容器。如果容器希望外部能够访问到,可以通过映射容器端口到宿主机(端口映射),即docker run创建容器的时候,通过-p或者-P参数来启用。访问容器的时候,就通过[宿主机IP]:[容器端口]访问容器但是如果启动容器的时候使用host模式,那么这个容器不会获得一个独立的Network Namespace,而是和宿主机公钥一个Network Namespace。容器

qq_57377057的博客 1042

网络配置

Docker网络配置 Docker网络模式介绍 Docker在创建容器时有四种网络模式:bridge/host/container/none,bridge为默认不需要用--net去指定,其他三种模式需要在创建容器时使用--net去指定 1.bridge模式(默认模式) docker run时使用--net=bridge,这种模式会为每个容器分配一个独立的Network...

weixin_45457509的博客 246

docker的4种网络模型

docker的4种网络模型 参考网址: https://mp.weixin.qq.com/s/_pzameytffZdfyzfrys8VA 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式 host模式,使用--net=host指定。 container模式,使用--net=container:NAME_or_ID指定。 none模式,使用--net=none指定。 bridge模式,使用--net=bridge指定,默认设置

java技术博客 304

3.Docker网络和资源控制

##创建自定义网络#可以先自定义网络,再使用指定IP运行docker##docker1 为执行 ifconfig -a 命令时,显示的网卡名,如果不使用 --opt 参数指定此名称,那你在使用 ifconfig -a 命令查看网络信息时,看到的是类似 br-110eb56a0b22 这样的名字,这显然不怎么好记。#mynetwork 为执行 docker network list 命令时,显示的bridge网络模式名称。##创建自定义网络的容器。

夜海赤竹的博客 186

Docker 网络管理

Docker 有以下几种网络模式: ① host 模式:这种模式下,容器使用的网络与宿主机一致,也就是直接使用宿主机的网卡,因此IP地址也是一样的,用 --net=host 来指定② container 模式:这种模式下,多个容器使用共同的网络,因此容器的IP地址都是一样的,可以使用 --net=container:container_id 或--net=container:container...

weixin_30840573的博客 77

从docker container中调用宿主机命令行

虽然直接从Docker容器中调用宿主机的命令行不是最佳实践,但通过上述方法,你可以在保持容器化应用隔离性的同时,灵活地与宿主机系统进行交互。记住,选择合适的方法时要考虑到安全性、隔离性和实际需求,避免不必要的安全隐患。在开发和调试阶段,这些技术可以提供便利,但在生产环境中应尽量减少此类交互,确保系统的稳定性和安全性。

Programming Talk 4779
上一篇: xpath解析获取某个节点下所有的文本字符
下一篇: 亚马逊 ec2 安装 docker
xufwind
博客等级 码龄11年 27粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值