我有docker容器用于实验。所以我不知道以后尝试新应用时会使用哪些端口。在docker-run命令中使用ip/port从主机访问docker容器应用程序而不公开它,这是不可能的吗?
Docker for Mac无法将流量路由到容器,也无法将流量从容器返回到主机。
https://docs.docker.com/docker-for-mac/networking/#i-无法ping我的容器
更新:OP没有在原始问题中提供它是关于mac的docker的。
原始答复:
是的,你能做到。
假设您有一个名为
。如果您使用默认的docker网络,这个ip可能在boring_pare
的容器和一个运行在端口8080
上的Web应用。您可以通过请求超文本传输协议从主机访问它://[ip_of_boring_pare]: 8080172.17.0.xxx
范围内。
要查找此IP,可以使用以下方法检查容器:
docker container inspect boring_pare
此外,你提到:
在docker-run命令中使用ip/port从主机访问docker容器应用程序而不公开它,这是不可能的吗?
这里正确的术语应该是出版。进一步阅读:
>
关于EXPOSE
/Dockerfile的文档
...EXPOSE
指令实际上并不发布端口。它作为构建映像的人和运行容器的人之间的一种留档,打算发布哪些端口。要在运行容器时实际发布端口,请使用docker run
上的-p
标志来发布和映射一个或多个端口,或者使用-P
标志来发布所有公开的端口并将其映射到高阶端口。
docker中“公开”和“发布”的区别
更新@robie2011评论的答案:
下面,我运行3个命令:
ip地址
curl
fromhost
访问nginx
主页我的控制台输出:
$ docker run --rm --name some-nginx -d nginx
0e53d3b5ef6d65a4731c4066f3523c5ecd3c118abedae44b33e89fdf8e401632
$ docker container inspect --format '{{ .NetworkSettings.IPAddress }}' some-nginx
172.17.0.3
$ curl 172.17.0.3
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
$
问题内容: 到目前为止,我们使用了几个Linux用户: system_foo @ server system_bar @服务器 … 我们希望将系统用户放入docker容器中。 linux用户->容器 服务器内部的更改没有问题,但是远程系统使用这些用户向我们发送数据。 我们需要工作。远程系统无法更改。 如果每个linux操作系统只有一个系统(将端口22传递到容器),我将非常容易。但是有几个。 我们如
端口映射可以访问, 但我还是习惯通过ip标识服务, 而不是端口标识服务. 主机(win11)通过容器ip直接连不通docker容器, 使用起来不是太方便. 尝试了网上一些方法, 不知为啥都么有成功... 比如: docker for windows 容器内网通过独立IP直接访问的方法 - brock0624 - 博客园 ipconfig 输出↓,不知道应该用哪个网卡来转发流量呢,就是说路由该怎么配
问题内容: 我有一个运行詹金斯的码头集装箱。作为构建过程的一部分,我需要访问在主机上本地运行的Web服务器。是否可以将主机Web服务器(可以配置为在端口上运行)暴露给jenkins容器? 编辑:我正在Linux机器上本地运行docker。 更新: 除了下面的@larsks答案之外,要从主机获取主机IP的IP地址,我还要执行以下操作: 问题答案: 在Linux上本地运行Docker时,您可以使用接口
我有一个docker容器在运行Jenkins。作为构建过程的一部分,我需要访问在主机上本地运行的web服务器。有没有一种方法可以将主机web服务器(可以配置为在端口上运行)公开给jenkins容器? 编辑:我正在Linux机器上原生运行docker。 更新: 除了@larsks下面的答案之外,要从主机获取主机IP的IP地址,我还做了以下操作:
问题内容: 我基于两个不同的图像创建了两个docker容器。一个数据库,另一个用于网络服务器。这两个容器都在我的Mac OS X上运行。 我可以从主机访问数据库容器,也可以从主机访问Web服务器。 但是,如何从Web服务器访问数据库连接? 我启动数据库容器的方式是 我开始了wls容器作为 我可以通过连接到主机上的数据库 我可以以以下方式访问主机上的wls: 问题答案: 最简单的方法是使用–link
我基于两个不同的映像创建了两个docker容器。一个是db,另一个是WebServer。这两个容器都在我的mac OSX上运行。 我可以从主机访问db容器,也可以从主机访问webserver。 我可以访问主机上的wls作为