Difference between revisions of "Docker"

From VeRLab Wiki
Jump to: navigation, search
(Instruções para rodar docker manualmente na homeLocal)
Line 1: Line 1:
Importante: para estas configurações é necessário que a máquina tenha um docker instalado com versão >= 20.10
+
==Instalação==
  
Configuração inicial
+
'''Importante''': para estas configurações é necessário que a máquina tenha um docker instalado com versão >= 20.10
  
# Crie a pasta ~/.config/docker com mkdir -p ~/.config/docker.
+
Este processo ainda se encontra em uma fase experimental e não está disponível em todas as máquinas. As máquinas disponíveis com docker até o momento são '''PROC6''', '''PROC7''', '''EVA''' e '''DALEK'''.
  
 +
===Configuração inicial===
 +
Para utilizar docker em uma máquina no laboratório é preciso que o usuário:
 +
- solicite à equipe de rede para criar uma pasta na /homeLocal/nome_do_usuario e dar permissão de leitura/escrita.
 +
- solicite à equipe de rede a instalação do docker na máquina.
 +
 +
Feito estas etapas, para configurar o acesso na máquina é preciso seguir os seguintes passos para executar o docker rootless:
 +
 +
# Crie a pasta <code>~/.config/docker</code> com o comando <code>mkdir -p ~/.config/docker</code>.
 
# Altere a pasta de armazenamento do Docker para a /homeLocal com:
 
# Altere a pasta de armazenamento do Docker para a /homeLocal com:
  
echo '{"data-root":"/homeLocal/user/docker"}' | tee ~/.config/docker/daemon.json.
+
<code>echo '{"data-root":"/homeLocal/<user>/docker"}' | tee ~/.config/docker/daemon.json</code>
  
Importante: Lembre-se de trocar o /user para alguma pasta sua.
+
'''Importante:''' Lembre-se de trocar o /<user> para alguma pasta sua.
  
 
Esses dois primeiros passos são específicos para as máquinas do VeRLab: por padrão o Docker guarda arquivos na /home do usuário, mas essa pasta é compartilhada por NFS e o Docker não dá suporte a isso.[https://github.com/docker/for-linux/issues/1172 Aqui está um issue citando o problema]
 
Esses dois primeiros passos são específicos para as máquinas do VeRLab: por padrão o Docker guarda arquivos na /home do usuário, mas essa pasta é compartilhada por NFS e o Docker não dá suporte a isso.[https://github.com/docker/for-linux/issues/1172 Aqui está um issue citando o problema]
  
 
# Execute dockerd-rootless-setuptool.sh install.
 
# Execute dockerd-rootless-setuptool.sh install.
Importante: Após terminar, o comando vai pedir que você altere seu .bashrc para adicionar uma linha semelhante a export DOCKER_HOST=unix:///run/user/<uid>/docker.sock (varia por usuário). Faça essa alteração antes de prosseguir copiando e colando o comando no terminal.
+
Importante: Após terminar, o comando vai pedir que você altere seu .bashrc para adicionar uma linha semelhante a <code>export DOCKER_HOST=unix:///run/user/<uid>/docker.sock</code> (varia por usuário). Faça essa alteração antes de prosseguir copiando e colando o comando no terminal.
 +
# Reinicie o Bash com <code>exec bash</code>.
 +
# Ative a inicialização automática do Docker: <code>systemctl --user enable --now docker</code> ou manualmente: <code>systemctl --user start docker</code>
 +
 
 +
Com isso, a configuração está pronta. Confirme que o Docker está funciona com <code>docker run hello-world</code> ou <code>docker version</code>.
  
# Reinicie o Bash com exec bash.
+
==Problemas com a instalação na máquina==
 +
Caso mesmo após estes passos o docker apresente problemas, pode ser necessário realizar a configuração de modo a executar ele manualmente direcionado para a sua pasta na /homeLocal. Para isso é preciso é preciso:
 +
# Criar uma pasta na /homeLocal do usuário que será usada pelo runtime do dockerd-rootless, executando:<br>
 +
<code>mkdir /homeLocal/<ususer>/.docker</code><br>
 +
<code>mkdir /homeLocal/<ususer>/.docker/run</code>
 +
#Após isso é preciso criar as variaveis de ambiente no ~/.bashrc para XDG_RUNTIME_DIR e DOCKER_HOST.
 +
<code>export XDG_RUNTIME_DIR=/homeLocal/mauferrari/.docker/run</code>
 +
<code>export DOCKER_HOST=unix:///homeLocal/mauferrari/.docker/run/docker.sock</code>
  
# Ative a inicialização automática do Docker: systemctl --user enable --now docker ou manualmente: systemctl --user start docker
+
A partir deste ponto, enquanto quiser executar o docker, é preciso deixar uma janela excutando o bash script <code>dockerd-rootless.sh</code>. Para isso abra uma janela do tmux ou byobu, e execute:
 +
<code>bash dockerd-rootless.sh</code>
  
Com isso, a configuração está pronta. Confirme que o Docker está funciona com docker run hello-world
+
Em outro terminal, é possível verificar a instalação executando <code>docker run hello-world</code> ou <code>docker version</code>.

Revision as of 01:15, 24 May 2024

Instalação

Importante: para estas configurações é necessário que a máquina tenha um docker instalado com versão >= 20.10

Este processo ainda se encontra em uma fase experimental e não está disponível em todas as máquinas. As máquinas disponíveis com docker até o momento são PROC6, PROC7, EVA e DALEK.

Configuração inicial

Para utilizar docker em uma máquina no laboratório é preciso que o usuário: - solicite à equipe de rede para criar uma pasta na /homeLocal/nome_do_usuario e dar permissão de leitura/escrita. - solicite à equipe de rede a instalação do docker na máquina.

Feito estas etapas, para configurar o acesso na máquina é preciso seguir os seguintes passos para executar o docker rootless:

  1. Crie a pasta ~/.config/docker com o comando mkdir -p ~/.config/docker.
  2. Altere a pasta de armazenamento do Docker para a /homeLocal com:

echo '{"data-root":"/homeLocal/<user>/docker"}' | tee ~/.config/docker/daemon.json

Importante: Lembre-se de trocar o /<user> para alguma pasta sua.

Esses dois primeiros passos são específicos para as máquinas do VeRLab: por padrão o Docker guarda arquivos na /home do usuário, mas essa pasta é compartilhada por NFS e o Docker não dá suporte a isso.Aqui está um issue citando o problema

  1. Execute dockerd-rootless-setuptool.sh install.

Importante: Após terminar, o comando vai pedir que você altere seu .bashrc para adicionar uma linha semelhante a export DOCKER_HOST=unix:///run/user/<uid>/docker.sock (varia por usuário). Faça essa alteração antes de prosseguir copiando e colando o comando no terminal.

  1. Reinicie o Bash com exec bash.
  2. Ative a inicialização automática do Docker: systemctl --user enable --now docker ou manualmente: systemctl --user start docker

Com isso, a configuração está pronta. Confirme que o Docker está funciona com docker run hello-world ou docker version.

Problemas com a instalação na máquina

Caso mesmo após estes passos o docker apresente problemas, pode ser necessário realizar a configuração de modo a executar ele manualmente direcionado para a sua pasta na /homeLocal. Para isso é preciso é preciso:

  1. Criar uma pasta na /homeLocal do usuário que será usada pelo runtime do dockerd-rootless, executando:

mkdir /homeLocal/<ususer>/.docker
mkdir /homeLocal/<ususer>/.docker/run

  1. Após isso é preciso criar as variaveis de ambiente no ~/.bashrc para XDG_RUNTIME_DIR e DOCKER_HOST.

export XDG_RUNTIME_DIR=/homeLocal/mauferrari/.docker/run export DOCKER_HOST=unix:///homeLocal/mauferrari/.docker/run/docker.sock

A partir deste ponto, enquanto quiser executar o docker, é preciso deixar uma janela excutando o bash script dockerd-rootless.sh. Para isso abra uma janela do tmux ou byobu, e execute: bash dockerd-rootless.sh

Em outro terminal, é possível verificar a instalação executando docker run hello-world ou docker version.