差别
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
tech:op:docker:network [2017/11/21 14:24:55] 某喵 创建 |
tech:op:docker:network [2018/07/17 01:54:12] (当前版本) 某喵 |
||
---|---|---|---|
行 1: | 行 1: | ||
- | <markdown> | ||
- | |||
## Docker Network 问题记录 | ## Docker Network 问题记录 | ||
- | - docker run --net host | + | 在 docker build 的过程中 apt-get 一直无法 resolve archive.ubuntu.com,一开始以为是 dns 的问题,故做了如下的尝试 |
+ | |||
+ | - 设置 `/etc/default/docker` 中的 DOCKER_OPTS,但实践证明,不要轻易改动,容易导致 service docker restart 起不起来 | ||
+ | - 设置 `/etc/docker/daemon.json`,加入“DNS”配置,实践证明并不 work | ||
+ | - 设置 `/etc/resolv.conf` 中的 nameserver,实践证明并不 work | ||
+ | |||
+ | 后来发现,并不是 dns 的问题,因为 | ||
+ | |||
+ | - `docker run busybox ping -c 1 111.13.101.208`(百度 IP),无法 ping 通 | ||
+ | - `docker run --network host busybox ping -c 1 111.13.101.208` 可以 ping 通 | ||
+ | |||
+ | 所以,归结下来,是 docker bridge 无法访问外网。临时方案,可以用以下方式解决 | ||
+ | |||
+ | - docker run --net/--network host | ||
- docker build --network host | - docker build --network host | ||
+ | |||
+ | ## 解决 ping 的问题 | ||
+ | |||
+ | - 编辑 `/etc/ufw/before.rules`,在 `*filter` 前加上 | ||
+ | |||
+ | ``` | ||
+ | *nat | ||
+ | :POSTROUTING ACCEPT [0:0] | ||
+ | -A POSTROUTING ! -o docker0 -s 172.17.0.0/16 -j MASQUERADE | ||
+ | COMMIT | ||
+ | ``` | ||
+ | |||
+ | - 执行 | ||
+ | |||
+ | ``` | ||
+ | sudo ufw reload | ||
+ | 或者 | ||
+ | sudo ufw disable | ||
+ | sudo ufw enable | ||
+ | ``` | ||
+ | |||
+ | ## 解决 dns 问题 | ||
+ | |||
+ | - 编辑 `/etc/default/ufw`,设置 `DEFAULT_FORWARD_POLICY="ACCEPT"` | ||
+ | - sudo ufw allow 2375/tcp | ||
+ | - sudo ufw reload | ||
## Ref | ## Ref | ||
+ | - [offical networking](https://docs.docker.com/engine/userguide/networking/) | ||
+ | - [infoq docker network](http://www.infoq.com/cn/articles/docker-network-and-pipework-open-source-explanation-practice#) | ||
+ | - [daocloud docker network](http://blog.daocloud.io/docker-bridge/) | ||
- [fix-docker-networking-dns](https://development.robinwinslow.uk/2016/06/23/fix-docker-networking-dns/) | - [fix-docker-networking-dns](https://development.robinwinslow.uk/2016/06/23/fix-docker-networking-dns/) | ||
- | + | - [ufw & docker](https://svenv.nl/unixandlinux/dockerufw/) | |
- | </markdown> | + |