Saltar al contenido

¿Cómo se inicia un contenedor Docker-ubuntu en bash?

Haz todo lo posible por entender el código de forma correcta previamente a adaptarlo a tu trabajo si tdeseas aportar algo puedes decirlo en los comentarios.

Solución:

En primer lugar, un contenedor no es una máquina virtual. Un contenedor es un entorno de aislamiento para ejecutar un proceso. El ciclo de vida del contenedor está ligado al proceso que se ejecuta en su interior. Cuando el proceso sale, el contenedor también sale y el entorno de aislamiento desaparece. El significado de “adjuntar al contenedor” o “ingresar a un contenedor” en realidad significa que ingresa al entorno de aislamiento del proceso en ejecución, por lo que si se ha salido de su proceso, también se ha salido de su contenedor, por lo que no hay contenedor para que pueda attach o enter. Entonces el comando de docker attach, docker exec son objetivo en corriendo envase.

¿Qué proceso se iniciará cuando docker run está configurado en un Dockerfile e integrado en una imagen de Docker. Tomar una imagen ubuntu como ejemplo, si corres docker inspect ubuntu, encontrará las siguientes configuraciones en la salida:

"Cmd": ["/bin/bash"]

lo que significa que el proceso se inició cuando ejecuta docker run ubuntu es /bin/bash, pero no está en un modo interactivo y no le asigna un tty, por lo que el proceso salió inmediatamente y el contenedor salió. Por eso no tiene forma de volver a entrar en el contenedor.

Para iniciar un contenedor e ingresar bash, sólo inténtalo:

docker run -it ubuntu

Luego, lo llevarán al interior del contenedor. Si abre otra terminal y docker ps, verá que el contenedor se está ejecutando y puede docker attach a eso o docker exec -it bash para entrar de nuevo.

También puede consultar este enlace para obtener más información.

Aquí hay un Dockerfile muy simple con instrucciones como comentarios … ejecútelo para activar un contenedor en ejecución al que puede iniciar sesión como ejecutivo

FROM ubuntu:20.04

ENV TERM linux
ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update
RUN apt-get install -y  

CMD ["/bin/bash"]


# ... save this file as Dockerfile then in same dir issue following
#
# docker build --tag stens_ubuntu .   # creates image stens_ubuntu
#
# docker run -d  stens_ubuntu  sleep infinity # launches container 
#
# docker ps     #   show running containers
#
# 
# ... find CONTAINER ID from above and put into something like this
#
# docker exec -ti $( docker ps | grep stens_ubuntu | cut -d' ' -f1 ) bash   #  login to running container
# docker exec -ti 3cea1993ed28 bash   #  login to running container using sample containerId  
#

Un contenedor saldrá normalmente cuando no tiene trabajo que hacer … si no le da trabajo saldrá inmediatamente después del lanzamiento por esta razón … típicamente el último comando de su Dockerfile es la ejecución de algún tipo de servidor que permanece vivo debido a un bucle de eventos interno y, al hacerlo, mantiene vivo su contenedor adjunto … a falta de eso, puede mencionar un ejecutable del servidor que se ha instalado en el contenedor como el parámetro final de su llamada a

docker run -d  my-image-name  my-server-executable

Ten en cuenta dar recomendación a esta sección si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *