Instalar y usar Docker en ubuntu20

Docker es una aplicación que simplifica el proceso de gestión de procesos de aplicaciones en contenedores. Los contenedores le permiten ejecutar aplicaciones en procesos aislados de recursos. Son similares a las máquinas virtuales, pero los contenedores son más fáciles de trasplantar, consumen menos recursos y dependen más de los recursos del sistema host.

En este artículo, Docker Community Edition (CE) se instalará y utilizará en Ubuntu 20.04. Simultáneamente, simplemente use el contenedor y la imagen, y finalmente envíe la imagen al repositorio de Docker.

Este artículo asume que tiene una cuenta de usuario con privilegios de grupo sudo, pero no root.

Si no es así, cree uno debajo de la raíz. 

adduser sammy

usermod -aG sudo sammy

Esto crea un usuario con privilegios de sudo.

1: instalar Docker

Primero actualice todos los paquetes de instalación:

actualización de sudo apt

Luego instale algunos paquetes de requisitos previos para usar el paquete a través de HTTPS:
sudo apt install apt-transport-https ca -ificates curl software-properties-common

Agregue la clave GPG del repositorio oficial de Docker al sistema:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add-

Agregue el repositorio de Docker a la fuente APT:
sudo add-apt-repository "deb [arch = amd64] https://download.docker.com/linux/ubuntu focal estable"

Actualice la base de datos del paquete con el paquete Docker en el almacén recién agregado:
sudo apt update

Asegúrese de que desea instalar desde el repositorio de Docker en lugar del repositorio predeterminado de Ubuntu:
apt-cache policy docker-ce

Finalmente, Docker está realmente instalado

sudo apt install docker-ce

Docker ahora está instalado, el demonio se inicia y el proceso se iniciará la próxima vez que se habilite el sistema. Compruebe si se está ejecutando:

sudo systemctl estado de la ventana acoplable

puede ser visto:

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-02-20 18:05:52 UTC; 5min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 11985 (dockerd)
      Tasks: 8
     Memory: 39.4M
     CGroup: /system.slice/docker.service
             └─11985 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
...


 

2: ejecutar comandos de Docker sin sudo

De forma predeterminada, solo puede ejecutar comandos de la ventana acoplable como usuario raíz o usuarios en el grupo de la ventana acoplable, y el grupo de la ventana acoplable se crea automáticamente durante el proceso de instalación de Docker. Para no usar el prefijo sudo, debe unirse al grupo de doccker:

sudo usermod -aG docker $ {USER}
necesita cerrar sesión y luego iniciar sesión en la información de este grupo para que surta efecto. O esto también está bien. Me desconecté y luego me conecté. No probé los siguientes métodos.
su - $ {USER}

El comando para verificar en qué grupo estás es:
id -nG

Se debe mostrar la siguiente información

sammy sudo docker

Si agrega a alguien al grupo de la ventana acoplable, use el siguiente comando, donde nombre de usuario es el nombre de usuario de otra persona
sudo usermod -aG nombre de usuario de la ventana acoplable

El comando de la ventana acoplable que se usa más adelante en este artículo asume que está en el grupo de la ventana acoplable; de ​​lo contrario, sudo
 

3: use los comandos de Docker

El uso de Docker implica pasarle una serie de opciones y comandos, seguidos de parámetros. La gramática toma la siguiente forma:

docker [opción] [comando] [argumentos]

Para ver todos los subcomandos disponibles, escriba:
docker

Para ver las opciones disponibles para un comando específico, escriba:
docker docker-subcommand --help

El siguiente comando para ver la información del sistema de la
ventana acoplable : información de la  ventana acoplable

4 : Imagen de Docker

Los contenedores de Docker se crean a partir de imágenes de Docker. De forma predeterminada, Docker extrae estas imágenes de Docker Hub, que es un registro de Docker administrado por Docker, la empresa detrás del proyecto Docker. Cualquiera puede alojar sus imágenes de Docker en Docker Hub, por lo que la mayoría de las aplicaciones y distribuciones de Linux que necesita alojarán las imágenes.

Probemos un simple hola mundo:

Docker ejecutar hola-mundo

Debería mostrarse información similar a la siguiente:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1
Status: Downloaded newer image for hello-world:latest

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

Inicialmente, Docker no pudo encontrar la imagen de hello-world localmente, por lo que descargó la imagen del repositorio predeterminado Docker Hub. Después de descargar la imagen, Docker creará un contenedor basado en la imagen, ejecutará la aplicación en el contenedor y mostrará un mensaje.

Puede usar el comando docker y el subcomando de búsqueda para buscar imágenes disponibles en Docker Hub. Por ejemplo, para buscar imágenes de Ubuntu, ingrese:

docker buscar ubuntu

En la columna OFICIAL, OK representa una imagen construida y respaldada por la empresa detrás del proyecto. Después de determinar la imagen que desea usar, puede usar el subcomando pull para descargarla a su computadora.

Ejecute el siguiente comando para descargar la imagen oficial de ubuntu al local:

docker extraer ubuntu

Después de descargar la imagen, puede usar la imagen descargada con el subcomando ejecutar para ejecutar el contenedor. Como se ve en el ejemplo de hello-world, si la imagen no se descarga al ejecutar la ventana acoplable con el subcomando ejecutar, el cliente de Docker primero descargará la imagen y luego usará la imagen para ejecutar el contenedor.

Para ver la imagen que se descargó en la computadora, escriba:

imágenes de docker

La información de la pantalla es la siguiente:

REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
ubuntu        latest    f63181f19b2f   4 weeks ago     72.9MB
hello-world   latest    bf756fb1ae65   13 months ago   13.3kB

5: contenedor Docker

El contenedor hello-world que se ejecuta en el paso anterior es un ejemplo de un contenedor que se ejecuta y sale después de emitir un mensaje de prueba. Los contenedores pueden ser mucho más útiles que esto y pueden ser interactivos. Después de todo, son similares a las máquinas virtuales, pero son más amigables con los recursos.

Por ejemplo, ejecutemos un contenedor usando la última imagen de Ubuntu. La combinación de los conmutadores -i y -t le permite acceder de forma interactiva al shell:

Docker ejecutar -it ubuntu

Luego está la siguiente pantalla, e ingrese el ubuntu del contenedor 

leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker run -it ubuntu

root@bd612e776819:/#

Primero actualice la lista de paquetes:

root@bd612e776819:/# apt update
Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [109 kB]

Por ejemplo, instale nodejs

root@bd612e776819:/# apt install nodejs
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:

 Luego, verifique la versión del nodo:

root@bd612e776819:/# node -v
v10.19.0

Todas las operaciones son solo para este contenedor.

Para salir, escriba:

Salida

root@bd612e776819:/# exit
exit
leon@ubuntu-s-1vcpu-1gb-tor1-01:~$

6: Administrar contenedores de Docker

Después de usar Docker por un tiempo, habrá muchos contenedores activos (en ejecución) e inactivos en su computadora. Para ver la actividad, use:

docker ps

No tengo actividad aquí, por lo que se muestra así:

leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

Para mostrar todos los contenedores, haga esto:
docker ps -a

La pantalla es así:

leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker ps -a
CONTAINER ID   IMAGE         COMMAND       CREATED             STATUS                         PORTS     NAMES
bd612e776819   ubuntu        "/bin/bash"   53 minutes ago      Exited (0) 22 minutes ago                gallant_visvesvaraya
bdbf06b1c3bc   hello-world   "/hello"      About an hour ago   Exited (0) About an hour ago             nifty_benz

Para ver los contenedores creados recientemente, use -l
docker ps -l

Para iniciar un contenedor detenido, use docker start seguido del ID del contenedor o el nombre del contenedor. Comencemos el contenedor basado en Ubuntu con el ID bdbf06b1c3bc:
docker start bdbf06b1c3bc

Esta ID es diferente, como puede ver en la vista docker ps -a, lo siguiente es después del inicio y luego use docker ps para ver:

 docker start bd612e776819
bd612e776819
leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED             STATUS         PORTS     NAMES
bd612e776819   ubuntu    "/bin/bash"   About an hour ago   Up 7 seconds             gallant_visvesvaraya

Para detener un contenedor en ejecución, use docker stop seguido del ID o el nombre del contenedor. Esta vez, usaremos el nombre de contenedor gallant_visvesvaraya asignado por Docker:

parada de estibador gallant_visvesvaraya

Después de confirmar que el contenedor ya no es necesario, use el comando docker rm para eliminarlo nuevamente usando el ID o el nombre del contenedor. Use el comando docker ps -a para encontrar el ID del contenedor o el nombre del contenedor asociado con la imagen de hello-world y elimínelo.

docker rm nifty_benz

El siguiente es el proceso de verificar con ps -a primero y verificar después de rm. nifty_benz es el nombre que ve ps, cada uno es diferente.

leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker ps -a
CONTAINER ID   IMAGE         COMMAND       CREATED       STATUS                          PORTS     NAMES
bd612e776819   ubuntu        "/bin/bash"   6 hours ago   Exited (0) About a minute ago             gallant_visvesvaraya
bdbf06b1c3bc   hello-world   "/hello"      6 hours ago   Exited (0) 5 hours ago                    nifty_benz
leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker rm nifty_benz
nifty_benz
leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED       STATUS                     PORTS     NAMES
bd612e776819   ubuntu    "/bin/bash"   6 hours ago   Exited (0) 2 minutes ago             gallant_visvesvaraya
leon@ubuntu-s-1vcpu-1gb-tor1-01:~$

Puede iniciar un nuevo contenedor y nombrarlo con el interruptor --name. También puede usar el modificador --rm para crear un contenedor, que se eliminará cuando se detenga. Para obtener más información sobre estas y otras opciones, consulte el comando docker run help.

Los contenedores se pueden convertir en imágenes y se pueden usar para construir nuevos contenedores. Veamos cómo funciona.

7: Confirmar cambios en el contenedor

Al iniciar una imagen de Docker, puede crear, modificar y eliminar archivos como si estuviera usando una máquina virtual. Los cambios realizados solo se aplicarán a ese contenedor. Puede iniciarse y detenerse, pero una vez que se destruye con el comando docker rm, los cambios se perderán para siempre.

Esta sección explica cómo guardar el estado del contenedor como una nueva imagen de Docker.

Después de instalar Node.js en el contenedor de Ubuntu, ahora hay un contenedor para ejecutar la imagen, pero el contenedor es diferente de la imagen utilizada para crearlo. Pero en el futuro, es posible que desee reutilizar este contenedor Node.js como base para una nueva imagen.

Luego, use el siguiente comando para confirmar los cambios en la nueva instancia de imagen de Docker.

docker commit -m "Qué le hiciste a la imagen" -a "Nombre del autor" container_id repository / new_image_name

El modificador -m se usa para enviar un mensaje, lo que le ayuda a usted y a otras personas a conocer los cambios que realizó, y -a se usa para especificar el autor. El container_id es el que anotó cuando inició la sesión interactiva de Docker anteriormente en este tutorial. A menos que se cree otro repositorio en Docker Hub, el repositorio suele ser el nombre de usuario de Docker Hub.

Por ejemplo, para el usuario sammy y el ID del contenedor es d9b100f2f636, el comando será:

docker commit -m "agregó Node.js" -a "sammy" d9b100f2f636 sammy / ubuntu-nodejs

Cuando se envía la imagen, la nueva imagen se guardará en la computadora local. Más adelante en este tutorial, aprenderá a enviar una imagen a un repositorio de Docker, como Docker Hub, para que otros puedan acceder a ella.

Volver a enumerar la imagen de Docker mostrará la nueva imagen, así como la imagen anterior:

imágenes de docker

El siguiente es el proceso de operación:

leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker commit -m "added Node.js" -a "leon" bd612e776819 leon/ubuntu-nodejs
sha256:e5120a19cee69adfa4ea83f9e97934aa0ba33624ce4230b92a999c4cb4d2f75d
leon@ubuntu-s-1vcpu-1gb-tor1-01:~$ docker images
REPOSITORY           TAG       IMAGE ID       CREATED              SIZE
leon/ubuntu-nodejs   latest    e5120a19cee6   About a minute ago   167MB
ubuntu               latest    f63181f19b2f   4 weeks ago          72.9MB
hello-world          latest    bf756fb1ae65   13 months ago        13.3kB
leon@ubuntu-s-1vcpu-1gb-tor1-01:~$

8: Empuje la imagen de Docker al repositorio de Docker

Después de crear una nueva imagen a partir de una imagen existente, el siguiente paso es compartir esa imagen con amigos, el mundo entero en Docker Hub u otras bibliotecas de Docker a las que tenga acceso. Para enviar una imagen a Docker Hub o cualquier otro registro de Docker, debe tener una cuenta en él.

El primer paso es iniciar sesión en su cuenta:

docker login -u docker-registro-nombre de usuario

Si el nombre de usuario y la cuenta de inicio de sesión no coinciden:

etiqueta docker sammy / ubuntu-nodejs docker-registry-username / ubuntu-nodejs

Luego empuja:

docker push docker-registry-username / docker-image-name
Si el nombre de usuario es sammy y la imagen es ubuntu-nodejs, use el siguiente comando:

docker empujar sammy / ubuntu-nodejs

9: Algunos comandos para Ccontainer e Images

Lista de todos los ID de contenedor

docker ps -aq

Detener todos los contenedores

docker stop $ (docker ps -aq)

Eliminar todos los contenedores

docker rm $ (docker ps -aq)

Eliminar todos los espejos
docker rmi $ (docker images -q)

Este artículo se completa aprendiendo  cómo instalar y usar Docker en Ubuntu 20.04  .

Eso es todo para la introducción.

Supongo que te gusta

Origin blog.csdn.net/leon_zeng0/article/details/113881191
Recomendado
Clasificación