Che cos'è un container?
Un container è un ambiente isolato in cui è possibile eseguire un'applicazione.
Il container, l'applicazione e tutte le sue dipendenze vengono costruiti con parti delle risorse dell'host, ad esempio un sistema operativo kernel, una CPU e una memoria e quindi separate logicamente da altri contenitori e dall'host stesso.
Il diagramma seguente illustra in che modo un container rosso e giallo coesiste all'interno dello stesso host, utilizzando lo stesso sistema operativo hardware e kernel, ma sono contenuti all'interno del loro spazio singolo che consente loro di eseguire le applicazioni senza interferenze esterne.
Tenere presente che lo stesso hardware e lo stesso sistema operativo installato su tale hardware possono eseguire le proprie applicazioni e servizi anche indipendentemente da ciò che accade in ogni container.
Come creare ed eseguire container in Windows Server
I container possono essere eseguiti su varie piattaforme come i sistemi operativi Linux, Windows e Mac. Questo articolo/demo, tuttavia, è incentrato sull'esecuzione di container in Windows Server.
Esistono diversi modi per utilizzare i container Windows, tra cui Windows Admin Center (WAC) o Visual Studio. In questo articolo/demo viene utilizzato Docker.
Docker è un prodotto Platform-as-a-service che può essere utilizzato per combinare un'applicazione, tutte le relative dipendenze e le informazioni di configurazione in un unico pacchetto denominato container. Docker può quindi essere utilizzato per spedire, eseguire o eliminare tale container.
I passaggi successivi sono stati eseguiti su una nuova installazione di Windows Server 2022.
È possibile trovare un elenco dei prerequisiti per l'esecuzione di container su Windows Server nel seguente link esterno:
Per iniziare: Preparare Windows per i contenitori
I passaggi per la creazione e l'esecuzione di container su Windows Server tramite Docker possono essere riepilogati come segue:
1. Installare Docker
In PowerShell (eseguire come amministratore) immettere:
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Quando richiesto, immettere "
Y" per confermare l'installazione di NuGet.
Nella stessa sessione PowerShell, immettere:
Install-Package -Name docker -ProviderName DockerMsftProvider
Quando richiesto, immettere "
Y" per considerare attendibile il pacchetto.
Nella stessa sessione PowerShell, immettere:
Restart-Computer
2. Creare un file Docker e scaricare un'immagine del container
In una sessione PowerShell con privilegi elevati, passare alla directory root e creare una nuova cartella immettendo:
cd\
mkdir Containers
cd Containers
Nella stessa sessione PowerShell, creare il file Docker e modificarlo immettendo:
New-Item dockerfile
(si noti che non esiste alcuna estensione di file)
notepad dockerfile
Nell'editor di testo blocco note, immettere le 3 righe seguenti, quindi salvare e chiudere il file docker:
FROM mcr.microsoft.com/windows/servercore/iis
RUN powershell
COPY index.html C:/inetpub/wwwroot
Tornare a PowerShell, ancora nel contesto C:\Containers, creare un file HTML e modificarlo immettendo quanto segue:
New-Item index.html
notepad index.html
Nell'editor di testo blocco note, immettere le tre righe seguenti, quindi salvare e chiudere il file index.html:
<h1>Hello World!</h1>
<p>This is an example of a simple HTML page hosted on:</p>
<h2>container #1</h2>
3. Creare ed eseguire il container.
Tornare in PowerShell, sempre in C:\Containers, digitare:
docker build -t webserver.
Attendere il download dell'immagine dal Microsoft Container Registry, quindi digitare:
docker images
Ora dovrebbe essere visualizzata l'immagine scaricata.
Per eseguire un container utilizzando il template di immagine scaricato, tornare in powershell e digitare:
docker run --name container1 -d -p 80:80 webserver
Questa ultima riga crea ed esegue un container denominato container1 basato sull'immagine del server web che è stato preparato. Lo switch -d indica a Windows di eseguire il container in background e -p indica a Windows di inoltrare la porta 80 (HTTP) dall'host alla porta 80 sul container.
Per testare il container:
aprire un web browser sull'host e passare a localhost (è anche possibile utilizzare un computer diverso sullo stesso segmento di rete e individuare l'indirizzo IP host o il nome del computer del container).
È necessario stampare la pagina web HTML di esempio creata in precedenza:
in questo modo viene completata l'esercitazione su come eseguire i container Docker su Windows Server 2022.