Partindo da premissa que o novo ambiente(VM) na nuvem já esteja configurado com Docker e Docker Compose, siga as regras de acesso para acesso SSH para que os arquivos possam ser copiados.
Certifique-se de ter backups adequados de todos os dados e configurações antes da migração.
Subir o docker-compose na nova VM:
Certifique-se de que você tenha o arquivo do diploma docker-compose.yml na nova VM.
Obs: É necessário que seja a mesma versão de ambos serviços que rodam atualmente na sua infraestrutura.
docker-compose –f docker-compose.yml up -d
Migrar os dados dos volumes:
Execute os passos para exportar e importar os volumes.
docker run --rm -v postgresql-data:/volume -v $(pwd):/backup ubuntu tar cvf /backup/postgresql-data.tar /volume
docker run --rm -v rapconector-data:/volume -v $(pwd):/backup ubuntu tar cvf /backup/rapconector data.tar /volume
scp postgresql-data.tar user@nova-vm:/path/to/backup
scp rapconector-data.tar user@nova-vm:/path/to/backup
docker run --rm -v postgresql-data:/volume -v /path/to/backup:/backup ubuntu bash -c "cd /volume && tar xvf /backup/postgresql-data.tar --strip 1"
docker run --rm -v rapconector-data:/volume -v /path/to/backup:/backup ubuntu bash -c "cd /volume && tar xvf /backup/rapconector-data.tar --strip 1"
Verificar variáveis de ambiente e configurações:
Certifique-se de que todas as variáveis de ambiente e configurações no docker-compose.yml estão corretas e compatíveis com a nova VM.
Comandos para Exportar Volumes
Exportar volumes na VM antiga:
docker run --rm -v postgresql-data:/volume -v $(pwd):/backup ubuntu tar cvf /backup/postgresql-data.tar /volume
Explicação:
● docker run --rm: Cria e executa um novo container temporário que é removido após a execução.
● -v postgresql-data:/volume: Monta o volume postgresql-data do Docker no caminho /volume dentro do container.
● -v $(pwd):/backup: Monta o diretório atual do host (diretório de trabalho atual) no caminho /backup dentro do container.
● ubuntu: Usa a imagem ubuntu para criar o container.
● tar cvf /backup/postgresql-data.tar /volume: Executa o comando tar dentro do container para criar um arquivo tar (postgresql-data.tar) contendo o conteúdo do volume /volume.
Este comando cria um arquivo tar com os dados do volume postgresql-data.
Transferir os arquivos para a nova VM (executado localmente):
scp postgresql-data.tar user@nova-vm:/path/to/backup
scp rapconector-data.tar user@nova-vm:/path/to/backup
Explicação:
● scp: Comando de cópia segura que transfere arquivos entre hosts em uma rede.
● postgresql-data.tar: Arquivo a ser transferido.
● user@new-vm:/path/to/backup: Destino na nova VM onde o arquivo será copiado. Substitua user pelo nome do usuário e new-vm pelo endereço da nova VM.
Importar volumes na nova VM:
docker run --rm -v postgresql-data:/volume -v /path/to/backup:/backup ubuntu bash -c "cd /volume && tar xvf /backup/postgresql-data.tar --strip 1"
Explicação:
● docker run --rm: Cria e executa um novo container temporário que é removido após a execução.
● -v postgresql-data:/volume: Monta o volume postgresql-data do Docker no caminho /volume dentro do container.
● -v /path/to/backup:/backup: Monta o diretório onde o arquivo tar foi transferido no caminho /backup dentro do container.
● ubuntu bash -c "cd /volume && tar xvf /backup/postgresql-data.tar --strip 1": Usa a imagem ubuntu para criar o container e executa o comando tar dentro do container para extrair o conteúdo do arquivo tar no volume /volume.
Este comando extrai o conteúdo do arquivo tar no volume postgresql-data.