O docker machine serve somente para criar as máquinas virtuais. Então para continuar o curso, eu aproveitei do Vagrant, no primeiro curso, e criei um Vagrantfile que sobe 3VMs para mim, já configuradas com o Docker.
Basta salvar o arquivo e executar o comendo "vagrant up", lembre-se que esses comandos precisam ser executadas dentro da pasta onde o vagrantfile foi salvo.
Pronto, você terá 3 VMs para brincar com o docker swarm. As VMs são "cluster1", "cluster2" e "cluster3".
Para acessar as VMs, basta abrir o powershell e digitar vagrant ssh cluster1, por exemplo.
Eu preferi essa abordagem, pois não pretendo aprender algo que foi descontinuado e nem ficar fazendo artifícios na minha máquina para rodar um app descontinuado e sem suporte oficial.
$script_docker = <<-SCRIPT
echo "Instalar o Docker"
apt-get update
apt-get install ca-certificates curl gnupg lsb-release -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io -y
echo "Docker instalado e Configurado"
SCRIPT
Vagrant.configure("2") do |config|
config.vm.provider "virtualbox" do |vb|
vb.memory = 512
vb.cpus = 1
end
#VM do Cluster 1 do Docker
config.vm.define "cluster1" do |cluster|
cluster.vm.box = "ubuntu/bionic64"
#cluster.vm.network "forwarded_port", guest: 8888, host: 8888
cluster.vm.network "public_network", ip: "192.168.1.250"
# Instalar e configura o docker
cluster.vm.provision "shell", inline: $script_docker
end
#VM do Cluster 1 do Docker
config.vm.define "cluster2" do |cluster|
cluster.vm.box = "ubuntu/bionic64"
#cluster.vm.network "forwarded_port", guest: 8888, host: 8888
cluster.vm.network "public_network", ip: "192.168.1.251"
# Instalar e configura o docker
cluster.vm.provision "shell", inline: $script_docker
end
#VM do Cluster 1 do Docker
config.vm.define "cluster3" do |cluster|
cluster.vm.box = "ubuntu/bionic64"
#cluster.vm.network "forwarded_port", guest: 8888, host: 8888
cluster.vm.network "public_network", ip: "192.168.1.252"
# Instalar e configura o docker
cluster.vm.provision "shell", inline: $script_docker
end
end