其他相关技术

1.docker容器内部访问宿主机

  • 在宿主机上运行.
# ip addr show docker0
7: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
   valid_lft forever preferred_lft forever
inet6 fe80::f4d2:49ff:fedd:28a0/64 scope link 
   valid_lft forever preferred_lft forever

  • 在容器中运行.
# ip route show
default via 172.17.0.1 dev eth0 
172.17.0.0/16 dev eth0  src 172.17.0.4 
  • 在容器里面访问宿主机:直接使用: 172.17.0.1

2.docker logs 查看日期不准确

  • 日期不准确原因
    • docker 记录容器日志,默认使用的是 json的日志引擎,显示时间就是UTC的时间
    • 即使宿主机和容器的时区是指都正确也不行
    • 如果使用 local的日志引擎就没有这个问题
  • 解决方法
#对显示的时间使用awk 和 date 转为本地日期
docker logs -t nginx-vts  2>&1 | awk '{
  cmd="date -d \""$1"\" +\"%Y-%m-%d %H:%M:%S %Z\"";
  cmd | getline converted; close(cmd);
  $1="["converted"]";
  print
}'