Docker + Portainer + Zeppelin (pt-br)

Jeison C. | Sep 13, 2019 min read

Instalando o docker

sudo apt install docker.io

cria um usergroup docker e colocar o usuário atual nele. Mas ao tentar rodar pode aparecer urescuem erro de permissão. Pois o mecanismo o qual adicionar o usuário ao grupo docker garante permissão para rodar o docker com acesso ao socket do docker no /var/run/docker.sock. Se o sistema de arquivos que contêm /var/run foi montado com ACLs ativo (meu caso), isso deve ser feito via ACLs.

sudo setfacl -m user:$USER:rw /var/run/docker.sock

Alterando a pasta padrão do docker (Opcional)

Como desejo utilizar o docker, como base para testes de desenvolvimento, e sei que precisarei de mais espaço em disco. Vou alterar a pasta padrão para que utilize outro caminho dedicado somente a isso. Podendo ser uma unidade de disco separada por exemplo.

Criando a unidade

mkdir /docker
mkdir /docker/docker_var

Criando a configuração personalizada

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/docker-storage.conf

Para docker versões anteriores a 17.06-ce cole:

[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd:// --graph="/docker/docker_var"

para o docker em versões posteriores a 17.06-ce cole:

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --data-root="/docker/docker_var"

Reinicie os serviços para ver se a configuração funcionou

sudo systemctl daemon-reload
sudo systemctl restart docker

Para confirmar a configuração:

docker info|grep "loop file"

Saida esperada:

Data loop file: /docker/docker_var/devicemapper/devicemapper/data
Metadata loop file: /docker/docker_var/devicemapper/devicemapper/metadata

Em versões recente (17.03) o comando é diferente:

docker info|grep "Docker Root Dir"

Saida esperada:

Docker Root Dir: /docker/docker_var

Agora você pode apagar de forma segura o armazenamento antigo do Docker:

rm -rf /var/lib/docker

Portainer, gerenciando os containers

Para facilitar o gerenciamento dos containter, utilizo o portainer Instalando:

docker volume create portainer_data
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

Ao acessar a primeira vez o localhost:9000 irá lhe solicitar a criação de usuário e senha. Agora já pode fazer grande parte do gerenciamento diretamente da interface web.

Instalando o Zeppelin

docker run -p 8080:8080 --rm -v $PWD/logs:/logs -v $PWD/notebook:/notebook -e ZEPPELIN_LOG_DIR='/logs' -e ZEPPELIN_NOTEBOOK_DIR='/notebook' --name zeppelin apache/zeppelin:0.8.0Objetivo é ter uma instalação funcional e gerenciável do Zeppelin no ubuntu.

Referências: