Docker sem sudo no Ubuntu 18.04

- 2 minutos para ler

Tenho o costume de usar o docker para algo mais inusitado que o normal: Criar comandos para coisas que não quero instalar no computador. Como assim? Um exemplo foi o dotnet que queria não ter instalado, mas queria o comando para criar meus projetos em .NET Core. E então eu crio um shell script chamado dotnet, coloco em um diretório /bin e não preciso mais me preocupar se esta instalado ou não! Veja o exemplo do script abaixo:

#/bin/sh

docker run --rm -ti -v $PWD:/app --link=mysql-server lpsouza/dotnet dotnet $*

Só com esse script eu posso rodar o dotnet sem ele! :-)

Ok, aí temos o problema do sudo que deveria ser rodado sempre para que meu script rodasse o Docker. Então para isso resolvi procurar na internet se posso usar meu usuário local para utilizar o Docker sem precisar do sudo e não é que dá mesmo? Segue a receita de bolo abaixo.

Receita de bolo

  1. (Se não existir) crie um grupo para o Docker:
     sudo groupadd docker
    
  2. Adicione o seu usuário no grupo:
     `sudo usermod -aG docker $USER`
    
  3. Faça o logoff do usuário e o login novamente
  4. Faça o teste (né?) com o comando:
     `docker run hello-world`
    
    • Caso apareça o erro WARNING: Error loading config file: /home/user/.docker/config.json - stat /home/user/.docker/config.json: permission denied é possível que você já tenha utilizado alguma vez o Docker com este usuário, usando o sudo. Se for este o caso, use estes comandos:
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R

Esta receita eu peguei na página da documentação do Docker e ela termina aqui dizendo que tudo funciona! Mas não foi o caso para mim! Então continuou com erro de acesso, como se precisasse usar o sudo para rodar o comando do Docker. Achei a solução em um post do AskUbuntu que se resume em rodar mais um comando:

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

Agora sim! Tudo funcional! :-D

Luiz Pereira de Souza Filho

Luiz Pereira de Souza Filho

Absorvendo a cultura devops desde 1997! Formado em Segurança da Informação pela UNISINOS, consultor em Cloud Computing, programador Web-Mobile e gamer casual! Trabalha atualmente como Cloud Engineer na Umbler e como professor no curso técnico em informática na IENH.

comentários do Disqus
rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora