Pular para o conteúdo principal

Docker - Backup e Recuperação

Introdução 


Essa configuração descreverá um procedimento de como fazer backup de um container do docker e também mostrará como recupera-lo no mesmo sistema ou em algum sistema secundário que possui o docker instalado.

Como Fazer o backup do Docker


Quando precisamos fazer um backup de um contêiner de docker, obtemos o commit do seu estado atual e salvamos como uma imagem do docker.
# docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS                       PORTS                      NAMES

a7b03484bed6        bitnami/jenkins:2    "/app-entrypoint.sh …"   7 days ago          Up 42 hours                  tcp, 0.0.0.0:80->8080      opt_jenkins_1
A partir da saída acima, vemos um container do docker em execução nomeado como opt_jenkins_1 com um ID a7b03484bed6. Agora, usamos o comando commit para tirar uma imagem de seu estado de execução atual.

$ sudo docker commit -p a7b03484bed6  opt_jenkins_1

sha256:0bbcb2b71abb35da73b0dc2e0bafed7eb61c5b4565cd8f4093e9efb7a6a12d64
Com o comando a acima, pausamos primeiro o contêiner em execução com a opção -p e fizemos um commit para salvar o container como uma imagem do docker com o nome opt_jenkins_1.
$ sudo docker images

REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
opt_jenkins_1                  latest              0bbcb2b71abb        37 seconds ago      2.71GB
Agora, temos um backup do container salvo como uma imagem aguardando para ser reimplantada novamente. Se desejarmos reimplementar nossa imagem opt_jenkins_1, podemos executar o comando  push e colocar a imagem no repositório do docker  já existente.
$ sudo docker login
$ sudo docker push opt_jenkins_1
Ou podemos salvá-lo como um arquivo tar e movê-lo livremente para qualquer sistema para uma nova implantação.
$ sudo docker save -o /opt/jenkins.tar opt_jenkins_1
$ ls -l 

-rw-------  1 root    root    2753656832 Jan  8 09:36 jenkins.tar

Recuperação da imagem


Os parágrafos acima explicaram como fazer backup de um container do docker. Agora, discutiremos como recuperar essa imagem.

Para realizar a recuperação, podemos simplesmente usar o comando run, para iniciar uma nova instância a partir da imagem opt_jenkins_1.  Agora, Se quiser transferir nosso jenkins.tar que é nosso arquivo de backup para outro sistema host do docker, depois de transferi-lo, precisamos fazer load do arquivo tar no repositório de imagens local do docker.
$ sudo docker load -i /opt/jenkins.tar
Confirme se a imagem foi carregada com o comando a baixo.
$ sudo docker images
Agora podemos usar o comando docker run para iniciar uma nova instância a partir da imagem opt_jenkins_1 carregada a cima.

Qualquer duvida manda nos comentários.

Abraços a todos.

Comentários

Postagens mais visitadas deste blog

O que é Transpilação ?

A transpilação é, essencialmente, uma tradução especializada do processo de compilação. O procedimento é realizado de forma semelhante ao que um compilador faz, porém com uma diferença notável: enquanto um compilador tradicional tem como alvo um código de baixo nível, como Assembly ou código de máquina, o transpilador tem como objetivo um código-fonte em uma linguagem diferente ou a mesma linguagem escrita de outra maneira. Linguagens como CoffeeScript, TypeScript e o próprio JavaScript usam a transpilação para garantir compatibilidade entre versões. Há também outras linguagens que geram código-fonte em C em vez de código de baixo nível. Dessa forma, é possível programar em ES6 sem preocupações, mesmo que você queira oferecer suporte a navegadores antigos com versões mais antigas da especificação EcmaScript. Basta realizar a transpilação do ES6 para uma versão anterior e o código poderá ser executado em qualquer lugar. Isso se torna ainda mais fácil, já que muitas das novidades do Java

Programação Defensiva

O que é programação Defensiva? Esse tipo de programação é um particular de uma única linguagem? Será que meu código ficará mais difícil de fazer ou até mesmo difícil de ler?                Bem, essas são as perguntas que irei responder para todos vocês que tem interesse em aprender um pouco mais sobre o que é programação defensiva e como tornar essa prática comum no nosso dia a dia de trabalho. O que é programação defensiva? O conceito dessa prática é bem similar a prática de direção defensiva, claro que nem todos os leitores desse artigo sabem dirigir, porém com certeza já ouviu falar que um motorista dirige pensando em si e nos demais ao seu redor . Agora por que isso é assim ? Por que na prática um erro de um motorista ao seu redor ocasionará o seu erro, falando em palavras simples, um motorista aplicando o conceito de direção defensiva, ele sempre dirige pensando em evitar ou reduzir os efeitos da Lei Murphy, onde tentaremos evitar que aquele erro aconte

Está Recebendo Aviso JSF:1095?

Neste tópico vou mostrar como resolver o aviso JSF:1095 que fica enchendo nosso log do sistema prejudicando também o espaço  em disco do servidor. Aviso : A resposta já foi confirmada quando tentamos definir o cookie de saída para o flash? (Eita mensagem chata em?) Para resolver o problema basta aumentar o tamanho do buffer de resposta definindo o parâmetro "javax.faces.FACELETS_BUFFER_SIZE"  de contexto no seu web.xml. <! - aumente o tamanho do buffer para evitar erros do JSF1095 -> < context-param > < param-name > javax.faces.FACELETS_BUFFER_SIZE </ param-name > < param-value > 131072 </ param-value > </ context -para > Para que serve essa configuração de aumento de buffer?  Pois bem, o buffer é utilizado para reduzir a realocações de memoria no momento da renderização da página web jsf. O recomendado é aumentar para um valor que seja compatível com sua maior página, nesse caso, Você pode verificar