映射 docker 端口失败
Mapping docker port is failed
使用以下 docker 文件创建了新的 docker 图像 (rm/node:10.0) with centos7.
FROM rm/node:9.0
EXPOSE 3000
WORKDIR /Reader_Manager/SISPlatform/Auth
RUN npm install
WORKDIR /Reader_Manager/SISPlatform/Auth/portal
CMD npm run-script dev-server-linux
"npm run-script dev-server-linux" 将调用在 package.json 文件
中定义的以下命令
"dev-server-linux": "export NODE_ENV=development && pm2 start --no-daemon AuthServer -o ../../logs/pm2/out/auth_out.log -e ../../logs/pm2/err/auth_error.log --log-date-format 'DD-MM-YYYY HH:mm:ss.SSS'",
当我尝试 运行 在背景中创建 docker 图像时,它是 运行ning。
docker run -d rm/node:10.0
08633576828fe33ba880c7b6a40dd9306c885d24ce36a765a459f5acc8e91808
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
08633576828f rm/node:10.0 "/bin/sh -c 'npm run-" About a minute ago Up About a minute 3000/tcp nostalgic_gates
因为我运行在容器里面安装nodejs,暴露了3000端口。所以我尝试映射 3000 端口,但由于错误而失败。
[dkanagaraj@localhost docker_test]$ docker run -p 3000:3000 -d rm/node:10.0
3160c27cd2ee964474d137024c1f392dafe5242874842b5f5cdf28a4dfb27e51
Error response from daemon: Cannot start container 3160c27cd2ee964474d137024c1f392dafe5242874842b5f5cdf28a4dfb27e51: failed to create endpoint big_wing on network bridge: COMMAND_FAILED: '/sbin/iptables -w2 -t nat -A DOCKER -p tcp -d 0/0 --dport 3000 -j DNAT --to-destination 172.17.0.3:3000 ! -i docker0' failed: iptables: No chain/target/match by that name.
您系统上的某些东西删除了它需要工作的 docker iptables 条目。已建议两个修复 here:
对于 CentOS:
sudo service docker restart
sudo service iptables save
对于Ubuntu:
sudo apt-get install iptables-persistent
sudo service docker restart
iptables-save > /etc/iptables/rules.v4 # you may need to "sudo -s" to get a root shell first
docker重启后,你应该会在nattable:
下看到docker链
iptables -t nat -vL
使用以下 docker 文件创建了新的 docker 图像 (rm/node:10.0) with centos7.
FROM rm/node:9.0
EXPOSE 3000
WORKDIR /Reader_Manager/SISPlatform/Auth
RUN npm install
WORKDIR /Reader_Manager/SISPlatform/Auth/portal
CMD npm run-script dev-server-linux
"npm run-script dev-server-linux" 将调用在 package.json 文件
中定义的以下命令"dev-server-linux": "export NODE_ENV=development && pm2 start --no-daemon AuthServer -o ../../logs/pm2/out/auth_out.log -e ../../logs/pm2/err/auth_error.log --log-date-format 'DD-MM-YYYY HH:mm:ss.SSS'",
当我尝试 运行 在背景中创建 docker 图像时,它是 运行ning。
docker run -d rm/node:10.0
08633576828fe33ba880c7b6a40dd9306c885d24ce36a765a459f5acc8e91808
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
08633576828f rm/node:10.0 "/bin/sh -c 'npm run-" About a minute ago Up About a minute 3000/tcp nostalgic_gates
因为我运行在容器里面安装nodejs,暴露了3000端口。所以我尝试映射 3000 端口,但由于错误而失败。
[dkanagaraj@localhost docker_test]$ docker run -p 3000:3000 -d rm/node:10.0
3160c27cd2ee964474d137024c1f392dafe5242874842b5f5cdf28a4dfb27e51
Error response from daemon: Cannot start container 3160c27cd2ee964474d137024c1f392dafe5242874842b5f5cdf28a4dfb27e51: failed to create endpoint big_wing on network bridge: COMMAND_FAILED: '/sbin/iptables -w2 -t nat -A DOCKER -p tcp -d 0/0 --dport 3000 -j DNAT --to-destination 172.17.0.3:3000 ! -i docker0' failed: iptables: No chain/target/match by that name.
您系统上的某些东西删除了它需要工作的 docker iptables 条目。已建议两个修复 here:
对于 CentOS:
sudo service docker restart
sudo service iptables save
对于Ubuntu:
sudo apt-get install iptables-persistent
sudo service docker restart
iptables-save > /etc/iptables/rules.v4 # you may need to "sudo -s" to get a root shell first
docker重启后,你应该会在nattable:
下看到docker链iptables -t nat -vL