Tag: NAT

Docker alpine vm,访问主机的/ etc / hosts文件configuration

在主机的/ etc / hosts文件中定义的configuration无法访问docker alpine vm(在OSX环境中)。 以下示例是我的主机/ etc / hosts文件 10.4.1.4 dockerregistry.senz.local 如果我通过下面的命令连接到高山vm,并尝试访问dockerregistry.senz.local它不会工作 # connects to alpine vm screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty 在以前基于boot2docker的docker中,我们可以使boot2docker通过natdnshostresolver1访问主机configuration VBoxManage modifyvm "boot2docker-vm" — natdnshostresolver1 on 由于高山vm无法访问主机的/ etc / hostsconfiguration,当我试图从私人dockerregistry(它被configuration为不安全的registry)的图像,它会给出一个错误 docker pull dockerreigstry.senz.local/cassandra:0.1 由于以下错误而失败 在192.168.65.1:53上查找dockerregistry.senz.local:读取udp 192.168.65.2:41659->192.168.65.1:53:I / O超时 如果我将条目10.4.1.4 dockerregistry.senz.local添加到docker alpine vm的/ etc / hosts文件中,可以成功地拖出图像

为什么我能够从虚拟框vm里面的docker访问虚拟主机的LANnetworking

我有下一个设置:主机MAC < – 虚拟盒与Ubuntu 16.04(NAAT)< – docker与Ubuntu 16.04(桥)。 由于某种原因,我可以ping本地机器或访问在Docker的Mac主机局域网内的计算机上的瓶服务器。 为什么这可能?

我无法启动与iptables错误docker服务

这是我的Linux版本信息CentOS Linux release 7.0.1406 (Core) ,我的iptables版本是v1.4.21 在我使用命令yum install docker ,我试图用命令service docker start来启动docker,但是我无法启动docker。 收到的错误信息是 [root@ssd-master ~]# systemctl status docker.service docker.service – Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled) Active: failed (Result: exit-code) since Fri 2015-01-30 15:20:28 KST; 7s ago Docs: http://docs.docker.com Process: 54831 ExecStart=/usr/bin/docker -d $OPTIONS $DOCKER_STORAGE_OPTIONS (code=exited, status=1/FAILURE) Main PID: 54831 (code=exited, status=1/FAILURE) Jan […]

docker路由没有iptables

我有一个运行命令sudo docker run -p 8002:80 nginx的docker nginx镜像 我想知道的是,路由如何从hostmachine:8002转到端口80上监听的容器。通常有非常明确的iptables,但是如果禁用iptables,它仍然可以工作。 然后我注意到有一个docker-proxy进程侦听每个暴露的端口,我会假设代理/ NAT。 所以我用–userland-proxy=false禁用了userland代理。 这样做之后,我现在只能看到一个进程docker-current ,仍在监听所有暴露的端口。 我只能假设docker-current进程正在执行na​​t,但是这让我想知道为什么userland代理和/或iptables在那里? 有没有一种方法,我可以看到/certificate自己在哪里发生的事情(即打开/closures的东西,不能curl我的nginx容器,然后能够)?

如何将源IP转发到Docker容器而不让Docker与iptables混淆

如果你在一个Docker容器中运行一些东西(例如nginx),并将其中一个暴露的端口发布到外部世界(比如docker run -p 80:80 nginx ),那么Doc​​ker将会 把这个港口暴露给公众 设置iptables,以便如果通过Docker网桥(NAT)连接到容器,则nginx将仍然知道正确的源IP ! 彻底打开防火墙到那个端口 我不想让任何人连接到已发布的端口,但是Docker混淆了这个问题。 所以我用–iptables=false重新启动了Docker守护进程,允许我自己pipe理防火墙。 但是,nginx现在只能看到网桥(172.18.0.1)作为源地址。 我如何控制防火墙,并将源IP地址转发到容器?

用nat设置docker容器

我正在设置两个docker集装箱 container1 container2 | | | eth0 eth1 | | | eth1 docker0 docker1<—————- | | internet docker0和docker1是桥梁。 我有ip转发到1在主机和容器。 我已经设置 iptables -I POSTROUTING -t nat -o eth0 -j MASQUERADE in container 1 不过,我不能ping任何从容器2到互联网。 我可以看到数据包在容器1的eth1上被接收。 OS: ubuntu 13.10 docker version: 0.11.1, build fb99f99 我缺less一些configuration? 重现步骤: SERV=$(docker run –privileged=true -i -d -t -v ~/Projects/code/myproject/build:/build:ro debian:7.4 /bin/bash) CLI=$(docker […]

Docker的NAT表输出链规则

我想了解iptables中的规则之一: $ sudo iptables -t nat –list -v … Chain OUTPUT (policy ACCEPT 618 packets, 31267 bytes) pkts bytes target prot opt in out source destination 0 0 DOCKER all — any any anywhere !127.0.0.0/8 ADDRTYPE match dst-type LOCAL … 所以这条规则试图匹配目的地址types“本地”,而不是在127.0.0.0/8的范围内? 那么它会匹配什么地址? 这个规则的目的是什么? 谢谢!

如何在OSX本地networking中将请求转发到Docker机器

我目前正在本地networking上运行一个docker机器,它的IP和端口是192.168.99.100:8080。 我想从本地networking的某个地方连接这台机器,然后访问它,所以我发现的最好方法就是将发送的请求从我的笔记本电脑转换为docker机器。 换句话说,发送到我的笔记本电脑的每个请求都将通过自己的IP和端口发送到docker机器! 我使用pfctl来做到这一点,但是当我检查端口8585找出哪个服务正在监听这个端口时,我找不到任何东西,听起来好像请求没有到达(到达)目的地! 我做了如下: 1 – csrutil禁用 2-我的angular色:/etc/pf.anchors/mazafard: rdr pass on en0 inet proto tcp from any to 192.168.20.203 port 8585 -> 192.168.99.100 port 8080 3-我的pf conf /etc/pf-mazafard.conf rdr-anchor "forwarding" load anchor "forwarding" from "/etc/pf.anchors/mazafard" 和 sudo pfctl -vnf /etc/pf.anchors/mazafard pfctl: Use of -f option, could result in flushing of rules present in the […]