本文翻译自: Como copiar imagens Docker de um hospedeiro para outro sem usar um repositório
Como faço para transferir uma imagem Docker de uma máquina para outra sem usar um repositório, não importa privado ou público? Como transferência de imagem Docker sem o uso de um repositório de um computador para outro computador, se é privado ou público?
Estou habituado a jogar e criar minha própria imagem no VirtualBox, e quando ele for concluído, eu tento implantar em outras máquinas para ter o uso real. Eu costumava jogar e criar sua própria imagem no VirtualBox, após a conclusão, eu tento implantar para outros computadores para uso prático.
Uma vez que é baseado em imagem com base própria (como Red Hat Linux), não pode ser recriado a partir de um Dockerfile. Porque ele é baseado em sua própria imagem (como o Red Hat Linux), e, portanto, não pode ser recriado a partir Dockerfile.
Existem comandos simples que posso usar? Posso usar um simples comando dele? Ou outra solução? Ou outras soluções?
Parece que o salve-/ Export CAN a Atingir um propósito semelhante, Veja o que está no -difference o entre o Salvar e Exportar no Docker? Parece para salvar / exportação pode alcançar um propósito semelhante, consulte Qual é a diferença entre Docker salvar e exportar? E o que a preferência pelo O save
Comando para o meu caso. , Para o meu caso, eu prefiro usar save
o comando.
# 1 andar
Casa # 2
Para uma exportação achatada de um contêiner sistema de arquivos, uso; para um arquivo simples contentores de exportação do sistema, o uso;
docker export CONTAINER_ID > my_container.tar
Use cat my_container.tar | docker import -
utilização cat my_container.tar | docker import -
cat my_container.tar | docker import -
de importação referida imagem. cat my_container.tar | docker import -
Imagem
Casa # 3
Você vai precisar para salvar a imagem Docker como um arquivo tar: Você vai precisar de imagem Docker para é salva como um arquivo tar:
docker save -o <path for generated tar file> <image name>
A copiar a imagem para o então novo sistema novo com regular arquivo de Transferência de ferramentas como cp
, scp
ou rsync
(de preferencial para arquivos Big). Em seguida, usar a ferramenta de transferência de arquivos convencional (por exemplo cp
, scp
ou rsync
(de preferência) para grandes termos arquivos) para copiar as imagens para o novo sistema. Depois disso você terá que carregar a imagem em Docker: Depois disso, você tem que estar na imagem é carregada em Docker:
docker load -i <path to image tar file>
PS: necessidade de maio por Você sudo
todos os comandos. PS: Você pode precisar de todos os comandos sudo
.
EDIT: Você deve adicionar nome de arquivo (não apenas diretório) com -o, por exemplo: Edit: Você deve usar o -o adicionar o nome do arquivo (e não apenas o diretório), por exemplo:
docker save -o c:/myfile.tar centos:16
# 4 andares
A supor que você precisa para o Save a I couchdb-cartridge
Qual dos acima indicado do ID tem 7ebc8510bc2c AN Image: Eu suponho que você precisa salvá-lo como um ID 7ebc8510bc2c imagem de couchdb-cartridge
:
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
Salvar a imagem ArchiveName para um arquivo tar . Salve a imagem em arquivo tar ArchiveName. At The por Will usar o I /media/sf_docker_vm/
para o Save a imagem. Vou usar a /media/sf_docker_vm/
imagem salva.
stratos@Dev-PC:~$ docker save imageID > /media/sf_docker_vm/archiveName.tar
At The archiveName.tar ao seu arquivo de cópia nova nova instância Docker uma usando o método, o que funciona no seu ambiente, por exemplo FTP
, SCP
, etc. usando qualquer método disponível no ambiente para copiar os arquivos para um novo instâncias archiveName.tar Docker, por exemplo FTP
, SCP
e assim por diante.
At The RUN docker load
o comando em sua nova nova instância eo Especifique no local Docker. De alcatrão no arquivo da imagem para rodar na nova instância Docker docker load
de comando, e especifique o local do arquivo de imagem alcatrão.
stratos@Dev-PC:~$ docker load < /media/sf_docker_vm/archiveName.tar
A Finalmente, no RUN docker images
o comando para o Verifique se o disponível agora em que a imagem é. Finalmente, execute o docker images
comando para verificar se a imagem está agora disponível.
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
A Encontre o presente favor do post detalhado . Por favor, encontrar o post detalhado .
Casa # 5
A Docker Imagem Via SSH Transferência, bzipping sobre no conteúdo no The Fly: transporte SSH imagem Docker por e instantaneamente bzip conteúdo:
docker save <image> | bzip2 | \
ssh user@host 'bunzip2 | docker load'
Também uma boa ideia é-lo para colocar pv
em no meio de pelo O tubo Ver Como transferir no The vai: o pv
no meio do gasoduto também é uma boa idéia para ver o processo de transmissão:
docker save <image> | bzip2 | pv | \
ssh user@host 'bunzip2 | docker load'
(Mais informações no Sobre pv
: Página , homem página ). (Sobre pv
mais informações: Página , páginas man ).
Casa # 6
Para guardar uma imagem a qualquer caminho de arquivo ou compartilhado lugar NFS veja o exemplo a seguir. Para salvar a imagem em qualquer ação ou arquivo NFS local do caminho, veja o exemplo a seguir.
Obter o ID de imagem fazendo: a aquisição de um ID de imagem executando as seguintes operações:
sudo docker images
Digamos que você tenha uma imagem com id " matriz de dados". Suponha que você tenha um ID de imagem "Data Matrix".
Salvar a imagem com id: salvar a imagem ter um ID:
sudo docker save -o /home/matrix/matrix-data.tar matrix-data
Copie a imagem do caminho. Para qualquer máquina para copiar a imagem do caminho para qualquer host. Agora importar para sua instalação local Docker usando : Agora, use o seguinte comando para a instalação local Docker:
sudo docker load -i <path to copied image file>