尝试在 ubuntu 18.04 镜像上打开一个端口,但没有成功,运行RUN ufw allow 8080
返回
/bin/sh: 1: ufw: 未找到
关于如何打开此端口或运行 ufw 命令,您有什么想法吗?
答案1
在容器内部,所有端口默认对同一 docker 网络上的其他容器开放。无需运行该ufw
命令,并且该命令不会在镜像中提供,因为默认情况下不授予更改网络的权限(未授予 NET_ADMIN 功能)。
答案2
取自/bin/sh: 1: gvm: 未找到,大致意思是:
您的 shell 是 /bin/sh,但 ufw 需要 /bin/bash,可能是因为它将其初始化放在 中
~/.bashrc
。
现在接受的答案说不需要。如果你仍然坚持跑步ufw
,请使用
RUN ["/bin/bash", "-c", "ufw allow 8080"]
或者更好的方法是将您想要执行的命令放在单个 bash 脚本中,然后将其添加到图像中。
#!/bin/bash
set -e
ufw allow 8080