我有一个正在运行的容器:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3825fa57b1ae repo:0.1.0 "/app/gogs/docker/st…" 29 minutes ago Up 29 minutes 22/tcp, 3000/tcp gogs-repo并试图从另一个容器中卷曲,如下所示:
docker run --rm curlimages/curl:7.69.1 -L -v http://gogs-repo:3000
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Could not resolve host: gogs-repo 我按照以下方式启动了gogs-repo容器:
docker run --rm --name gogs-repo repo:0.1.0
usermod: no changes
Apr 26 10:37:56 syslogd started: BusyBox v1.31.1
2020/04/26 10:37:56 [TRACE] Log mode: File (Info)
Apr 26 10:37:57 sshd[36]: Server listening on :: port 22.
Apr 26 10:37:57 sshd[36]: Server listening on 0.0.0.0 port 22.正如你所看到的,它已经启动并运行。为什么卷曲可以到达http://gogs-repo:3000
发布于 2020-04-26 11:27:51
假设您的服务在容器gogs-repo中的3000端口上运行(因为在查看容器日志之后我不确定),您应该在现有设置中进行以下更改。
第一件事就是。这两个容器-- gogs-repo和--另一个容器(从您试图访问服务的位置)没有相互连接。因此,主机gogs-repo未被解析。
要解决这个问题,您需要在单个网络中运行两个容器。
您可以执行以下步骤来实现所需的结果。
--network mynetwork。通过以下更改,您可以很好地访问http://gogs-repo:3000
这里还有一种方法(容易但不推荐)来实现所需的结果。
使用Docker链接的
如前所述,这里
链接允许容器彼此发现并安全地将有关一个容器的信息传输到另一个容器。设置链接时,可以在源容器和收件人容器之间创建管道。
我们可以使用--link参数链接要从其中访问服务的容器。
docker run --link gogs-repo:gogs-repo --rm curlimages/curl:7.69.1 -L -v http://gogs-repo:3000--link所做的是在不需要在容器外部公开任何端口的容器之间创建一个安全隧道。
https://stackoverflow.com/questions/61439710
复制相似问题