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
# 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
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.
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
# docker run ubuntu-nginx whereis nginx
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
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.
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
# 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