Docker

De Lordwektabyte Wiki
Salta a la navegació Salta a la cerca

Objectius

  • Instal·lar l'entorn Docker (seguir indicacions als docs de Docker).
  • Comprovar que funciona (docker run...).
  • Crear un compte al DockerHub i iniciar sessió en entorn de comandes.
  • Busqueu al DockerHub quines imatges oficials de Debian hi ha disponibles.
  • Crear el primer contenidor Docker amb Ubuntu (a partir de la imatge oficial), en mode interactiu.
  • Desconectar-se del contenidor i tornar-s'hi a connectar.
  • Crear un Dockerfile mínim per a generar un contenidor partint d'una imatge Debian Wheezy.

Procediment

Instal·lació de l'entorn

Tenint en compte que estic sobre Fedora 29, instal·larem l'entorn de Docker de la següent manera (com a root):

dnf install docker-ce

Després d'instal·lar, engegarem i habilitarem el servei de Docker perquè s'engegui automàticament on boot

systemctl start docker
systemctl enable docker

Pot ser interessant executar comandes de Docker sense necessitat de permisos de superusuari root; pel que podem afegir el nostre usuari al grup docker del Linux. Assumint que la instal·lació ha creat un nou grup d'Unix amb el nom docker, afegiré el meu usuari en aquest grup.

usermod -aG docker guillem
Nota: per tal de gaudir dels privilegis d'aquest nou grup, l'usuari haurà de tancar sessió i tornar a autenticar-se al sistema per tal que es reavaluïn els seus grups. Fins llavors no serà possible arrencar contenidors, per exemple, sense fer login amb root. Així doncs, podem tancar sessió al sistema i tornar a entrar abans de seguir amb els següents passos si volem fer-ho amb el nostre usuari no-privilegiat.

Prova inicial

Per a comprovar el funcionament correcte podem engegar un contenidor simple que ens mostrarà un "Hello World" per pantalla

$ docker run hello-world


Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete 
Digest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

En tots els casos, si no tenim localment la còpia de la imatge del contenidor que volem descarregar, Docker la cercarà als repositoris públics (Docker Hub) i la copiarà al sistema per si es necessita més endavant. Després d'executar la comanda veiem que, segons sembla, tot és correcte i ja tenim a punt l'entorn per a virtualitzar contenidors.

Docker Hub

Des de https://hub.docker.com/ ens podem registrar i tenir el nostre repositori públic/privat d'imatges de Docker que podem accedir des de qualsevol lloc (sempre i quan tinguem accés a Internet). Jo mateix m'hi he registrat i he creat un repo públic per als exercicis que fem a ASIX:

M11UF4EX2-1.png


Després de registrar-nos podem iniciar sessió des del mateix terminal de Fedora per a poder pujar les nostres imatges de contenidors al repositori.

$ docker login -u lordwektabyte


Password: 
WARNING! Your password will be stored unencrypted in /home/guillem/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded