1
resposta

Vagrant no lugar do docker machine descontinuado

Bom dia,

Segue código que utilizei no vagrant para poder fazer o curso de "Docker Swarm: Orquestrador de containers" já que no curso pedem para utilizar o docker-machine mas este foi descontinuado e não é mais possível utilizar.

Vagrantfile

$ip_manager = "10.11.12.200"

$qtd_workers = 2
$ip_workers = [
  "10.11.12.201",
  "10.11.12.202"
]

$docker = <<SCRIPT
apt-get update
apt-get install -y docker.io
systemctl start docker
systemctl enable docker
usermod -aG docker vagrant
SCRIPT

$manager = <<SCRIPT
docker swarm init --advertise-addr #{$ip_manager}
docker swarm join-token --quiet worker > /vagrant/worker_token
SCRIPT

$worker = <<SCRIPT
docker swarm join --token $(cat /vagrant/worker_token) #{$ip_manager}
SCRIPT

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"

  config.vm.provider "virtualbox" do |vb|
    vb.memory = 1024
    vb.cpus = 1
  end

  config.vm.define "manager" do |manager|
    manager.vm.network "private_network", ip: $ip_manager
    manager.vm.hostname = "manager" 

    manager.vm.provision "shell", inline: $docker
    manager.vm.provision "shell", inline: $manager

    manager.vm.provider "virtualbox" do |vb|
      vb.name = "manager"
    end
  end

  (1..$qtd_workers).each do |i|
    config.vm.define "worker0#{i}" do |worker|
      $id_ip = (i - 1)
      worker.vm.network "private_network", ip: $ip_workers[$id_ip]
      worker.vm.hostname = "worker0#{i}" 

      worker.vm.provision "shell", inline: $docker 
      worker.vm.provision "shell", inline: $worker

      worker.vm.provider "virtualbox" do |vb|
        vb.name = "worker0#{i}"
      end
    end
  end

end
1 resposta

Oi estudante, tudo bem?

Agradecemos imensamente por compartilhar essa solução no fórum! Seu código para configurar o ambiente usando o Vagrant é de grande ajuda para todos os alunos que estão enfrentando o desafio de utilizar o curso "Docker Swarm: Orquestrador de containers" sem o Docker Machine.

Sua contribuição é valiosa e mostra um verdadeiro espírito colaborativo. Compartilhar soluções alternativas como essa é fundamental para a comunidade aprender e superar obstáculos em seus projetos.

Esperamos que muitos alunos se beneficiem do seu código, assim como nós agradecemos por sua dedicação em tornar o aprendizado mais acessível e enriquecedor para todos.

Um abraço e bons estudos.