Estoy tratando de tomar un contenedor acoplable de una máquina y ejecutarlo en otra y me encuentro con este error: " Respuesta de error del demonio: No se especificó ningún comando ".
A continuación se muestra un ejemplo simplificado que muestra el problema:
docker --version
Docker version 1.10.1, build 9e83765
docker pull ubuntu
docker run --name u1 -dit ubuntu:latest
docker export -o exported u1
docker stop u1
docker rm u1
docker import exported ubuntu:imported
docker run --name u1 -dit ubuntu:imported
docker: Error response from daemon: No command specified.
En ese ejemplo, primero extraemos una imagen (ubuntu) y creamos / ejecutamos un contenedor con éxito u1
. Luego exportamos ese contenedor a un archivo ( exported
), detenemos / eliminamos el contenedor, importamos el archivo a una nueva imagen ( ubuntu:imported
) e intentamos ejecutar un nuevo contenedor desde él. Fracasa.
docker inspect imagename:tagname
comparando el original y el importado. No tuve suerte conimport
/export
y--change
, aunque todo funciona bien consave
/load
.Recibí este error al intentar exportar e importar docker
microsoft/mssql-server-linux
.https://hub.docker.com/r/microsoft/mssql-server-linux/
Comandos para exportar e importar:
Sin embargo, no pudimos encontrar el comando para ejecutarlo. La solución fue enumerar todos los contenedores en la máquina exportadora y mirar el comando ejecutado.
A partir de ahí podríamos descubrir cómo ejecutar el comando correcto:
fuente
Cuando exporta un contenedor, pierde su propio historial que contiene capas de imágenes y metadatos. Entonces su contenedor perdió sus estados pid.
Cada contenedor debe tener un proceso inicial (raíz). Está anulando el punto de entrada predeterminado en el dockerfile como bash. [editado] Creo que incluso si no lo anula, usa el valor predeterminado, no definido en la imagen base de ubuntu. Por lo tanto, debe comenzar su proceso inicial con el comando cmd. Creo que no hay error. Es una función de dockerfile para la reutilización.
fuente
Lo tengo trabajando con estos pasos adicionales:
Cree Dockerfile de la siguiente manera:
Construir nueva imagen:
Ahora se ejecutará:
Sin embargo, todavía no está claro por qué la imagen exportada y luego importada no funciona de inmediato. ¿Es esto un error?
fuente
puede utilizar
docker load
comandos para cargar imágenes de archivo de almacenamiento. Este comando importará el archivo de imagen y los argumentos juntos.fuente
docker load
ydocker save
opere en imágenes de contenedor (a partir de las cuales se crean contenedores),docker import
ydocker export
opere en contenedores.