Vuelva a ejecutar la sesión acoplada salida


0

Descargué la imagen de Docker y la ejecuté de manera interactiva usando -itargumentos. Sin embargo, faltan algunas aplicaciones y las instalo apt-get. El problema es que cada vez que salgo de la sesión se borra todo lo que tengo instalado y tengo que reinstalarlo la próxima vez. Pensé que tal vez instalar aplicaciones en un directorio montado usando la -vopción podría funcionar, pero dado que ya hay otras aplicaciones en ese directorio, pensé que podría no ser la solución ideal. ¿Existe una forma estándar de guardar la sesión actual, es decir, guardar las aplicaciones que he instalado? ¿Qué pasa con los cambios en los archivos .bashrcy .bash_profile, y similares? ¿Existe alguna forma elegante de salvarlos también?

ACTUALIZAR:

Esta es la sesión y su ID de contenedor, que me gustaría volver a ejecutar. ¿Hay alguna manera de ejecutarlo de manera interactiva nuevamente usando la ID del contenedor?

CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                       PORTS               NAMES
50e77c283ae9        shogun/shogun-dev         "bash"              24 hours ago        Exited (1) 4 hours ago                           dreamy_fermi

Respuestas:


2

Veo por su problema que tiene dos formas de evitar esto:

  • Genere una imagen acoplable a partir de un contenedor que tenga todos los paquetes y configuraciones que necesita persistentes. De esta manera, no necesita instalar paquetes y hacer configuraciones cada vez que crea un nuevo contenedor
  • Cree una imagen de Docker personalizada desde Dockerfile con todos los paquetes que necesita instalar. Al ejecutar el contenedor, puede asignar archivos personalizados y el almacenamiento de datos persistentes mediante -v volume.

Usemos un ejemplo para aclarar esto.

# docker run -it --name test_con ubuntu:16.04 /bin/bash

Instalaré algunos paquetes, como vim, bash-complete y wget.

root@9c67dc1776cd:/# apt-get update
root@9c67dc1776cd:/# apt-get install vim bash-completion wget

Luego cree una nueva imagen acoplable desde este contenedor, la he llamado test_con. Para esto usaremos la opción de comando commit.

# docker commit -m "updated packages" test_con ubuntu:v1

Si la ejecución del comando es exitosa, debería obtener una salida similar a esta.

sha256:cdf9dc8fe82407b49bae2a2840e7f59706ac84e9f6a0fff55a62afc7dd0db3c3

Confirme si se creó un nuevo contenedor con este comando:

# docker images

Cree un contenedor de prueba a partir de él y verifique si wget está presente.

# docker run --name test --rm -it ubuntu:v1
root@401345aecec5:/# which wget
/usr/bin/wget

Para la segunda opción, puede mirar esta página wiki en los comandos de docker. Esto te ayudará a personalizar tus imágenes en la creación inicial.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.