GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo instalar, ejecutar y eliminar aplicaciones dentro de contenedores Docker:parte 2

Siguiendo el Docker anterior artículo, este tutorial discutirá cómo guardar un contenedor de Docker en una nueva imagen, eliminar un contenedor y ejecutar un Nginx servidor web dentro de un contenedor.

Requisitos

  • Cómo instalar Docker y ejecutar contenedores en CentOS/RHEL 8/7:parte 1

Cómo ejecutar y guardar un contenedor Docker

1. En este ejemplo, ejecutaremos y guardaremos un basado en Ubuntu Contenedor Docker donde Nginx se instalará el servidor. Pero antes de realizar cualquier cambio en un contenedor, primero inicie el contenedor con los siguientes comandos que actualizan e instalan Nginx daemon en la imagen de Ubuntu:

# docker run ubuntu bash -c "apt-get -y update" 
# docker run ubuntu bash -c "apt-get -y install nginx" 

Si recibe el error 'E:No se puede ubicar el paquete nginx ', entonces debe conectarse a un contenedor con CLI interactivo e instalar nginx como se muestra.

# docker run -it ubuntu bash
# apt install nginx
# exit

2. A continuación, después de Nginx el paquete está instalado, emita el comando docker ps -l para obtener la identificación o nombre del contenedor en ejecución.

# docker ps -l

Y aplique los cambios ejecutando el siguiente comando:

# docker commit 5976e4ae287c ubuntu-nginx

Aquí, 5976e4ae287c representa el contenedor ID y ubuntu-nginx representa el nombre de la nueva imagen que se ha guardado con los cambios confirmados.

Para ver si la nueva imagen se ha creado correctamente, simplemente ejecute docker images y se mostrará una lista de todas las imágenes guardadas.

# docker images

Lo más probable es que el proceso de instalación dentro del contenedor termine rápido, lo que conduce a un contenedor que no se ejecuta (el contenedor está detenido). En este caso, el docker ps el comando no mostrará ningún resultado porque no se está ejecutando ningún contenedor.

Para poder obtener la identificación del contenedor, ejecute docker ps -a | head -3 para generar los contenedores más recientes e identificar el contenedor según el comando emitido para crear el contenedor y el estado de salida.

3. Alternativamente, puede ingresar activamente a las sesiones del contenedor ejecutando docker run -it ubuntu bash comando y ejecute el siguiente apt-get install nginx dominio. Mientras se ejecuta el comando, sepárelo del contenedor usando Ctrl-p + Ctrl-q keys y el contenedor continuará ejecutándose incluso si finaliza el proceso de instalación de Nginx.

# docker run -it ubuntu bash
# apt-get install nginx

Luego, obtenga la identificación del contenedor en ejecución con docker ps y cometer cambios. Cuando termine, vuelva a ingresar a la consola del contenedor usando docker attach y escribe exit para detener el contenedor.

# docker ps
# docker attach 3378689f2069
# exit

4. Para probar más si la imagen reciente se ha confirmado correctamente (en este caso, Nginx se ha instalado el servicio), ejecute el siguiente comando para generar un nuevo contenedor que generará si el binario Nginx se instaló correctamente:

# docker run ubuntu-nginx whereis nginx

5. Para eliminar un contenedor use el rm comando contra un ID o nombre de contenedor, que se puede obtener usando docker ps -a comando:

# docker ps -a
# sudo docker rm 36488523933a

Cómo ejecutar Nginx dentro de Docker Container

6. En esta parte, nos concentraremos en cómo puede ejecutar y acceder a un servicio de red, como un Nginx servidor web, dentro de Docker, usando ubuntu-nginx imagen creada anteriormente donde se instaló el demonio Nginx.

Lo primero que debe hacer es crear un nuevo contenedor, mapear puertos host-contenedor e ingresar el shell del contenedor emitiendo el siguiente comando:

# docker run -it -p 81:80 ubuntu-nginx /bin/bash
# nginx &

Aquí, el -p La opción expone el puerto del host al puerto del contenedor. Si bien el puerto del host puede ser arbitrario, con la condición de que esté disponible (ningún otro servicio del host debe escucharlo), el puerto del contenedor debe ser exactamente el puerto que escucha el demonio interno.

Una vez que esté conectado a la sesión del contenedor, inicie Nginx daemon en segundo plano y sepárelo de la consola del contenedor presionando Ctrl-p + Ctrl-q llaves.

7. Ahora, ejecuta docker ps para obtener el estado de su contenedor en ejecución. También puede ver los sockets de la red host emitiendo el siguiente comando:

# docker ps
OR
# netstat -tlpn 

8. Para visitar la página servida por el contenedor Nginx, abra un navegador desde una ubicación remota en su LAN y escriba la dirección IP de su máquina usando el protocolo HTTP.

9. Para detener el contenedor, ejecute el siguiente comando seguido del ID o nombre del contenedor:

# docker ps
# docker stop fervent_mccarthy
# docker ps

Como alternativa para detener el contenedor en ejecución, ingrese el símbolo del sistema del shell del contenedor y escriba exit para finalizar el proceso:

# docker attach fervent_mccarthy
# exit

Tenga en cuenta que el uso de este tipo de contenedor para ejecutar servidores web u otros tipos de servicios es más adecuado solo para fines de desarrollo o pruebas debido al hecho de que los servicios solo están activos mientras se ejecuta el contenedor. Salir del contenedor interrumpe todos los servicios en ejecución o cualquier cambio realizado.

Lecturas adicionales:

Parte 3 :Cree y configure automáticamente imágenes de Docker con Dockerfile en CentOS/RHEL 8/7Parte 4 :Cómo monitorear contenedores Docker en Linux
Docker
  1. Cómo crear, enumerar y eliminar contenedores Docker en Linux

  2. Cómo ejecutar MySQL en un contenedor Docker

  3. Cómo hacer una copia de seguridad y restaurar contenedores Docker

  4. Cómo pausar y reanudar contenedores Docker

  5. Cómo ejecutar un trabajo cron dentro de un contenedor docker

Cómo instalar y configurar Docker Container en AlmaLinux 8

Cómo usar Docker Cp para copiar archivos entre el host y los contenedores

Cómo ejecutar PHPMyAdmin en un contenedor Docker

Cómo ejecutar Grafana en un contenedor Docker

Cómo ejecutar contenedores Docker

Cómo listar/iniciar/detener/eliminar contenedores docker