失败:端口已分配
failed: port is already allocated
我在 macOS Sierra 10.12.2
上使用 Docker 运行ning Oracle 11g Express
https://github.com/wnameless/docker-oracle-xe-11g
这是我的错误:
Last login: Sat Jan 7 22:42:11 on ttys000
➜ ~ docker run -d -p 49160:22 -p 49161:1521 wnameless/oracle-xe-11g
docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.
➜ ~ docker run -d -p 49160:22 -p 49161:1521 wnameless/oracle-xe-11g
043d8caecbb45d6e2e5999b69a2f760c20d53ff3aa2fad78cb1eb70acb058a1f
docker: Error response from daemon: driver failed programming external connectivity on endpoint serene_lalande (08bb0bd9684c0f92db7b736986bf894d3a57a714324405823496d13e175e7491): Error starting userland proxy: Bind for 0.0.0.0:49161 failed: port is already allocated.
➜ ~
我诊断:
➜ ~ netstat -anp tcp | grep 49161
tcp4 0 0 192.168.1.2.49161 17.188.166.13.5223 ESTABLISHED
➜ ~
➜ ~ docker --version
Docker version 1.12.5, build 7392c3b
我的 Dianostic ID:20EB9506-CC72-4093-8A15-60E05A841ED1
我不知道为什么。在那几周之前,它 运行 成功了。近,我改变,发布新的DHCP IP。如何运行 Docker实例有Oracle 11g表示成功?
你不能启动两次
docker run -d -p 49160:22
因为这意味着你想在主机上分配端口 49160 两次,当然,第二次,你得到错误消息,尝试第二次 运行
docker run -d -p 49161:22
您需要使用其他端口而不是 49161。尝试使用小于 49152 的端口。
您计算机上的端口 49161 与远程 Apple 服务器上的端口 5223 之间预先存在连接。因此,在该连接不复存在之前,该端口不能用于任何其他用途。端口 5223 用于 Apple 的推送通知。据我所知,这次您的计算机碰巧使用随机端口 49161 连接到 Apple 的服务器。以前当 Docker 容器工作时,我敢打赌你计算机上的端口 49161 当时没有被使用。
无论何时连接到远程服务器,您自己的计算机都会为该连接分配一个随机端口号。这一次,您的计算机在连接到 Apple 的推送通知服务时分配了 49161。下一次,它可能是一个完全不同的数字。参见 https://en.wikipedia.org/wiki/Ephemeral_port
我在 macOS Sierra 10.12.2
上使用 Docker 运行ning Oracle 11g Expresshttps://github.com/wnameless/docker-oracle-xe-11g
这是我的错误:
Last login: Sat Jan 7 22:42:11 on ttys000
➜ ~ docker run -d -p 49160:22 -p 49161:1521 wnameless/oracle-xe-11g
docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.
➜ ~ docker run -d -p 49160:22 -p 49161:1521 wnameless/oracle-xe-11g
043d8caecbb45d6e2e5999b69a2f760c20d53ff3aa2fad78cb1eb70acb058a1f
docker: Error response from daemon: driver failed programming external connectivity on endpoint serene_lalande (08bb0bd9684c0f92db7b736986bf894d3a57a714324405823496d13e175e7491): Error starting userland proxy: Bind for 0.0.0.0:49161 failed: port is already allocated.
➜ ~
我诊断:
➜ ~ netstat -anp tcp | grep 49161
tcp4 0 0 192.168.1.2.49161 17.188.166.13.5223 ESTABLISHED
➜ ~
➜ ~ docker --version
Docker version 1.12.5, build 7392c3b
我的 Dianostic ID:20EB9506-CC72-4093-8A15-60E05A841ED1
我不知道为什么。在那几周之前,它 运行 成功了。近,我改变,发布新的DHCP IP。如何运行 Docker实例有Oracle 11g表示成功?
你不能启动两次
docker run -d -p 49160:22
因为这意味着你想在主机上分配端口 49160 两次,当然,第二次,你得到错误消息,尝试第二次 运行
docker run -d -p 49161:22
您需要使用其他端口而不是 49161。尝试使用小于 49152 的端口。
您计算机上的端口 49161 与远程 Apple 服务器上的端口 5223 之间预先存在连接。因此,在该连接不复存在之前,该端口不能用于任何其他用途。端口 5223 用于 Apple 的推送通知。据我所知,这次您的计算机碰巧使用随机端口 49161 连接到 Apple 的服务器。以前当 Docker 容器工作时,我敢打赌你计算机上的端口 49161 当时没有被使用。
无论何时连接到远程服务器,您自己的计算机都会为该连接分配一个随机端口号。这一次,您的计算机在连接到 Apple 的推送通知服务时分配了 49161。下一次,它可能是一个完全不同的数字。参见 https://en.wikipedia.org/wiki/Ephemeral_port