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

Como Ofuscar o Seu Código Java?

Para ofuscar e proteger seu código Java, você pode usar uma ferramenta de ofuscação. A ofuscação torna o código-fonte mais difícil de entender e reverso-engenharia, mas ainda funcionando da mesma maneira. Ppara ofuscar seu código Java usando a ferramenta popular ProGuard, s iga os passos a seguir : Baixe o ProGuard: Faça o download do ProGuard no site oficial: https://www.guardsquare.com/en/products/proguard. Descompacte o arquivo: Depois de baixar o ProGuard, descompacte o arquivo em uma pasta de sua escolha. Configure o ProGuard: Crie um arquivo de configuração chamado proguard.conf. Nele, você deve especificar os detalhes do projeto, como arquivos JAR de entrada e saída, bibliotecas e opções de ofuscação. Por exemplo: -injars       input.jar -outjars      output.jar -libraryjars  /caminho/para/jdk/jre/lib/rt.jar -printmapping mapping.txt -dontoptimize -dontshrink -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontskipnonpublicli...

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 t...