Docker 网络模式为host是遇到的一些坑(求解决之法)


Docker 网络模式为host是遇到的一些坑(求解决之法)
A. 在容器里面执行su命令,提示su: System error ,我在启动脚本里面写的启动tomcaT的命令:su - tomcat /opt/tomcat/bin/startup.sh 执行出错,也是报错su: System error,最后发现,在宿主机(centos6.6)上,su命令在/bin/su ,而容器镜像(centos7)里面的su命令在/usr/bin/su,目前这个问题还没有解决,

B. 我们的服务访问时通过防火墙映射进来的,比如访问58.44.23.45:8080 映射的内网IP地址是192.168.0.3:80 但是,有几次操作docker之后,从公网上就访问不了,而在内网其他机器上是可以正常访问192.168.0.3:80的,最后又是乱弄一通,就好了,不知道问题出在哪里
已邀请:

冯明振

赞同来自:


A: 使用host模式,只是容器和主机公用一个网络栈,其他如文件系统还是隔离的,所以容器和主机的su命令肯定不是同一个。

B:这个可能时DNAT出了问题了吧,看看iptables规则什么的。

请问如何解决呢?方便告知,谢谢

东方星痕 - 高级工程师

赞同来自:


A启动tomcat请写成服务. 用system 或 service管理。 指定用户很简单

B 应该是防火墙没配置好吧

subchen

赞同来自:

  1. 这个 su 的问题应该和 host 网络没啥关系吧。
  2. docker 官方不建议在容器里面用 su 命令,而是推荐用 gosu 代替

要回复问题请先登录注册