当前位置: 首页 > 知识库问答 >
问题:

似乎无法向主机公开docker容器端口

滑乐逸
2023-03-14

我可能遗漏了一些可笑的东西,但我试图向我的主机(Mac)公开的每个docker容器似乎都不起作用。我可以看出这些容器正在运行,并且似乎已经正确地暴露在我选择的端口中。我错过了什么明显的东西吗?任何帮助都将不胜感激。

我下载了最新的ElasticSearch图像:https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

运行Docker:Docker运行-d-p9200:9200 Docker。有弹力的co/elasticsearch/elasticsearch:5.4.0

请求查看正在运行的图像:docker ps

查看运行图像:5e8ae3b13f7c docker。有弹力的co/elasticsearch/elasticsearch:5.4.0“/bin/bash-bin/es-…”4秒前上升4秒0.0.0.0:9200-

运行lsof以查看端口9200 lsof-i tcp:9200上是否有任何暴露

一无所获

Mac OS: 10.12.4

Docker更新版本:

docker version
Client:
 Version:      17.04.0-ce
 API version:  1.27 (downgraded from 1.28)
 Go version:   go1.7.5
 Git commit:   4845c56
 Built:        Wed Apr  5 23:33:17 2017
 OS/Arch:      darwin/amd64

Server:
 Version:      17.03.1-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Mon Mar 27 16:58:30 2017
 OS/Arch:      linux/amd64
 Experimental: false

下载了nmap并对9200localhost运行。还确保9200现在在 /etc/pf.conf.打开

Nmap scan report for localhost (127.0.0.1)
Host is up (0.00016s latency).
Other addresses for localhost (not scanned): ::1
PORT     STATE  SERVICE
9200/tcp closed wap-wsp

也尝试在mac的IP上使用docker机器:

docker-machine ip default
192.168.99.100

Tried 192.168.99.100:9200 and still no luck

共有1个答案

唐渊
2023-03-14

你知道,看起来下载的图像或docker安装有问题。我重复了你的步骤-一切正常:

[06:40 PM] borlaze@mac: /tmp $ docker run -d -p 9200:9200 docker.elastic.co/elasticsearch/elasticsearch:5.4.0

[06:41 PM] borlaze@mac: /tmp $ docker ps
CONTAINER ID        IMAGE                                                 COMMAND                  CREATED             STATUS              PORTS                              NAMES
fd05a1fe9b5a        docker.elastic.co/elasticsearch/elasticsearch:5.4.0   "/bin/bash bin/es-..."   9 seconds ago       Up 7 seconds        0.0.0.0:9200->9200/tcp, 9300/tcp   practical_bell

[06:41 PM] borlaze@mac: /tmp $ lsof -i tcp:9200
COMMAND     PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
com.docke 32108 borlaze   21u  IPv4 0x601aa3189a6fc3e3      0t0  TCP *:wap-wsp (LISTEN)
com.docke 32108 borlaze   22u  IPv6 0x601aa318a167e6cb      0t0  TCP localhost:wap-wsp (LISTEN)

在OS 10.12.4上检查,docker

[06:45 PM] borlaze@mac: /tmp $ docker version
Client:
 Version:      17.03.1-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Tue Mar 28 00:40:02 2017
 OS/Arch:      darwin/amd64

Server:
 Version:      17.03.1-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Fri Mar 24 00:00:50 2017
 OS/Arch:      linux/amd64
 Experimental: true

尝试删除图像并重复。

 类似资料:
  • 主机:Mac OS X 10.10.5 Docker 1.10.1 我做过这样的事: 步骤1:为永久postgres数据创建卷 -->没有打开端口5432 更新2:更陌生。我也这样做过: 阻止Docker。然后,在我的主机中运行一个普通的PostgreSQL 9.4.4实例(这里不涉及docker,只在Mac OS X主机中运行postgres,监听端口5432)。一切正常: 为什么? 有道理吗?

  • 我有一个正在运行的MySQL容器,我在里面导入了很多数据(花了我几个小时)。 现在,我想在主机上使用GUI应用程序(DBeaver)从这个容器中查询数据。有没有一种方法可以将正在运行的容器的网络公开给主机,以便连接到它? 我一直在四处寻找,到目前为止最有希望的选择是运行一个带有标签的新容器,但是当我这样做的时候,所有导入的数据都不见了。 谢谢你!

  • 请考虑以下 我将端口连接到主机,以便管理我的服务,但这些服务只需使用默认的docker网络就可以相互访问。例如,运行在上的程序可以访问并且一些DNS魔术将使其工作。我想将我的主机添加到这个网络中,这样我就可以通过其主机名:port访问容器的端口。

  • 根据定义,在docker-compose文件中,函数是在主机端口还是在容器端口? 遵循约定还是约定? 上面的示例代码究竟是如何处理端口的?

  • 我想从一个服务器设置服务多个站点: 到目前为止,我只发现docker在使用静态IPS时进行端口重定向。 是否可以通过主机名使用docker进行端口重定向? 我使用一个免费的亚马逊EC2 Insance。 谢谢博

  • 我有一个关于这个问题的问题https://hub.docker.com/r/jupyter/scipy-notebook.我正在尝试使用docker compose运行此图像: 组成: Dockerfile 我用手够不着它http://locahost:8888 .... 网址。我使用Windows10作为主机,并尝试从这个docker compose和这些工作中访问其他服务。