Com instal·lar i utilitzar Docker a Ubuntu 20.04


Docker és la plataforma de codi obert més popular per a desenvolupadors i administradors de sistemes per crear, executar i compartir aplicacions amb contenidors. La contenerització (l'ús de contenidors per desplegar aplicacions) s'està popularitzant perquè els contenidors són flexibles, lleugers, portàtils, poc acoblats, escalables i més segurs.

Aquest article és un bon punt de partida perquè els principiants aprenguin a instal·lar i utilitzar Docker en un sistema Linux Ubuntu 20.04 amb algunes ordres bàsiques. Per a aquesta guia, instal·larem Docker Community Edition (CE).

  • Una instal·lació del servidor Ubuntu 20.04.
  • Un usuari amb privilegis per executar l'ordre sudo.

Instal·lació de Docker a Ubuntu 20.04

Per utilitzar la darrera versió de Docker, l'instal·larem des del dipòsit oficial de Docker. Per tant, comenceu afegint la clau GPG per al dipòsit oficial de Docker al vostre sistema, després afegiu la configuració del dipòsit a la font APT amb les ordres següents.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

Ara actualitzeu la memòria cau del paquet APT per incloure els nous paquets Docker al sistema mitjançant l'ordre següent.

$ sudo apt update

A continuació, instal·leu el paquet Docker tal com es mostra.

$ sudo apt install docker-ce

Durant el procés d'instal·lació del paquet Docker, l'instal·lador del paquet activa el systemd (gestor del sistema i de serveis) per iniciar i habilitar automàticament el servei Docker. Utilitzeu les ordres següents per confirmar que el servei Docker està actiu i està habilitat per iniciar-se automàticament a l'inici del sistema. A més, comproveu el seu estat:

$ sudo systemctl is-active docker
$ sudo systemctl is-enabled docker
$ sudo systemctl status docker

Hi ha diverses altres ordres systemctl per gestionar i controlar el servei docker que inclou el següent:

$ sudo systemctl stop docker			#stop the docker service
$ sudo systemctl start docker			#start the docker service
$ sudo systemctl  restart docker		#restart the docker service

Per comprovar la versió de Docker CE instal·lada al vostre sistema, executeu l'ordre següent:

$ docker version

Podeu veure les ordres d'ús de docker disponibles executant l'ordre docker sense cap opció ni argument:

 
$ docker

Gestioneu Docker com a usuari no root amb sudo Command

Per defecte, el dimoni Docker s'uneix a un sòcol UNIX (en lloc d'un port TCP) que és propietat de l'arrel de l'usuari. Per tant, el dimoni Docker sempre s'executa com a usuari root i per executar l'ordre docker, heu d'utilitzar sudo.

A més, durant la instal·lació del paquet Docker, es crea un grup anomenat docker. Quan s'inicia el dimoni Docker, crea un sòcol UNIX accessible pels membres del grup docker (que atorga privilegis equivalents a l'usuari root).

Per executar l'ordre docker sense sudo, afegiu tots els usuaris no root que se suposa que han d'accedir a docker, al grup docker de la manera següent. En aquest exemple, l'ordre afegeix l'usuari connectat actualment ($USER) o el nom d'usuari al grup docker:

$ sudo usermod -aG docker $USER
OR
$ sudo usermod -aG docker username

Per activar els canvis als grups, executeu l'ordre següent:

$ newgrp docker 
$ groups

A continuació, comproveu que podeu executar ordres de Docker sense sudo. L'ordre següent baixa una imatge de prova i l'executa en un contenidor. Un cop el contenidor s'executa, imprimeix un missatge informatiu i surt. Aquesta també és una altra manera de comprovar si la vostra instal·lació funciona bé.

$ docker run hello-world

Treballar amb Docker Images

Una imatge Docker és un fitxer de plantilla de només lectura amb instruccions per crear un contenidor Docker. Podeu crear les vostres imatges personalitzades o només podeu utilitzar les creades per altres i publicades al Docker Hub, la biblioteca i comunitat més gran del món per a imatges de contenidors.

Podeu cercar una imatge centos al Docker Hub amb l'ordre següent:

$ docker search centos 

Per descarregar una imatge localment, utilitzeu l'ordre pull. Aquest exemple mostra com descarregar la imatge oficial de centos.

$ docker pull centos

Un cop finalitzada la descàrrega, podeu llistar les imatges disponibles al vostre sistema local.

$ docker images

Si ja no necessiteu una imatge, podeu eliminar-la del vostre sistema.

$ docker rmi centos
OR
$ docker rmi centos:latest    #where latest is the tag

Execució i gestió de contenidors Docker

Un contenidor Docker és un procés que s'executa de manera nativa a Linux i comparteix el nucli de la màquina amfitrió amb altres contenidors. Pel que fa a una imatge Docker, un contenidor és només una imatge en funcionament.

Per iniciar un contenidor basat en la vostra nova imatge centos, executeu l'ordre següent on \centos és el nom de la imatge local i \cat /etc/centos-release és l'ordre per executar-se al contenidor:

$ docker run centos cat /etc/centos-release

Un contenidor executa un procés discret que està aïllat perquè té el seu propi: sistema de fitxers, xarxa i arbre de processos aïllats separats de l'amfitrió. Tingueu en compte que podeu manipular un contenidor mitjançant l'ID, el prefix d'ID o el nom del contenidor, tal com es mostra a continuació. El procés del contenidor anterior surt després que s'executi l'ordre.

Per llistar els contenidors Docker, utilitzeu l'ordre docker ps de la manera següent. Utilitzeu la marca -l per mostrar l'últim contenidor creat en tots els estats:

$ docker ps
OR
$ docker ps -l

Per mostrar tots els contenidors, inclosos els que han sortit, utilitzeu la marca -a.

$ docker ps -a

També podeu iniciar un contenidor utilitzant el seu identificador de contenidor després d'haver sortit. Per exemple, a l'ordre anterior, el nostre identificador de contenidor és 94c35e616b91. Podem iniciar el contenidor tal com es mostra (tingueu en compte que executarà l'ordre i sortirà):

$ docker start 94c35e616b91

Per aturar un contenidor en execució utilitzant el seu ID, utilitzeu l'ordre stop tal com es mostra.

$ docker stop 94c35e616b91

Docker també us permet assignar un nom a un contenidor mitjançant l'opció --name quan l'executeu.

$ docker run --name my_test centos cat /etc/centos-release
$ docker ps -l

Ara podeu utilitzar el nom del contenidor per gestionar (iniciar, aturar, estadístiques, eliminar, etc.) el contenidor:

$ docker stop my_test
$ docker start my_test
$ docker stats my_test
$ docker rm my_test

Execució d'una sessió interactiva en un contenidor Docker

Per iniciar una sessió d'intèrpret d'ordres interactiva en un contenidor per permetre executar ordres dins del contenidor, executeu l'ordre següent:

$ docker run --name my_test -it centos

A l'ordre anterior, els interruptors -it diuen a Docker que assigni un pseudo-TTY connectat a l'stdin del contenidor, creant així un shell bash interactiu al contenidor.

Podeu sortir emetent l'ordre de sortida tal com es mostra.

# exit

Si prefereixes no sortir, pots desenganxar-te d'un contenidor i deixar-lo en marxa. Per fer-ho, utilitzeu la seqüència de tecles CTRL+p i després CTRL+q.

Podeu tornar a connectar-vos al contenidor mitjançant l'ordre attach que adjuntarà els fluxos d'entrada, sortida i errors estàndard locals al contenidor en execució:

$ docker attach my_test

A més, podeu iniciar un contenidor en mode desconnectat utilitzant la marca -d. A continuació, utilitzeu l'ordre attach per adjuntar els fluxos d'entrada, sortida i error estàndard del vostre terminal al contenidor en execució:

$ docker run --name my_test -d -it centos
$ docker attach my_test

Finalment, però no menys important, podeu aturar un contenidor en execució des de la sessió de l'amfitrió executant l'ordre següent:

$ docker kill my_test

Això és tot! En aquesta guia, hem tractat com instal·lar i utilitzar Docker CE a Ubuntu 20.04 Linux. Si teniu cap pregunta, utilitzeu el formulari de comentaris següent per preguntar-nos.