Dockerfile中的桥接网络连接

时间:2017-02-15 17:04:25

标签: docker ftp dockerfile

我有这个Dockerfile:

FROM php:5.6-cli
VOLUME /usr/src/up
WORKDIR /usr/src/up
RUN docker-php-source extract \
&& docker-php-ext-install pdo pdo_mysql 
&& docker-php-source delete

RUN echo "date.timezone = Europe/Paris" >> /usr/local/etc/php/php.ini \

这个用PHP 5.6创建一个新的虚拟机,安装pdo和pdo_mysql扩展,并在php.ini中指定时区。

我遇到的问题是,默认情况下,虚拟机具有“NAT网络IP地址”。因此,使用FTP连接的脚本不起作用,我发现了这个错误:

Warning: ftp_get(): I won't open a connection to 172.17.0.2 (only to x.x.x.x)

所以我希望我的虚拟机有一个“桥接网络IP地址”,并从我的DHCP获取其IP地址。

我该怎么做? 我可以将它包含在Dockerfile中以便为其他人工作吗?

提前致谢!

亲切的问候, 托马斯

1 个答案:

答案 0 :(得分:4)

默认情况下,docker server会创建一个默认网桥you can create your own bridge network,并在启动时将容器分配给该自定义网桥。或者您可以使用docker network命令,这似乎是一个更容易的路径。这样,您可以指定IP范围以匹配您的DHCP设置。

创建自己的网桥

docker network create --driver=bridge \
--subnet=192.168.127.0/24 --gateway=192.168.127.1 \
--ip-range=192.168.127.128/25 yourbridge

使用自定义网桥运行容器;

docker run -d --net=yourbridge ..

有关具体示例,请参阅此博客文章: http://www.dasblinkenlichten.com/docker-networking-101-user-defined-networks/

  

在用户定义的网桥中,不支持链接。您   可以在此网络中的容器上公开和发布容器端口。   如果要构建桥接网络的一部分,这非常有用   可用于外部网络。

enter image description here