我有这个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中以便为其他人工作吗?
提前致谢!
亲切的问候, 托马斯
答案 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/
在用户定义的网桥中,不支持链接。您 可以在此网络中的容器上公开和发布容器端口。 如果要构建桥接网络的一部分,这非常有用 可用于外部网络。