Chrome内部docker错误连接被拒绝

Chrome内部docker错误连接被拒绝,docker,google-chrome,docker-networking,docker-network,Docker,Google Chrome,Docker Networking,Docker Network,我们试图在docker容器中运行chrome 生成后的docker run命令如下: docker run \ --rm \ -ti \ --add-host=example.my_domain.localhost:172.21.0.13 \ --env="APP_ENV=test" \ --privileged \ --volume "$volumeDir:/app" \ --cap-add SYS_ADMIN \ --net custom_network \ built_i

我们试图在docker容器中运行chrome

生成后的docker run命令如下:

docker run \
 --rm \
 -ti \
 --add-host=example.my_domain.localhost:172.21.0.13 \
 --env="APP_ENV=test" \
 --privileged \
 --volume "$volumeDir:/app" \
 --cap-add SYS_ADMIN \
 --net custom_network \
 built_image_tag bash
172.21.0.13是指示同一网络中另一个容器的ip的示例

进入容器后,主机文件的外观如下所示:

127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.21.0.13 example.my_domain.localhost
172.21.0.15 7229a8eac11e
并按预期运行:

$wget example.my_domain.localhost
连接到example.my_domain.localhost(example.my_domain.localhost)| 172.21.0.13 |:80。。。有联系的。
产生正确的连接

但是,在浏览器中运行连接:

$ google-chrome http://example.my_domain.localhost
导致错误\u连接被拒绝

浏览器可以导航到任何其他网站

谢谢

编辑: 请注意,wget和浏览器的打开都是在容器内部启动的,因为我们使用chrome headless进行测试。

在我的例子中,我使用的是chrome headless,但我相信潜在的问题是相同的,所以我希望我的答案是有用的

我的
ERR\u CONNECTION\u被拒绝
错误在以下部件就位后得到解决:

1) 承载站点的docker容器需要网络别名。 这不是在Puppeter容器中添加一个hosts文件条目,Chrome在我的测试中似乎不支持这个条目

服务:
my nginx容器:
...
网络:
内部:
别名:
#因此,我们可以从其他容器直接(通过其域)访问我们的站点。
-my-docker-site.com
2) 添加以下木偶演员参数
--禁用web安全”
--启用功能=网络服务

我意识到最初的问题不是问Browsershot,而是因为args是这样添加的:

$browsershot=browsershot::url('https://my-docker-site.com')
->setOption('args',['--禁用web安全性','--启用功能=网络服务']))

这样我就可以在一个容器中运行Browsershot和Puppeter,Chrome也可以通过引用其他容器中的域名来访问其他容器中托管的站点。

当你说
wget example.my_domain.localhost
时,你的意思是说你是在容器中执行该命令吗?或者从执行Chrome的同一台主机上?wget和Chrome都在容器内执行,我们使用Chrome运行headless Testing您可以尝试向Chrome命令添加
--禁用web安全性