Instalando o Docker
O Docker pode ser instalado no Ubuntu seguindo o seguinte tutorial:
https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/
Para instalá-lo em outras distribuições GNU/Linux acesse o link abaixo.
https://docs.docker.com/engine/installation/
Iniciando o Swarm (Cluster Docker)
O swarm já é instalado junto com o Docker. Inicie o swarm com o comando abaixo.
docker swarm init --advertise-addr IP_SERVIDOR
A variável IP_SERVIDOR deve ser trocada pelo endereço IP do host no qual o tutorial está sendo executado. Ao iniciar o swarm, ele usará o host como sendo o primeiro node manager do cluster Docker.
Saiba mais sobre o docker Swarm em: https://docs.docker.com/engine/swarm/
Iniciando o Docker Registry
Inicie o conteiner que contém o Registry com os comandos abaixo:
mkdir -p /opt/docker/registry/data mkdir -p /opt/docker/certs
Copie ou crie o certificado e chave privada para /opt/docker/certs. A parte de criação do certificado não será mostrada nesse tutorial. Hipoteticamente o nome dos arquivos será dockerregistry.crt (para o certificado) e dockerregistry.key (para a chave privada do certificado).
Baixe a imagem do Docker Registry.
docker pull registry:2
Inicie o conteiner do Docker Registry.
docker run -d --name registry \ -p 5000:5000 \ --restart=always \ -v /opt/docker/certs:/certs \ -v /opt/docker/registry/data:/var/lib/registry \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/dockerregistry.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/dockerregistry.key \ registry:2
Usando os comandos acima, o conteiner do Registry será iniciado como serviço. Mesmo que o conteiner pare, ele será reiniciado.
Como no conteiner, os dados são perdidos quando o mesmo é removido, os dados do Registry serão persistidos no host storage no diretório /opt/docker/registry/data. Os dados do certificado serão persistidos em /opt/docker/certs.
O Docker Registry é uma alternativa ao Docker Hub para hospedagem de imagens privadas de forma gratuita. Saiba mais sobre o Registry em: https://docs.docker.com/registry/deploying/
O registry ficará acessível em: https://ip-servidor:5000/
Iniciando o Portainer (Interface Web para o Docker)
Inicie o conteiner que contém a interface web para o Docker com os comandos abaixo:
mkdir -p /opt/docker/portainer/data
docker pull portainer/portainer
Portainer com HTTPS (recomendado):
docker service create --name portainer \ --publish 9000:9000 \ --constraint 'node.role == manager' \ --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \ --mount type=bind,src=/opt/docker/portainer/data,dst=/data \ --mount type=bind,src=/opt/docker/certs,dst=/certs \ portainer/portainer \ -H unix:///var/run/docker.sock \ --ssl --sslcert=/certs/dockerregistry.crt \ --sslkey=/certs/dockerregistry.key
Portainer com HTTP (não recomendado):
docker service create --name portainer \ --publish 9000:9000 \ --constraint 'node.role == manager' \ --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \ --mount type=bind,src=/opt/docker/portainer/data,dst=/data \ portainer/portainer \ -H unix:///var/run/docker.sock
Usando os comandos acima, o conteiner do Portainer será iniciado como serviço. Mesmo que o conteiner pare, ele será reiniciado.
Como no conteiner, os dados são perdidos quando o mesmo é removido, os dados do Portainer serão persistidos no host storage no diretório /opt/docker/portainer/data. Saiba mais sobre o Portainer em: http://portainer.io
O portainer ficará acessível em: https://ip-servidor:9000/ (com HTTPS) ou http://ip-servidor:9000/ (com HTTP)