Entrada

Manual de línea de comando (CLI) para usar Docker

Este es un manual de comandos para controlar Docker usando CLI (Interfaz de línea de comandos) en un entorno de shell sin usar la GUI de Docker. Presentamos cómo crear y controlar imágenes de Docker, crear y controlar contenedores de Docker y guardar y cargar imágenes o contenedores.

permiso denegado al intentar conectarse al socket del demonio Docker

Cuando instala Docker e intenta ejecutar comandos relacionados con Docker, se produce un error de permiso relacionado con el acceso a /var/run/docker.sock. Desde una perspectiva del sistema, las acciones de Docker parecen requerir privilegios de “root”.

1
2
3
$ docker images -a
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/json?all=1": dial unix /var/run/docker.sock: connect: permission denied

Utilice el siguiente comando para otorgar acceso a su cuenta de Ubuntu a /var/run/docker.sock.

1
sudo chmod 666 /var/run/docker.sock;sudo chown -R ${USER}:users /var/run/docker.sock

Imagen

Crear imagen de Docker

Lo primero que debe hacer para utilizar Docker puede ser crear una imagen de Docker. Puede crear una imagen de Docker con el siguiente comando. Este comando crea una imagen de Docker basada en el Dockerfile que escribió.

1
2
3
4
5
6
7
8
9
# build general 
docker build -f <Dockerfile> -t <tag> .

# build without cache
docker build -f <Dockerfile> --no-cache -t <tag> .

# -----------------------------------------------
# example
docker build -f Dockerfile -t img-my .

Enumera las imágenes de Docker y elimínalas

A continuación se muestra el comando para ver y eliminar la lista de imágenes de Docker registradas en el sistema.

1
2
3
4
5
# list
docker images -a

# remove
docker rmi <repository name>

Eliminar caché de imágenes de Docker

Si repite la compilación de la imagen de Docker mientras modifica el “Dockerfile”, el tiempo de compilación será menor que cuando se crea la imagen por primera vez. Esto es posible porque Docker tiene una estructura en capas y las partes sin cambios se almacenan en caché en el sistema. Sin embargo, el contenido almacenado en caché ocupa espacio de almacenamiento. El comando para eliminar el caché de Docker es el siguiente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# remove docker cache
docker system prune -a

# -----------------------------------------------
# example
$ docker system prune -a
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all images without at least one container associated to them
  - all build cache

Are you sure you want to continue? [y/N] y
Deleted build cache objects:
kxgva6ktfwea5hiatrfmgyeq3
...
c5tvqn2p53ledfjz4nqyrbl1g
gtdusijog41t1972eh4oggk37

Total reclaimed space: 15.34GB


Envase

Crear contenedor a partir de imagen

Si ha creado una imagen de Docker, este es el comando para crear un contenedor basado en la imagen.

1
2
3
4
5
docker run -d -it --name <container name> -p <ubuntu machine port>:<docker port> <image name>

# -----------------------------------------------
# example
docker run -d -it --name cond-my -p 43389:3389 -p 48080:8080 -p 44000:4000 -p 422:22 img-my

Enumere los contenedores Docker y elimínelos

Si ejecuta por primera vez un contenedor Docker con el comando “ejecutar”, se crea un contenedor. También puede verificar el estado de los contenedores Docker y enumerarlos mediante el comando ps. También puede eliminar contenedores Docker con el comando rm.

1
2
3
4
5
6
# list 
docker ps -a

# remove
docker rm <container id>

Iniciar, detener, adjuntar

Si encuentra el ID del contenedor Docker buscando en la lista de Docker, puede usar el comando start para iniciar y detener el contenedor Docker (stop) e ingresar dentro de Docker (attach).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# start stopped container 
docker start <container id>

# start stopped container & enter container
docker start -i <container id>          

# stop running container
docker stop <container id>

# enter running(started) container 
docker attach <container id>

# pass to commands to running container
docker exec -it <container names> <commands>  

Guardar/cargar imagen de la ventana acoplable

Exportar imagen de Docker a un archivo

En mi caso utilizo la función Docker de Synology NAS. Synology básicamente admite la capacidad de crear contenedores basados ​​en imágenes registradas en Docker Hub. Sin embargo, como quería utilizar la imagen de Docker creada en base al Dockerfile como contenedor, guardé la imagen creada en la máquina Ubuntu como un archivo y la cargué en Synology Docker.

El siguiente comando guarda la imagen de Docker registrada en el sistema como un archivo tar.

1
2
3
4
5
docker save -o <file name> <image name>

# -----------------------------------------------
# example
docker save -o img-my.tar img-my

Cargar imagen de Docker desde un archivo de imagen

El siguiente comando carga la imagen de Docker en formato de archivo tar en el sistema.

1
2
3
4
5
6
docker load -i <file name>

# -----------------------------------------------
# example
docker load -i img-my.tar

Exportar contenedor Docker a imagen

Dependiendo de la situación, es posible que no sea posible configurar el entorno en la imagen solo con el contenido descrito en el Dockerfile. Por lo tanto, a veces es posible que necesite crear una imagen de un contenedor Docker configurado manualmente. El siguiente comando convierte un contenedor Docker en una imagen.

1
2
3
4
5
docker commit <container name> <image name = repository name>:<tag>

# -----------------------------------------------
# example

Referencias

  • Extraer y cargar la imagen de Docker: https://dongle94.github.io/docker/docker-image-extract/

Esta entrada está licenciada bajo CC BY 4.0 por el autor.