在Docker中,有兩種用戶身份:root用戶和普通用戶。默認(rèn)情況下,Docker容器中的用戶身份是root用戶,因為Docker鏡像在構(gòu)建時一般都是以root用戶的身份運行,所以容器啟動后默認(rèn)也是以root用戶身份運行的。
然而,出于安全和限制某些容器操作的目的,我們還需要在容器中創(chuàng)建普通用戶。這些普通用戶可以被賦予不同的權(quán)限,以控制容器中的操作。
# 創(chuàng)建一個名為'apps'的普通用戶,并設(shè)置其密碼為'password' RUN useradd -m -s /bin/bash apps RUN echo 'apps:password' | chpasswd
在上述代碼中,我們使用了useradd命令創(chuàng)建了一個名為'apps'的普通用戶,-m選項表示自動為該用戶創(chuàng)建一個home目錄,-s /bin/bash選項表示該用戶默認(rèn)的shell是bash。接下來,使用echo命令為該用戶設(shè)置了一個密碼。
在啟動容器時,我們可以使用-d選項指定以創(chuàng)建的用戶身份運行。
# 以名為'apps'的用戶運行容器 docker run -d --name my-container -u apps my-image
在上述命令中,我們使用-u選項指定了容器的運行用戶為名為'apps'的用戶。
通過在容器中創(chuàng)建普通用戶,我們能夠更好的管理容器操作和提高容器的安全性。