具有docker应用程序的IP地址

具有docker应用程序的IP地址,docker,ip,ntp,Docker,Ip,Ntp,我尝试运行NTP服务器/客户端。我正在使用NTP的应用程序正在docker中运行。 我有点困惑,因为: 1。我不知道是必须在docker内部还是机器外部配置/etc/ntp.conf文件。 2。我必须使用哪个IP地址。如果我使用ifconfig我会得到下面的输出。我不知道我是否必须使用docker的IP或wlp4s0的IP。另外,如果我通过检查我的IP,我会得到一个完全不同的IP地址,如果我运行ifconfig,我看不到这个地址。我不知道这是否重要,但我正在使用我公司的无线局域网 docker0

我尝试运行NTP服务器/客户端。我正在使用NTP的应用程序正在docker中运行。 我有点困惑,因为:

1。我不知道是必须在docker内部还是机器外部配置/etc/ntp.conf文件。

2。我必须使用哪个IP地址。如果我使用
ifconfig
我会得到下面的输出。我不知道我是否必须使用docker的IP或wlp4s0的IP。另外,如果我通过检查我的IP,我会得到一个完全不同的IP地址,如果我运行
ifconfig
,我看不到这个地址。我不知道这是否重要,但我正在使用我公司的无线局域网

docker0   Link encap:Ethernet  HWaddr 02:42:5e:fd:b4:0d  
          inet addr:172.17.0.1  Bcast:172.17.255.255  Mask:255.255.0.0
          inet6 addr: fe80::42:5eff:fefd:b40d/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:1713 (1.7 KB)

enp6s0    Link encap:Ethernet  HWaddr 4c:cc:6a:de:50:f6  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:19 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:4092 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4092 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:689519 (689.5 KB)  TX bytes:689519 (689.5 KB)

wlp4s0    Link encap:Ethernet  HWaddr 9c:b6:d0:1b:90:8b  
          inet addr:10.39.158.200  Bcast:10.39.159.255  Mask:255.255.252.0
          inet6 addr: fe80::dc16:b5ad:2f01:d58a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7821858 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1046710 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10548810679 (10.5 GB)  TX bytes:96754356 (96.7 MB)

谢谢大家!

您应该在底层主机上而不是在容器中设置NTP服务器

在考虑您的
ntp.conf
时,您应该确保至少有3台上游服务器,最好有5台以确保可靠的定时。理想情况下,您应该找到一些低层次、低往返时间的服务器,用作上游提供商

人们似乎报告了集装箱使用错误时区的问题

如果使用Alpine映像,则需要先安装
tzdata
,然后在docker文件中设置以下内容:

ENV TZ=Europe/London
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
如果您使用的不是Alpine,那么您仍然可以在docker文件中使用相同的命令,以确保设置了正确的时区

可以找到有效时区的列表

至于IP地址;
wlp4s0
看起来像是底层主机的物理以太网接口-如果是这种情况,那么这就是您应该使用的地址,前提是您的所有容器都将在该主机上运行,并且它们本身可以到达该IP地址。在线检查时看到不同IP地址的原因是,您提供的输出中的所有内容都只显示私有IP地址,而不是公共IP地址。看起来您的公共IP是由主机提供商/网络提供商通过NAT或类似方式提供的。

由于Docker容器没有单独的时间概念,因此在容器中运行NTP守护程序通常没有意义;在主机上作为系统进程运行一个。