无法连接到Docker服务
我在MAC机器上运行Docker映像,当我登录到容器时,我看到ip地址为“172.17.0.2”(cat/etc/hosts)无法连接到Docker服务,docker,docker-for-mac,Docker,Docker For Mac,我在MAC机器上运行Docker映像,当我登录到容器时,我看到ip地址为“172.17.0.2”(cat/etc/hosts) docker如何选择IP Docker是否选择任何IP范围 如果我在同一台主机上运行多个容器呢?会有所不同吗 /etc/resolve.conf提供了一些IP地址。IP是什么?它从哪里来 如何使用内部IP连接到Docker服务,如172.17.0.2 ping CONTAINER_ID->返回IP 172.17.0.2 它如何解析主机名 我试着通过网络阅读,但
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
nd6 options=201<PERFORMNUD,DAD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
XHC20: flags=0<> mtu 0
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 60:f8:1d:b2:cb:0c
inet6 fe80::49d:a511:dc4e:7960%en0 prefixlen 64 secured scopeid 0x5
inet 10.231.168.63 netmask 0xffe00000 broadcast 10.255.255.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
ether 02:f8:1d:b2:cb:0c
media: autoselect
status: inactive
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484
ether 0a:71:96:61:e4:eb
inet6 fe80::871:96ff:fe61:e4eb%awdl0 prefixlen 64 scopeid 0x7
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=60<TSO4,TSO6>
ether 72:00:07:57:48:30
media: autoselect <full-duplex>
status: inactive
en2: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=60<TSO4,TSO6>
ether 72:00:07:57:48:31
media: autoselect <full-duplex>
status: inactive
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=63<RXCSUM,TXCSUM,TSO4,TSO6>
ether 72:00:07:57:48:30
Configuration:
id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
ipfilter disabled flags 0x2
member: en1 flags=3<LEARNING,DISCOVER>
ifmaxaddr 0 port 8 priority 0 path cost 0
member: en2 flags=3<LEARNING,DISCOVER>
ifmaxaddr 0 port 9 priority 0 path cost 0
nd6 options=201<PERFORMNUD,DAD>
media: <unknown type>
status: inactive
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000
inet6 fe80::3f17:8946:c18d:5d25%utun0 prefixlen 64 scopeid 0xb
nd6 options=201<PERFORMNUD,DAD>
utun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
inet6 fe80::20aa:76fd:d68:7fb2%utun2 prefixlen 64 scopeid 0xd
nd6 options=201<PERFORMNUD,DAD>
utun3: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
inet6 fe80::e42a:c616:4960:2c43%utun3 prefixlen 64 scopeid 0x10
nd6 options=201<PERFORMNUD,DAD>
utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1342
inet 17...... --> 17.... netmask 0xff000000
inet6 fe80::93df:7780:862c:8a06%utun1 prefixlen 64 scopeid 0x12
nd6 options=201<PERFORMNUD,DAD>
lo0:flags=8049 mtu 16384
选项=1203
inet 127.0.0.1网络掩码0xff000000
inet6::1预桥128
inet6 fe80::1%lo0预桥64作用域ID 0x1
nd6选项=201
gif0:标志=8010 mtu 1280
stf0:标志=0 mtu 1280
XHC20:标志=0 mtu 0
en0:标志=8863 mtu 1500
乙醚60:f8:1d:b2:cb:0c
inet6 fe80::49d:a511:dc4e:7960%en0预桥64安全作用域ID 0x5
inet 10.231.168.63网络掩码0xffe00000广播10.255.255.255
nd6选项=201
媒体:自动选择
状态:活动
p2p0:标志=8843 mtu 2304
乙醚02:f8:1d:b2:cb:0c
媒体:自动选择
状态:不活跃
awdl0:flags=8943 mtu 1484
乙醚0a:71:96:61:e4:eb
inet6 fe80::871:96ff:fe61:e4eb%awdl0预桥64作用域ID 0x7
nd6选项=201
媒体:自动选择
状态:活动
en1:标志=8963 mtu 1500
选项=60
乙醚72:00:07:57:48:30
媒体:自动选择
状态:不活跃
en2:标志=8963 mtu 1500
选项=60
乙醚72:00:07:57:48:31
媒体:自动选择
状态:不活跃
桥0:flags=8863 mtu 1500
选项=63
乙醚72:00:07:57:48:30
配置:
id 0:0:0:0:0:0优先级0 hellotime 0 fwddelay 0
maxage 0 holdcnt 0 proto stp maxaddr 100超时1200
根id 0:0:0:0:0:0优先级0如果成本0端口0
ipfilter禁用标志0x2
成员:en1标志=3
ifmaxaddr 0端口8优先级0路径成本0
成员:en2标志=3
ifmaxaddr 0端口9优先级0路径成本0
nd6选项=201
媒体:
状态:不活跃
utun0:flags=8051 mtu 2000
inet6 fe80::3f17:8946:c18d:5d25%utun0预桥64作用域ID 0xb
nd6选项=201
utun2:标志=8051 mtu 1380
inet6 fe80::20aa:76fd:d68:7fb2%utun2预桥64作用域ID 0xd
nd6选项=201
utun3:标志=8051 mtu 1380
inet6 fe80::e42a:c616:4960:2c43%utun3预桥64作用域ID 0x10
nd6选项=201
utun1:flags=8051 mtu 1342
inet 17……-->17.... 网络掩码0xff000000
inet6 fe80::93df:7780:862c:8a06%utun1预桥64作用域ID 0x12
nd6选项=201
对于前4个问题,您可以找到一些信息,通常,docker网络
是负责网络的经理
通常我会这样指定保护程序:
docker run-p 8443:8443图像
而且它起作用了
对现有主题的引用是1。docker如何选择IP 当docker安装在您的机器上时,它将创建
docker0
界面。无论何时启动,它都会为您的容器提供ip地址。
您可以通过ifconfig
命令验证docker0
的ip范围
2.docker是否可以选择任何IP范围
是的,请参考我的答案1
3.如果我在同一台主机上运行多个容器怎么办?会有所不同吗
是的,在您使用docker network create
创建自己的网络之前,它将不同于docker0
接口的范围。有关更多信息,请参阅:
4./etc/resolve.conf
提供了一些IP。IP是什么?它从哪里来
这是docker网络的内部DNS,您可以在vi/etc/systemd/system/docker.service.d/docker.conf
中为您的DNS ip添加DNS服务器,如下所示:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock -g "/opt/docker_storage" --dns <replace-dns-ip>
[服务]
执行开始=
ExecStart=/usr/bin/dockerd-Htcp://0.0.0.0:2376 -Hunix:///var/run/docker.sock -g“/opt/docker_存储”--dns
5.如何使用内部IP连接到docker服务,例如172.17.0.2
您必须公开端口才能进行连接,就像docker run-p 8443:8443
之后,您可以通过telnet localhost 8443
或curl进行连接http://172.17.0.2:8443
最重要的
将以下内容添加到/etc/sysctl.conf
net.ipv4.ip_forward=1
并通过应用设置
sysctl-p/etc/sysctl.conf
希望这会有所帮助
谢谢大家! Docker自己管理所有这些内部网络机器。这包括从专用范围分配IP(v4)地址、为出站连接设置NAT以及允许容器相互通信的DNS服务 稳定、合理的设置是:
- 运行一次
,以创建非默认网络。(Docker Compose将自动为您执行此操作。)docker network create mynet
- 使用
运行容器--net mynet
- 当容器需要相互通信时,它们可以使用其他容器的
作为DNS名称(您可以连接到--name
)http://other-container-name
- 如果需要从其他地方访问容器,请使用
或docker Composedocker run-p