Tag: 防火墙

将公司防火墙后面的docker图像拖出“服务器错误:取出图像层时的状态0”

我无法在企业防火墙后面下载图像。 这篇文章帮助我解决了与主机名错误相关的无地址问题 。 我使用Cntlm进行代理用户身份validation。 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 15.10 Release: 15.10 Codename: wily $ docker -v Docker version 1.9.1, build a34a1d5 $ sudo docker search ubuntu Error response from daemon: Get https://index.docker.io/v1/search?q=ubuntu: dial tcp: lookup index.docker.io: No address associated with hostname $ sudo mv /tmp/http-proxy.conf /etc/systemd/system/docker.service.d/http-proxy.conf […]

无法在dockerfile中设置代理

我无法运行企业防火墙背后的Docker “入门”示例 。 它在没有防火墙的情况下运行良好。 当我使用docker build -t my_tag .构build图像时docker build -t my_tag . ,试图安装一些python软件包时会失败。 docker文件有这个命令: RUN pip install -r requirements.txt 错误消息是: 收集Redis(来自-r requirements.txt(第1行))在连接被'ProxyError('无法连接到代理服务器')“的情况下重试(Retry(total = 4,connect = None,read = None,redirect = None) NewConnectionError(':无法build立新连接:[Errno -2]名称或服务未知',))':/ simple / redis / 我已经尝试在dockerfile中设置代理(以各种格式,但都失败了): ENV http_proxy http://my_username:my_password@my_host:/80 ENV https_proxy https://my_username:my_password@my_host:/80 ENV HTTP_PROXY http://my_username:my_password@my_host:/80 ENV HTTPS_PROXY https://my_username:my_password@my_host:/80 ENV http_proxy http://my_username:my_password@my_host:80 ENV https_proxy […]

Docker堆栈:将端口发布到主机

这个问题 当运行$ docker stack deploy … ,是否有任何方法发布一个只能被主机访问的端口? 我正在使用在Digital-Ocean上运行的Ubuntu服务器实例。 例 假设我运行一个名为db的mysql服务。 我可以从不同的容器访问数据库, 而不需要在我docker-compose.yml文件中有ports: ["3306:3306"] 。 从我的其他容器,我可以使用数据库作为MySQL主机和默认端口。 这按预期工作。 现在我想从我的主机访问数据库。 据我所知,这是不可能发布一个端口。 当我把ports: ["3306:3306"]放在我docker-compose.yml文件中时,我可以使用mysql -uroot -p -h 127.0.0.1访问数据库。 问题是,数据库现在可以从外部访问,我可以使用mysql -uroot -p -h foo.com从任何PClogin到数据库,这似乎是不必要的不​​安全。 我可以想一些其他的用例,你可能需要这样做: 使用任何需要由泊坞窗容器访问的数据库, 也可以从泊坞外的应用程序访问。 使用nginx,不在docker中运行,作为在docker中运行的应用程序的反向代理。 没有暴露的应用程序本身的networking 如果这些用例可以使用其他解决scheme解决,我当然很高兴听到。 我试过的一些东西 使用防火墙阻止对端口3306的访问。这不起作用,因为docker工人使用IP表。 在撰写文件中使用ports: ["127.0.0.1:3306:3306"] 。 当用户docker-compose up时,这可以按照预期docker-compose up 。 不幸的是,这在使用Docker堆栈时不起作用。 许多其他可能的解决scheme并没有带领任何地方…

我的防火墙阻止从docker集装箱到外部的networking连接

对我来说这是一个非常标准的设置,我有一个运行docker和ufw作为我的防火墙的Ubuntu机器。 如果启用了防火墙,则docker实例无法连接到外部 $ docker run -i -t ubuntu /bin/bash WARNING: Docker detected local DNS server on resolv.conf. Using default external servers: [8.8.8.8 8.8.4.4] root@d300c5f17207:/# apt-get update Err http://archive.ubuntu.com precise InRelease 0% [Connecting to archive.ubuntu.com] W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/precise/InRelease W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/precise/Release.gpg Temporary failure resolving 'archive.ubuntu.com' W: Some index files failed to download. […]

如何将源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地址转发到容器?

Docker:当试图运行docker run hello-world getting – 禁止

这是Windows 7的机器,使用docker工具箱版本1.8.2安装docker工人 我在企业防火墙后面。 最初我甚至无法启动机器,所以我添加了两个新的环境variables:http_proxy,https_proxy,我能够调出默认的机器 现在当我跑步时,我得到: XXXXXX@CCCCCCC MINGW64 ~ $ docker run hello-world An error occurred trying to connect: Post https://192.168.99.100:2376/v1.20/containers/create: Forbidden 请帮忙。 ps:在stackoverflow上的其他问题都与MAC有关,因此不适用于我,所以pipe理员请不要浪费我的时间在不必要的closures这个项目。

阻止从Docker容器到私有IP的传出连接

我们使用Docker在服务器上运行的一些服务尝试连接到私有IP地址(10.0.0.0/8,192.0.0.0/16,172.16.0.0/12,100.64.0.0/10)。 这种行为是正常的,但我们的服务器提供商检测到这种stream量,并发送警报 我们只想停止传出stream量,而不是使用iptables传入。 这是我们目前的设置: -A OUTPUT -d 192.168.0.0/16 -m owner –uid-owner `id -u dockeruser` -j REJECT –reject-with icmp-port-unreachable -A OUTPUT -d 100.64.0.0/10 -m owner –uid-owner `id -u dockeruser` -j REJECT –reject-with icmp-port-unreachable -A OUTPUT -d 172.16.0.0/12 -m owner –uid-owner `id -u dockeruser` -j REJECT –reject-with icmp-port-unreachable -A OUTPUT -d 10.0.0.0/8 -m owner –uid-owner `id -u […]