无法更改XDB Docker容器的端口
作为医生。一位官员表示,我正在创建一个XDB容器,如下所示:无法更改XDB Docker容器的端口,docker,influxdb,Docker,Influxdb,作为医生。一位官员表示,我正在创建一个XDB容器,如下所示: docker run --name=influxdb3 -p 8087:8087 influxdb 然而,当我看到它的细节时,我得到: madmin’s-MacBook-Pro:sentinel-be jscherman$ docker container ls CONTAINER ID IMAGE COMMAND CREATED S
docker run --name=influxdb3 -p 8087:8087 influxdb
然而,当我看到它的细节时,我得到:
madmin’s-MacBook-Pro:sentinel-be jscherman$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f895d3e35c41 influxdb "/entrypoint.sh infl…" 9 seconds ago Up 7 seconds 8086/tcp, 0.0.0.0:8087->8087/tcp influxdb3
为什么要使用许多端口?考虑到我从未指定过8086端口,为什么要选择8086端口?此外,如果我尝试向它查询某些内容,我会得到以下结果:
madmin’s-MacBook-Pro:sentinel-be jscherman$ curl -G http://localhost:8087/query --data-urlencode "q=CREATE DATABASE mydb"
curl: (52) Empty reply from server
madmin’s-MacBook-Pro:sentinel-be jscherman$ docker exec -ti influxdb3 /bin/bash
> root@f895d3e35c41:/# influx -port 8087
Failed to connect to http://localhost:8087: Get http://localhost:8087/ping: dial tcp 127.0.0.1:8087: connect: connection refused
Please check your connection settings and ensure 'influxd' is running.
root@f895d3e35c41:/#
我尝试查询一些东西,然后没有得到响应,所以从容器中我尝试连接到8087端口的inflow,正如我前面指定的,但它不存在。有什么概念是我遗漏的吗?正在进行查询吗?为什么在8087端口不存在井侵?井侵xDB的标准端口是8086(请查看该端口) 如果您想改用端口8087,我认为最简单的方法是像这样开始docker容器:
docker run --name=influxdb3 -p 8087:8086 influxdb
XDB的标准端口是8086(请查看) 如果您想改用端口8087,我认为最简单的方法是像这样开始docker容器:
docker run --name=influxdb3 -p 8087:8086 influxdb
Docker映像通常运行在服务器上。通常,端口号在Docker应用程序或映像中是固定的:例如,提供基于HTTP的服务的服务器可能总是在端口80、8000或8080上提供服务。在XDB的情况下,它的“标准”端口号似乎是8086 当您
docker运行-p
容器时,您可以指定不同的端口号,但必须将其重新映射到服务器正在侦听的容器中的端口号。如果希望主机上的端口8087到达容器中的端口8086,则需要指定
docker run --name=influxdb3 -p 8087:8086 influxdb
仅更改第一个端口号
Dockerfile可以通过
EXPOSE
指令声明服务器将侦听的特定端口。这在实践中没有多大用处–公开的端口不会自动发布到主机,您可以发布未公开的端口–但这就是为什么docker ps
命令也列出了标准端口号。docker映像通常运行服务器。通常,端口号在Docker应用程序或映像中是固定的:例如,提供基于HTTP的服务的服务器可能总是在端口80、8000或8080上提供服务。在XDB的情况下,它的“标准”端口号似乎是8086
当您docker运行-p
容器时,您可以指定不同的端口号,但必须将其重新映射到服务器正在侦听的容器中的端口号。如果希望主机上的端口8087到达容器中的端口8086,则需要指定
docker run --name=influxdb3 -p 8087:8086 influxdb
仅更改第一个端口号
Dockerfile可以通过
EXPOSE
指令声明服务器将侦听的特定端口。这在实践中没有多大用处–公开的端口不会自动发布到主机,您可以发布未公开的端口–但这就是为什么docker ps
命令也列出了标准端口号。阅读链接时,所有示例都使用端口8086,而不是8087?这似乎是服务器使用的标准端口?@DavidMaze我不明白,在运行容器时,我不是用-p参数更改了它吗?我是Docker的新手,所以我可能会到处混淆概念。阅读链接,所有示例都使用端口8086,而不是8087?这似乎是服务器使用的标准端口?@DavidMaze我不明白,在运行容器时,我不是用-p参数更改了它吗?我是Docker的新手,所以我可能会到处混淆概念。哦,我明白了。非常感谢!哦,我明白了。非常感谢!