imagen hub crear copiar contenedor docker

hub - Cómo copiar imágenes de Docker de un host a otro sin usar un repositorio



crear imagen docker (15)

Así es como puede mover imágenes de Docker entre dos registros / repositorios remotos. Funciona con Docker versión 1.10.2, compilación c3959b1.

docker pull source-registry.com/myProject/myImageName:1.0.0 docker tag source-registry.com/myProject/myImageName:1.0.0 target-remote-registry.com/myProject/myImageName:1.0.0 docker push target-remote-registry.com/myProject/myImageName:1.0.0

Es un método útil si desea migrar sus imágenes a un servicio de AWS ECS / ECR.

¿Cómo transfiero una imagen de Docker de una máquina a otra sin usar un repositorio, sin importar si es privado o público?

Estoy acostumbrado a jugar y crear mi propia imagen en VirtualBox, y cuando termina, intento desplegarla en otras máquinas para tener un uso real.

Dado que se basa en una imagen basada propia (como Red Hat Linux), no se puede volver a crear desde un Dockerfile.

¿Hay comandos simples que pueda usar? ¿O otra solución?

Parece que guardar / exportar puede lograr un propósito similar, vea ¿Cuál es la diferencia entre guardar y exportar en Docker? , y prefiero el comando save para mi caso.


Creo que la mejor variante sería iniciar sesión en Docker Hub y empujar la imagen allí.

La primera parte del nombre de su imagen (antes de la barra inclinada) debe corresponder a su apodo en Docker Hub, la segunda parte es el nombre de la aplicación que desea y es más que la etiqueta (versión).

Resultado: brilliance643 / nagios: finalv

Resultado: Podrás acceder a tu imagen solo con

$docker run -ti -d brilliance643/nagios:finalv

Desde cualquier parte del universo.


Cuando se utiliza docker-machine, puede hacer docker $(docker-machine config <mach1>) save <image> | docker $(docker-machine config <mach2>) load docker $(docker-machine config <mach1>) save <image> | docker $(docker-machine config <mach2>) load para copiar imágenes entre las máquinas mach1 y mach2 .

Y, por supuesto, también puede pegar pv en el medio para obtener un indicador de progreso:

docker $(docker-machine config <mach1>) save <image> | pv | docker $(docker-machine config <mach2>) load docker $(docker-machine config <mach1>) save <image> | pv | docker $(docker-machine config <mach2>) load .

También puede omitir uno de los sub-shells de docker-machine config , para usar su actual docker-host predeterminado.

docker save <image> | docker $(docker-machine config <mach>) load docker save <image> | docker $(docker-machine config <mach>) load para copiar la imagen del actual docker-host a mach

o

docker $(docker-machine config <mach>) save <image> | docker load docker $(docker-machine config <mach>) save <image> | docker load para copiar desde la mach a la actual ventana acoplable-host.


Deberá guardar la imagen de Docker como un archivo tar:

docker save -o <path for generated tar file> <image name>

Luego copie su imagen en un nuevo sistema con herramientas de transferencia de archivos regulares como cp o scp . Después de eso tendrás que cargar la imagen en Docker:

docker load -i <path to image tar file>

PS: Es posible que necesite sudo todos los comandos.


Para guardar una imagen en cualquier ruta de archivo o lugar NFS compartido, consulte el siguiente ejemplo.

Obtener la identificación de la imagen haciendo:

sudo docker images

Digamos que tienes una imagen con id "datos-matriz".

Guarda la imagen con id:

sudo docker save -o /home/matrix/matrix-data.tar matrix-data

Copia la imagen de la ruta a cualquier host. Ahora importe a su instalación local de Docker usando:

sudo docker load -i <path to copied image file>


Para transferir imágenes de su instalación local de Docker a una máquina virtual de minikube:

docker save <image> | (eval $(minikube docker-env) && docker load)


Para una exportación aplanada del sistema de archivos de un contenedor, use;

docker export CONTAINER_ID > my_container.tar

Utilice el cat my_container.tar | docker import - cat my_container.tar | docker import - para importar dicha imagen.


Primero guarda la imagen de Docker en un archivo zip:

docker save <docker image name> | gzip > <docker image name>.tar.gz

Luego, cargue la imagen exportada a Docker usando el siguiente comando:

zcat <docker image name>.tar.gz | docker load


Puedes usar sshfs :

$ sshfs user@ip:/<remote-path> <local-mount-path> $ docker save <image-id> > <local-mount-path>/myImage.tar


Quiero mover todas las imágenes con etiquetas.

``` OUT=$(docker images --format ''{{.Repository}}:{{.Tag}}'') OUTPUT=($OUT) docker save $(echo "${OUTPUT[*]}") -o /dir/images.tar ```

Explicación:

First OUT obtiene todas las etiquetas pero separadas con nuevas líneas. Second OUTPUT obtiene todas las etiquetas en una matriz El tercer $(echo "${OUTPUT[*]}") coloca todas las etiquetas para un solo comando de docker save modo que todas las imágenes estén en un solo tar.

Además, esto puede ser comprimido usando gzip. En el objetivo, ejecute:

tar xvf images.tar.gz -O | docker load

-O opción de tar pone contenido en la entrada estándar que puede ser capturada por la docker load .


Supongo que necesita guardar el couchdb-cartridge que tiene un ID de imagen de 7ebc8510bc2c:

stratos@Dev-PC:~$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE couchdb-cartridge latest 7ebc8510bc2c 17 hours ago 1.102 GB 192.168.57.30:5042/couchdb-cartridge latest 7ebc8510bc2c 17 hours ago 1.102 GB ubuntu 14.04 53bf7a53e890 3 days ago 221.3 MB

Guarde la imagen de archiveName en un archivo tar. /media/sf_docker_vm/ el /media/sf_docker_vm/ para guardar la imagen.

stratos@Dev-PC:~$ docker save imageID > /media/sf_docker_vm/archiveName.tar

Copie el archivo archiveName.tar en su nueva instancia de Docker utilizando cualquier método que funcione en su entorno, por ejemplo, FTP , SCP , etc.

Ejecute el comando docker load en su nueva instancia de Docker y especifique la ubicación del archivo tar de la imagen.

stratos@Dev-PC:~$ docker load < /media/sf_docker_vm/archiveName.tar

Finalmente, ejecute el comando de docker images la docker images para verificar que la imagen ahora esté disponible.

stratos@Dev-PC:~$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE couchdb-cartridge latest 7ebc8510bc2c 17 hours ago 1.102 GB 192.168.57.30:5042/couchdb-cartridge latest bc8510bc2c 17 hours ago 1.102 GB ubuntu 14.04 4d2eab1c0b9a 3 days ago 221.3 MB

Por favor encuentre este post detallado .


Todas las otras respuestas son muy útiles. Acabo de pasar por el mismo problema y descubro una manera fácil con el docker machine scp .

Desde Docker Machine v0.3.0, se introdujo scp para copiar archivos de una máquina Docker a otra. Esto es muy conveniente si desea copiar un archivo desde su computadora local a una máquina Docker remota como AWS EC2 o Digital Ocean porque Docker Machine se hace cargo de las credenciales de SSH por usted.

  1. Guarda tus imágenes usando la docker save como:

    docker save -o docker-images.tar app-web

  2. Copia imagenes usando docker-machine scp

    docker-machine scp ./docker-images.tar remote-machine:/home/ubuntu

Suponga que su máquina Docker remota es una máquina remote-machine y el directorio en el que desea que esté el archivo tar es /home/ubuntu .

  1. Cargar la imagen de Docker.

    docker-machine ssh remote-machine sudo docker load -i docker-images.tar


Transfiriendo una imagen de Docker a través de SSH, bzipping el contenido sobre la marcha:

docker save <image> | bzip2 | / ssh user@host ''bunzip2 | docker load''

También es una buena idea poner pv en el centro de la tubería para ver cómo va la transferencia:

docker save <image> | bzip2 | pv | / ssh user@host ''bunzip2 | docker load''

(Más información sobre pv : página de inicio , página de manual ).


correr

docker images

para ver una lista de las imágenes en el host. Digamos que tienes una imagen llamada awesomesauce . En su terminal, cd al directorio donde desea exportar la imagen. Ahora ejecuta:

docker save awesomesauce:latest > awesomesauce.tar

Copie el archivo tar en una unidad de disco USB o lo que sea, y luego cópielo en la nueva computadora host.

Ahora desde el nuevo host haz:

docker load < awesomesauce.tar

Ahora ve a tomar un café y lee Hacker News ...


docker-push-ssh es una utilidad de línea de comandos solo para este escenario.

Establece un registro Docker privado temporal en el servidor, establece un túnel SSH desde su host local, empuja su imagen y luego se limpia después de sí mismo.

El beneficio de este enfoque sobre el docker save (en el momento de escribir la mayoría de las respuestas que utilizan este método) es que solo las nuevas capas se envían al servidor, lo que resulta en una carga MUCHO más rápida.

A menudo, el uso de un registro intermedio como dockerhub es indeseable y engorroso.

https://github.com/coherenceapi/docker-push-ssh

Instalar:

pip install docker-push-ssh

Ejemplo:

docker-push-ssh -i ~/my_ssh_key [email protected] my-docker-image

La mayor advertencia es que tiene que agregar manualmente su host local a la configuración insegure_registries de Docker. Ejecute la herramienta una vez y le dará un error informativo:

Error Pushing Image: Ensure localhost:5000 is added to your insecure registries. More Details (OS X): https://.com/questions/32808215/where-to-set-the-insecure-registry-flag-on-mac-os

¿Dónde debo configurar el indicador ''--insecure-registry'' en Mac OS?