查看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关系吧