@@ -109,6 +109,13 @@ another one for Windows.
109109 `systemd-nspawn `_. Provisioning of additional software is performed using the
110110 native package manager of the corresponding Linux distribution.
111111
112+ - For running Windows operating systems containers, Racker uses `Vagrant `_,
113+ `Docker `_, and `Windows Docker Machine `_. The virtual machine base image is
114+ acquired from `Vagrant Cloud `_, container images are acquired from the
115+ `Microsoft Container Registry `_. For provisioning additional software, the
116+ `Chocolatey `_ package manager is used. All of cmd, PowerShell and Bash are
117+ pre-installed on the container images.
118+
112119
113120Operating system coverage
114121-------------------------
@@ -132,6 +139,11 @@ Linux
132139- SUSE SLES 15 and BCI:latest
133140- Ubuntu LTS 20 and 22 (focal, jammy)
134141
142+ Windows
143+ .......
144+ - Windows Server Core LTSC 2016, 2019, and 2022
145+ - Windows Nano Server 1809 and LTSC 2022
146+
135147
136148Prior art
137149---------
@@ -212,7 +224,7 @@ Racker
212224The ``racker `` program aims to resemble the semantics of Docker by providing a
213225command line interface compatible with the ``docker `` command.
214226
215- ::
227+ Linux examples ::
216228
217229 # Invoke the vanilla Docker `hello-world` image.
218230 # FIXME: Does not work yet.
@@ -244,6 +256,42 @@ command line interface compatible with the ``docker`` command.
244256 time echo "hello world" | racker run -it --rm fedora:37 cat /dev/stdin > hello
245257 cat hello
246258
259+ Windows examples::
260+
261+ # Windows OS images, mostly LTSC (Long-Term Servicing Channel).
262+ # Please note the download sizes.
263+ # Nanoserver: 250 MB, Servercore: 6 GB, Servercore with Java: 7 GB, Windows: 15 GB
264+
265+ # Launch an interactive command prompt (cmd, PowerShell or Bash).
266+ racker --verbose run -it --rm --platform=windows/amd64 mcr.microsoft.com/windows/servercore:ltsc2019-amd64 powershell
267+
268+ # Launch a single command.
269+ racker --verbose run --rm --platform=windows/amd64 mcr.microsoft.com/windows/servercore:ltsc2019-amd64 -- 'powershell -Command {echo "Hello, world."}'
270+ racker --verbose run --rm --platform=windows/amd64 mcr.microsoft.com/windows/servercore:ltsc2019-amd64 'sh -c "echo Hello, world."'
271+
272+ # Inquire system information.
273+ racker run --rm --platform=windows/amd64 mcr.microsoft.com/windows/servercore:ltsc2019-amd64 wmic os get caption
274+ racker run --rm --platform=windows/amd64 mcr.microsoft.com/windows/servercore:ltsc2019-amd64 'powershell -Command Get-ComputerInfo'
275+
276+ # Use stdin and stdout, with time keeping.
277+ time racker --verbose run --rm --platform=windows/amd64 mcr.microsoft.com/windows/nanoserver:1809-amd64 cmd /C echo "Hello, world." > hello
278+ cat hello
279+
280+ # Invoke a Java command prompt (JShell) with different Java versions.
281+ racker run -it --rm --platform=windows/amd64 openjdk:18-windowsservercore-1809 jshell
282+ racker run -it --rm --platform=windows/amd64 eclipse-temurin:18-jdk jshell
283+ System.out.println("OS: " + System.getProperty("os.name") + ", version " + System.getProperty("os.version"))
284+ System.out.println("Java: " + System.getProperty("java.vendor") + ", version " + System.getProperty("java.version"))
285+ /exit
286+
287+ # Windows Nano Server.
288+ racker --verbose run -it --rm --platform=windows/amd64 mcr.microsoft.com/windows/nanoserver:1809-amd64 cmd
289+ racker --verbose run --rm --platform=windows/amd64 mcr.microsoft.com/windows/nanoserver:1809-amd64 cmd /C echo Hello, world.
290+
291+ # Full Windows.
292+ racker --verbose run -it --rm --platform=windows/amd64 mcr.microsoft.com/windows:1809-amd64 cmd
293+
294+
247295
248296Postroj
249297=======
0 commit comments