Sign inSign up

fernandosilva/docker-remote-api-tls

By fernandosilva

•Updated almost 7 years ago

Imagem Docker para habilitar API remota do Docker com autenticação de client TLS

Image
0

978

fernandosilva/docker-remote-api-tls repository overview

⁠API remota do Docker com autenticação de client TLS por meio do container

Essa imagem publica a API do Docker Remote por um container. Um client Docker deve autenticar com um certificado de client-TLS. Essa é uma maneira alternativa (mais fácil e igualmente eficaz), em vez de configurar o TLS no Docker diretamente⁠.

⁠Api Remota com geração automática de CA, certificados e chaves

A imagem docker-remote-api-tls gera CA, certificados e chaves automaticamente. Crie um arquivo docker-compose.yml, especificando uma senha e o nome do host, no qual a API remota será acessível posteriormente. O nome do host será gravado no certificado do servidor.

version: "3.4"
services:
  remote-api:
    image: fernandosilva/docker-remote-api-tls
    ports:
     - 2376:443
    environment:
     - CREATE_CERTS_WITH_PW=supersenha
     - CERT_HOSTNAME=remote-api.example.com
    volumes:
     - <local cert dir>:/data/certs
     - /var/run/docker.sock:/var/run/docker.sock:ro

Agora, execute o container com o docker-compose up -d ou docker stack deploy --compose-file=docker-compose.yml remoteapidocker. Obs.: Para usar docker stack o docker swarm deve ser inciado, se o mesmo ainda não estiver, basta executar: docker swarm init --advertise-addr ip_da_instancia. Certificados serão criados em <local cert dir>. Você encontrará os certificados de client em <local cert dir> /client/. Os arquivos são ca.pem, cert.pem e key.pem.

⁠Utilização do client Docker

Se você não tiver uma instalação local do Docker, precisará fazer o download do client Docker, que é um executável simples. Você encontra o client Docker para Linux, MacOS e Windows em download.docker.com⁠.

⁠Criar alias (para Linux)

Alias para conexão HTTPS com host Docker: alias dockerhost="docker --tlsverify -H=myserver.example.com:2376 --tlscacert=/home/user/cert/ca.pem --tlscert=/home/user/cert/cert.pem --tlskey=/home/user/cert/key.pem"

⁠Criar .bat (para Windows)

Crie um arquivo "dockerhost.bat". Para conexão HTTPS com host Docker: alias dockerhost="docker --tlsverify -H=myserver.example.com:2376 --tlscacert=/home/user/cert/ca.pem --tlscert=/home/user/cert/cert.pem --tlskey=/home/user/cert/key.pem"

Obs.: Esta solução se baseou em alguns scripts criados por @kekru em kekru/docker-remote-api-tls ⁠.

Tag summary

Content type

Image

Digest

Size

7 MB

Last updated

almost 7 years ago

docker pull fernandosilva/docker-remote-api-tls