默认情况下,Docker容器以Root用户身份运行。如果您在Docker Containers中大规模部署应用程序,则将构成极大的安全威胁。您可以使用USER指令在Docker容器内更改或切换到其他用户。为此,您首先需要在容器内创建一个用户和一个组。
在本文中,我们将使用USER指令将Container中的用户从Root切换到我们将要创建的用户。为此,请按照以下步骤操作:
第1步:创建Dockerfile
您可以在Dockerfile中指定创建新用户和组以及切换用户的说明。在此示例中,我们将简单地创建一个Ubuntu Image并将bash与Root用户以外的其他用户一起使用。
FROM ubuntu:latest
RUN apt-get -y update
RUN groupadd -r user && useradd -r -g user user
USER user
在上面的dockerfile中,我们提取了基础映像Ubuntu,并对其进行了更新。我们创建了一个名为user的新组,并在该组内创建了一个具有相同名称的新用户。然后,使用USER选项切换用户。
第2步:构建Docker映像
创建Dockerfile之后,我们现在可以使用Build命令创建Docker映像。
sudo docker build -t user-demo .
步骤3:运行Docker容器
使用Docker Run命令运行容器。
sudo docker run -it user-demo bash
步骤4:验证输出
现在,您可以使用id命令检查默认用户和组是否已更改为我们在Dockerfile中创建的用户。
id
总而言之,在本文中,我们讨论了如何在Dockerfile中使用USER指令将Docker容器的默认用户从Root切换到我们可以使用useradd和grouadd命令创建的另一个用户。