Docker 用户作为 Azure 应用服务的 root
Docker user as root for Azure App Service
Docker 通常应该是 运行 作为生产应用程序的非根用户。我的理解是,这是因为在容器中拥有 root 访问权限也为您提供了在服务器上的 root 访问权限。
通过 Azure 的应用服务部署时是否同样适用?我不明白在服务器上拥有根用户与容器服务之间的区别。
应用服务使用端口 2222 通过 SSH 连接到您的应用容器,但这并不意味着端口 2222 暴露在互联网上。无论您如何在应用程序中使用 SSH,所有 SSH 流量都通过端口 443 上的端点处理。
- 附带说明一下,如果您不使用 SSH,则不必担心关闭端口 2222,因为它不会暴露在 Internet 上。
root 密码必须完全 Docker!因为应用服务使用它来让您访问与容器的 SSH 会话。此配置不允许到容器的外部连接。
(容器的2222端口只能在私有虚拟网络的桥接网络内访问,互联网上的攻击者无法访问。)
为了访问 SSH 端口,必须首先通过 HTTPS/it 未暴露在 Internet 上的方式登录到 Kudu 容器。
Linux 应用服务中的应用 运行 在它们自己的容器中。 不允许访问主机操作系统,您有容器的 root 访问权限。同样,对于 Windows 容器中 运行ning 的应用程序,您拥有容器的管理权限,但没有主机操作系统的权限。
有关详细信息,请参阅这些文档:
tutorial-custom-docker-image and configure-custom-container
Docker 通常应该是 运行 作为生产应用程序的非根用户。我的理解是,这是因为在容器中拥有 root 访问权限也为您提供了在服务器上的 root 访问权限。
通过 Azure 的应用服务部署时是否同样适用?我不明白在服务器上拥有根用户与容器服务之间的区别。
应用服务使用端口 2222 通过 SSH 连接到您的应用容器,但这并不意味着端口 2222 暴露在互联网上。无论您如何在应用程序中使用 SSH,所有 SSH 流量都通过端口 443 上的端点处理。
- 附带说明一下,如果您不使用 SSH,则不必担心关闭端口 2222,因为它不会暴露在 Internet 上。
root 密码必须完全 Docker!因为应用服务使用它来让您访问与容器的 SSH 会话。此配置不允许到容器的外部连接。
(容器的2222端口只能在私有虚拟网络的桥接网络内访问,互联网上的攻击者无法访问。)
为了访问 SSH 端口,必须首先通过 HTTPS/it 未暴露在 Internet 上的方式登录到 Kudu 容器。
Linux 应用服务中的应用 运行 在它们自己的容器中。 不允许访问主机操作系统,您有容器的 root 访问权限。同样,对于 Windows 容器中 运行ning 的应用程序,您拥有容器的管理权限,但没有主机操作系统的权限。
有关详细信息,请参阅这些文档: tutorial-custom-docker-image and configure-custom-container