Introducció
En aquest tema, explorarem com utilitzar PowerShell per gestionar i automatitzar tasques amb Docker. Docker és una plataforma que permet crear, desplegar i executar aplicacions en contenidors. PowerShell, amb els seus cmdlets i scripts, pot ser una eina poderosa per interactuar amb Docker i simplificar la gestió de contenidors.
Objectius
- Entendre els conceptes bàsics de Docker.
- Aprendre a instal·lar i configurar Docker.
- Utilitzar cmdlets de PowerShell per gestionar contenidors Docker.
- Automatitzar tasques comunes de Docker amb PowerShell.
Conceptes Bàsics de Docker
Abans de començar a treballar amb Docker i PowerShell, és important comprendre alguns conceptes bàsics de Docker:
- Imatge: Una imatge és una plantilla llegible només que conté un conjunt d'instruccions per crear un contenidor.
- Contenidor: Un contenidor és una instància d'una imatge que es pot executar.
- Dockerfile: Un fitxer de text que conté les instruccions per crear una imatge Docker.
- Registre: Un servei per emmagatzemar i distribuir imatges Docker.
Instal·lació i Configuració de Docker
Instal·lació de Docker
Per instal·lar Docker, segueix les instruccions de la documentació oficial de Docker per al teu sistema operatiu:
Instal·lació del Mòdul Docker per a PowerShell
Un cop Docker estigui instal·lat, necessitarem el mòdul Docker
per a PowerShell. Per instal·lar-lo, obre una sessió de PowerShell amb privilegis d'administrador i executa:
Cmdlets de PowerShell per a Docker
Un cop instal·lat el mòdul Docker, podem utilitzar diversos cmdlets per gestionar contenidors. A continuació, es mostren alguns dels cmdlets més comuns:
Cmdlet | Descripció |
---|---|
Get-Container |
Llista tots els contenidors |
Start-Container |
Inicia un contenidor |
Stop-Container |
Atura un contenidor |
Remove-Container |
Elimina un contenidor |
Get-ContainerImage |
Llista totes les imatges |
Pull-ContainerImage |
Descarrega una imatge des d'un registre |
Remove-ContainerImage |
Elimina una imatge |
New-Container |
Crea un nou contenidor |
Exemples Pràctics
Llistar Contenidors
Per llistar tots els contenidors en execució, utilitza el cmdlet Get-Container
:
Descarregar una Imatge
Per descarregar una imatge des del Docker Hub, utilitza el cmdlet Pull-ContainerImage
:
Crear i Iniciar un Contenidor
Per crear i iniciar un contenidor basat en la imatge nginx
, utilitza els cmdlets New-Container
i Start-Container
:
# Crear el contenidor $container = New-Container -ImageId "nginx" -Name "mynginx" # Iniciar el contenidor Start-Container -ContainerId $container.Id
Aturar i Eliminar un Contenidor
Per aturar i eliminar un contenidor, utilitza els cmdlets Stop-Container
i Remove-Container
:
# Aturar el contenidor Stop-Container -ContainerId $container.Id # Eliminar el contenidor Remove-Container -ContainerId $container.Id
Automatització de Tasques amb PowerShell
Exemple d'Automatització
Suposem que volem automatitzar la creació d'un contenidor nginx
, executar-lo i després eliminar-lo. Podem crear un script de PowerShell per fer-ho:
# Descarregar la imatge nginx Pull-ContainerImage -Repository "nginx" # Crear el contenidor $container = New-Container -ImageId "nginx" -Name "mynginx" # Iniciar el contenidor Start-Container -ContainerId $container.Id # Esperar 10 segons Start-Sleep -Seconds 10 # Aturar el contenidor Stop-Container -ContainerId $container.Id # Eliminar el contenidor Remove-Container -ContainerId $container.Id
Exercicis Pràctics
Exercici 1: Crear i Gestionar un Contenidor
- Descarrega la imatge
hello-world
des del Docker Hub. - Crea un contenidor basat en la imatge
hello-world
. - Inicia el contenidor.
- Llista tots els contenidors en execució.
- Atura el contenidor.
- Elimina el contenidor.
Solució
# Descarregar la imatge hello-world Pull-ContainerImage -Repository "hello-world" # Crear el contenidor $container = New-Container -ImageId "hello-world" -Name "myhelloworld" # Iniciar el contenidor Start-Container -ContainerId $container.Id # Llistar tots els contenidors en execució Get-Container # Aturar el contenidor Stop-Container -ContainerId $container.Id # Eliminar el contenidor Remove-Container -ContainerId $container.Id
Resum
En aquest tema, hem après a utilitzar PowerShell per gestionar i automatitzar tasques amb Docker. Hem vist com instal·lar i configurar Docker, utilitzar cmdlets de PowerShell per gestionar contenidors i automatitzar tasques comunes. Amb aquests coneixements, pots començar a integrar Docker en els teus scripts de PowerShell per simplificar la gestió de contenidors.
Curs de PowerShell
Mòdul 1: Introducció a PowerShell
- Què és PowerShell?
- Instal·lació i Configuració de PowerShell
- Consola i ISE de PowerShell
- Comandes i Sintaxi Bàsiques
- Sistema d'Ajuda en PowerShell
Mòdul 2: Scripting Bàsic
- Variables i Tipus de Dades
- Operadors en PowerShell
- Sentències Condicionals
- Bucles en PowerShell
- Funcions i Scripts
Mòdul 3: Treballant amb Objectes
- Comprensió dels Objectes
- Propietats i Mètodes dels Objectes
- Pipelines i Manipulació d'Objectes
- Filtratge i Selecció d'Objectes
- Ordenació i Agrupació d'Objectes
Mòdul 4: Tècniques Avançades de Scripting
- Gestió d'Errors
- Depuració de Scripts
- Expressions Regulars
- Treballant amb Fitxers i Directoris
- Ús de Mòduls i Snap-ins
Mòdul 5: Automatització i Programació de Tasques
- Introducció a l'Automatització
- Creació de Tasques Programades
- Ús de PowerShell per a l'Administració del Sistema
- Automatització de Tasques d'Active Directory
- Automatització de Tasques de Xarxa
Mòdul 6: Remotització amb PowerShell
- Introducció a la Remotització
- Configuració de la Remotització
- Ús d'Invoke-Command
- Gestió de Sessions
- Consideracions de Seguretat
Mòdul 7: Funcions Avançades de PowerShell
- Perfils de PowerShell
- Personalització de l'Entorn de PowerShell
- Creació i Ús de Classes
- Treballant amb XML i JSON
- Ús de PowerShell amb REST APIs
Mòdul 8: PowerShell i DevOps
- Introducció a DevOps
- Ús de PowerShell amb Pipelines CI/CD
- Infraestructura com a Codi (IaC)
- Gestió de Recursos al Núvol amb PowerShell
- PowerShell i Docker