从 Windows 容器内更改主机名

Sat*_*h M 5 docker dockerfile windows-container

我必须创建一个 Windows 容器映像,并在其中安装我们的应用程序。我们的应用程序在安装过程中在多个地方使用主机名。该docker build命令没有传递主机名的选项 - 因此我们目前陷入这样的境地:当我们运行创建了映像的容器时,我们的应用程序无法运行,因为它期望主机名是在运行期间生成的名称。图像创建时间,而不是我们传递给docker run命令的时间。

在安装我们的应用程序之前,我尝试使用此问题的建议更改容器内的主机名- 但它不起作用。

我想了解是否有办法可以从 Windows 容器内更改主机名。

jrb*_*228 0

以下内容对我有用 -
rename-computer.ps1:

$ComputerName = "New Name"
   
Remove-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -name "Hostname" 
Remove-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -name "NV Hostname" 

Set-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\Computername\Computername" -name "Computername" -value $ComputerName
Set-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\Computername\ActiveComputername" -name "Computername" -value $ComputerName
Set-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -name "Hostname" -value $ComputerName
Set-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -name "NV Hostname" -value  $ComputerName
Set-ItemProperty -path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -name "AltDefaultDomainName" -value $ComputerName
Set-ItemProperty -path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -name "DefaultDomainName" -value $ComputerName
Run Code Online (Sandbox Code Playgroud)

Dockerfile:

COPY "rename-computer.ps1" "C:/"  
RUN powershell -command "Set-ExecutionPolicy RemoteSigned" \
 && powershell -command "C:/rename-computer.ps1 ; hostname"  \
 && powershell -command "Set-ExecutionPolicy Restricted" \
 && <your installer runs here> 
Run Code Online (Sandbox Code Playgroud)

来源 -
https://serverfault.com/a/731832/845133
https://gist.github.com/timnew/2373475