Docker: Primeiros passos
Gestão remota de Docker rápida e segura com Stackhero for Docker
Bem-vindo à documentação da Stackhero
A Stackhero disponibiliza uma plataforma Docker cloud CaaS (Containers as a Service) pronta a usar, concebida para implementações de contentores rápidas e fiáveis:
- Implemente em produção com um simples
docker-compose up. Não é necessária qualquer configuração adicional: basta iniciar os seus contentores.- Escolha o seu próprio nome de domínio, automaticamente protegido com HTTPS (por exemplo: https://api.sua-empresa.com, https://www.sua-empresa.com ou https://backoffice.sua-empresa.com).
- Beneficie de elevado desempenho e segurança robusta numa infraestrutura privada e dedicada.
- Aplique atualizações com um clique para uma manutenção simples e sem esforço.
Pode ter os seus contentores em produção em cerca de cinco minutos. A Stackhero gere a infraestrutura, as atualizações e a segurança por si, para que se possa focar na entrega das suas aplicações. Saiba mais sobre alojamento cloud Docker CaaS.
Como utilizar o Docker CLI remotamente
O Docker CLI deve estar instalado no seu computador. Se ainda não o instalou, pode descarregá-lo no site oficial da Docker: Docker Desktop.
Com o Stackhero for Docker, pode gerir os seus contentores remotamente através do Docker CLI, tal como faria localmente. Isto permite-lhe manter o seu fluxo de trabalho habitual, mas agora pode executar comandos diretamente no seu servidor Docker pronto para produção, de forma segura e eficiente.
Os "contexts" do Docker tornam isto possível. Os contexts permitem-lhe indicar ao Docker CLI para onde enviar os seus comandos: para o seu daemon Docker local ou para a sua instância Stackhero for Docker. A mudança de context é rápida e transparente.
Instalar os certificados Docker
Para se ligar de forma segura à sua instância Stackhero for Docker, precisa de instalar os respetivos certificados no seu computador. Estes certificados garantem a autenticação e a encriptação, mantendo a sua ligação privada e protegida.
Pode utilizar o seguinte comando para descarregar e configurar os certificados:
# HOST é o nome de domínio da sua instância Docker (<XXXXXX>.stackhero-network.com).
# SERVICE_ID é o ID do seu serviço Stackhero.
# CERTIFICATES_PASSWORD é a palavra-passe definida na configuração Docker no dashboard da Stackhero.
(export HOST="<XXXXXX>.stackhero-network.com"
export SERVICE_ID="<SERVICE_ID>"
export CERTIFICATES_PASSWORD="<CERTIFICATES_PASSWORD>"
cd /tmp/ \
&& curl -o certificates.tar https://docker:$CERTIFICATES_PASSWORD@$HOST/stackhero/docker/certificates.tar \
&& tar -xf certificates.tar \
&& (docker context rm -f $HOST 2> /dev/null || true) \
&& docker context create $HOST \
--description "$SERVICE_ID ($HOST)" \
--docker "host=tcp://$HOST:2376,ca=ca.pem,cert=cert.pem,key=key.pem")
Este comando cria um context Docker com o nome do domínio do seu serviço. Pode ver todos os contexts disponíveis com:
docker context ls
Se alterar o domínio do seu serviço, os certificados serão atualizados. Terá de os reinstalar para voltar a ligar-se de forma segura.
Executar contentores Docker remotamente
Por defeito, ao executar docker ps são apresentados os contentores da sua máquina local. Por exemplo, ao executar:
docker run --rm alpine wget -q -O - ifconfig.me
será apresentado o IP público do seu computador, pois o contentor está a correr localmente.
Para trabalhar remotamente, altere o context Docker para a sua instância Stackhero for Docker:
docker context use <XXXXXX>.stackhero-network.com
A partir deste momento, todos os comandos Docker CLI serão executados no seu servidor Docker remoto. Se executar novamente o comando de verificação de IP:
docker run --rm alpine wget -q -O - ifconfig.me
será apresentado o IP público da sua instância Stackhero for Docker. Isto confirma que os seus contentores estão a correr no servidor remoto.
Para voltar ao daemon Docker local, basta executar:
docker context use default
Ao montar um volume num contentor remoto, os ficheiros disponíveis são os do servidor remoto, não os do seu computador local. Por exemplo,
docker run -it -v ${PWD}:/mnt alpineirá montar o diretório remoto, não o seu diretório local atual.
Fazer deploy com Docker Compose
O Docker Compose também utiliza o context Docker ativo. Assim que definir o context para a instância remota com:
docker context use <XXXXXX>.stackhero-network.com
todos os comandos Docker Compose que executar irão operar sobre o seu servidor remoto. Isto permite-lhe fazer deploy de aplicações multi-contentor com a mesma simplicidade de trabalhar localmente, mas agora diretamente no seu ambiente de produção.
Alterar de context com
docker contexté útil para utilização interativa. Para scripts ou Makefiles, a variável de ambienteDOCKER_CONTEXToferece-lhe mais controlo. Pode encontrar mais detalhes na nossa documentação avançada.
Para saber mais sobre contexts Docker, consulte a documentação oficial Docker sobre contexts.