簡體   English   中英

DOCKER 如何使用 Windows 映像在 docker run 上設置密碼和用戶名?

[英]DOCKER How do I set an password and username on docker run with an windows image?

我想要的是

我想在啟動容器時設置用戶名和密碼,例如:

docker run --password=mysupersafepw --user=myusername mcr.microsoft.com/windows/servercore

我有什么

目前,用戶和密碼已硬編碼在我的 dockerfile 中:

RUN net USER /ADD ssh Passw0rd  && net localgroup Administrators ssh /ADD

我試過的

我已經聽說過環境變量,但這(在 dockerfile 中)對我不起作用:

ENV user=ssh
ENV password=Passw0rd
[...]    
RUN net USER /ADD ${user} ${password}  && net localgroup Administrators ${user} /ADD

docker build 結果:

Step 10/14 : RUN net USER /ADD ${user} ${password}  && net localgroup Administrators ${user} /ADD
 ---> Running in 2552caf74946
The password does not meet the password policy requirements. Check the minimum password length, password complexity and password history requirements.

More help is available by typing NET HELPMSG 2245.

您走在正確的軌道上,並且缺少一些參數。 您在 docker 文件中定義EVN user是正確的。 為了在運行時設置user的值,您應該將其指定為docker run -e user=ssh以便在您的情況下可以使用以下方法。

docker run -e password=mysupersafepw -e user=myusername mcr.microsoft.com/windows/servercore

假設您已在 dockerfile 中正確設置它們。

嗨,我遇到了同樣的問題,通過運行為我執行的 powershell 腳本解決了它

docker run -e password=yourpassword 其余選項然后讓腳本更改您在命令行中提供的密碼。

Windows 映像的默認 shell 是cmd.exe 因此ARGENV應該像在任何 windows cmd: %myarg%中一樣被取消引用。

所以在你的情況下,取消引用應該像這樣: RUN net USER /ADD %user% %password% && RUN net localgroup Administrators %user% /ADD

此外, ENV語句應放在FROM語句之后,以使容器內的環境變量可用。

也可以使用以下命令將 shell 更改為 powershell: SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; $verbosePreference='Continue';"]

在這種情況下,取消引用將具有以下語法: $env:myenv

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM