分类 Docker 下的文章

Docker 容器支持多种网络模式(network modes),每种适用于不同的使用场景。下面是主要的几种 Docker 网络模式及其说明:

  • bridge: 默认网络驱动程序。如果您未指定驱动程序,则此类型即为您创建的网络。桥接网络通常用于应用程序在需要与同一主机上的其他容器通信的容器中运行的情况。请参阅 桥接网络驱动程序
  • host: 移除容器与 Docker 主机之间的网络隔离,并直接使用主机的网络。请参阅 主机网络驱动程序
  • container:<name|id>: 多个容器共享同一个容器的网络命名空间。
  • none: 将容器与主机及其他容器完全隔离。 none不适用于 Swarm 服务。请参阅 None 网络驱动程序

- 阅读剩余部分 -

Docker 提供重启策略来控制容器是在退出时自动启动,还是在 Docker 重启时自动启动。重启策略会按正确的顺序启动链接的容器。Docker 建议您使用重启策略,并避免使用进程管理器来启动容器。

docker run命令时使用--restart标志配置重启策略,支持:

  • no
  • on-failure[:max-retries]
  • always
  • unless-stopped

Example

# 启动redis容器时候设置重启策略
docker run -d --restart unless-stopped redis

# 修改已经启动的redis容器重启策略
docker update --restart unless-stopped redis

- 阅读剩余部分 -

有的时候,由于网络原因,国内无法获取某些镜像

比如获取k8s.gcr.io/metrics-server/metrics-server:v0.5.2镜像,有如下报错:

~$ docker pull k8s.gcr.io/metrics-server/metrics-server:v0.5.2
Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

这里提供两种解决方法:

1.通过配置代理拉取镜像

2.通过其它镜像仓库获取镜像

- 阅读剩余部分 -

有时候会针对某一个docker容器抓包,排查网络问题。就需要知道宿主机上的哪个虚拟网卡对应容器,可以通过以下方式查看。

示例:

test-container 容器抓包,具体操作

1.进入容器查看iflink

swift@xxx-001:~$ docker exec -it test-container bash
[root@384a71d00b2b sonatype]# cat /sys/class/net/eth0/iflink
9

2.宿主机查看对应虚拟网卡

swift@xxx-001:~$ ip link |grep 9
    link/ether 02:42:89:df:3d:4e brd ff:ff:ff:ff:ff:ff
    link/ether 8a:7d:fa:d0:96:39 brd ff:ff:ff:ff:ff:ff link-netnsid 3
9: vethadfe873@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT group default
    link/ether da:90:0e:5d:04:af brd ff:ff:ff:ff:ff:ff link-netnsid 2
    link/ether f6:b8:43:09:0b:7d brd ff:ff:ff:ff:ff:ff link-netnsid 0
    link/ether ce:8c:08:d1:86:9e brd ff:ff:ff:ff:ff:ff
    link/ether 32:ce:9e:82:e2:0d brd ff:ff:ff:ff:ff:ff
    link/ether b2:2c:9b:3b:25:de brd ff:ff:ff:ff:ff:ff link-netnsid 4

可以看到宿主机上的 vethadfe873 该虚拟网卡对应 test-container 容器

3.接下来就可以根据该虚拟网卡进行抓包操作

swift@xxx-001:~$ sudo tcpdump -i vethadfe873 -n