首页 > 编程知识 正文

docker访问宿主机网络,docker容器访问宿主机数据库

时间:2023-05-03 07:38:23 阅读:59524 作者:728

查看docker容器虚拟ip

$ docker inspect-- format ' { {.network settings.IP地址} } [容器ID]

可以显示容器的特定IP地址。 如果输出为空,则表示没有设置IP地址

宿主机IP

与容器为同一网段,而且为XXX.XXX.XXX.1

例如,如果容器检验中ip为192.169.0.2,则宿主机ip为192.168.0.1

在容器中,可以通过192.168.0.1访问宿主机

容器内连接主机上的mysql服务器

很简单。 将mysql服务器地址更改为192.168.0.1即可。 实践已经成功了。

不确定因素

我在我的服务器上查了一下,结果是192.168.0.1,但不太清楚这个是否固定

限定因素

谢谢@zkoma先生的批评。 之前写的《不确定因素》对大众没什么责任。

简单的实践成功了,已经在执行,所以没有详细探究,只是自己做了笔录。

因此,我读了docker文档

https://docs.docker.com/engin .

然后,在这里记录下我的理解,如果错了,请大家路过大神纠正

docker容器的默认网络方法

首先摘录一段文档

thebridgenetworkrepresentsthedocker0networkpresentinalldockerinstallations.unlessyouspecifyotherwisewithedockerrun-netwet thedockerdaemonconnectscontainerstothisnetworkbydefault.youcanseethisbridgeaspartofahost’snetworkstackbyusingtheifcong

可见,bridge是docker容器的缺省网络方法,缺省bridge是通过主机上的docker0实现的。

$ ifconfig

通过以上命令可以查看docker0的详细内容。 在我的一些服务中,docker0的inet是192.168.0.1

docker默认安装的docker0角色

再摘录一段文件

thedefaultdocker0bridgenetworksupportstheuseofportmappinganddockerrun-- linktoallowcommunicationsbetweeencontainersinthedockerocker bersometosetupandpronetoerror.whiletheyarestillavailabletoyouastechniques,itisbettertoavoidtheer

因此,默认情况下安装的docker0提供以下功能

1、将容器端口映射到宿主机端口

2、可以联系link,建立容器之间的通信

但是官方建议我们再打一次桥牌

确定当前的docker网络连接方法

$ docker network ls

网络id name驱动程序

7 fc a4 eb8 c 647网桥

9f 904 ee 27 BF 5非空值

cf 03 ee007 FB 4主机主机

查看某个网络方式的详细信息

$ docker network inspect bridge

docker网络输入网桥

[

{

' Name': 'bridge ',

' id ' : ' 229 FCE 428 f 978 b 559 be 16 c 9877 AC 53 F2 D5 Fe1CAE fbb8c9ce 107 a 055623 FD 3050 ',

' created ' : ' 2017-03-15t 10336025336048.87391819208336000 ',

' Scope': 'local ',

'驱动器' : ' bridge ',

“启用IPv6”:假,

“ipam”: {

'驱动器' : '默认值',

' options ' :空值,

' Config': [

{

' Subnet': '192.168.0.0/20 '

}

]

(,

'国际' :假,

' Attachable': false,

' Containers': {

' 3d 07 b 11 a2a 7ba 5550 a5 df 4086 b 684 a 6304 f 36 d 38 F6 F5 cc 49615 b 80 d 1684 c 6a 05 ' : {

' Name': 'atfirst_redis_1',

' endpoint id ' : ' 8302 df 17 b 41 be 981 df1f 695 daf 95709 E1 e 4b 03 dfec 03 fc5 f 872808 E1 B9 D1 f5',

' MAC address ' : ' 023360423360 c 03360 a 8:00336003 ',

' IP v4地址' : ' 192.168.0.3/20 ',

" IPv6地址' : ' "

(,

' 50e 29986918 d 5959 baa 88 a 0a 0a 1a 25650 b6c 859 d 169a 247 DD 5325 fdb E8 a 7463 e ' : {

' Name': 'atfirst_tomcat_1',

' endpoint id ' : '2f1 B9 D7 c15 f1 E8 a 3322 c 7d 990 a 283 B2B f 8071 fbf 29 a 90789270302 de 90 ed 00 a7',

' MAC address ' : ' 023360423360 c 03360 a 8:00336002 ',

' IP v4地址' : ' 192.168.0.2/20 ',

" IPv6地址' : ' "

}

(,

'选项' : {

' com.docker.net work.bridge.default _ bridge ' : ' true ',

' com.docker.net work.bridge.enable _ ICC ' : ' true ',

' com.docker.net work.bridge.enable _ IP _ masquerade ' 3360 ' true ',

' com.docker.net work.bridge.host _ binding _ IP v4 ' : '0.0.0',

' com.docker.net work.bridge.name ' : ' docker0',

' com.docker.net work.driver.MTU ' : ' 1500 '

(,

' Labels': {}

}

]

现在,您应该差不多知道了,容器和宿主机之间的ip关系吧

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。