首页 > 解决方案 > Docker 用户作为 Azure 应用服务的 root

问题描述

Docker 通常应该作为生产应用程序的非 root 用户运行。我的理解是,这是因为在容器中拥有 root 访问权限也为您提供了服务器上的 root 访问权限。

通过 Azure 的应用服务进行部署时是否同样适用?我不明白在服务器上拥有 root 用户与容器服务之间的区别。

标签: dockerdockerfileazure-web-app-service

解决方案


应用服务使用端口 2222 将 SSH 连接到应用的容器中,但这并不意味着端口 2222 在 Internet 上公开。无论您如何在应用程序中使用 SSH,所有 SSH 流量都通过端口 443 上的端点处理。

- 附带说明,如果您不使用 SSH,则不必担心关闭端口 2222,因为它不会暴露在 Internet 上。

root 密码必须是 Docker!因为应用服务使用它来让您访问与容器的 SSH 会话。此配置不允许外部连接到容器。

(容器的 2222 端口只能在私有虚拟网络的桥接网络内访问,互联网上的攻击者无法访问。)

为了访问 SSH 端口,必须首先通过 HTTPS 登录 Kudu 容器/它不会暴露在 Internet 上。

应用服务中的 Linux 应用在自己的容器中运行。不允许访问主机操作系统,您确实拥有对容器的 root 访问权限。同样,对于在 Windows 容器中运行的应用程序,您对容器具有管理权限,但无法访问主机操作系统。

有关更多详细信息,请参阅这些文档: tutorial-custom-docker-imageconfigure-custom-container


推荐阅读