sexta-feira, 14 de abril de 2017

Rodando Docker sem sudo

Quando instalamos o docker, o nosso usuário não fica automaticamente habilitado para rodar o docker sem utilização do comando sudo. Isto acontece porque o daemon do docker sempre é executado como o usuário root. Desde docker versão 0.5.2, o daemon docker se liga a um socket Unix em vez de uma porta TCP. Por padrão, esse socket Unix é propriedade da usuário root e, portanto, por padrão, você pode acessá-lo com o sudo. Se você tentar rodar terá o seguinte erro:


A partir da versão 0.5.3, se você criar um grupo Unix chamado docker e adicionar usuários a ele, então o daemon do docker fará com que o grupo tenha acesso de leitura e escrita neste socket Unix quando o daemon for iniciado .

O daemon do docker deve sempre ser executado como o usuário root, mas se você executar o cliente docker como um usuário no grupo do docker, então você não precisa adicionar o sudo a todos os comandos do cliente.

Então como fazer para rodar. Os passos são:

  1. adicionar o grupo docker, caso ele ainda não exista (no meu caso ele já existe)
  2. adicionar o seu usuário (e qualquer outro que você queira) ao grupo do docker
  3. reiniciar o daemon: no meu caso o processo chama docker, mas em algumas versões de SO o nome é docker.io.


Você precisa carregar nas configurações de seu usuário o novo grupo. Você pode: (1) fazer log out e entrar novamente ou (2) usar o comando "newgrp docker" para carregar estas configurações. No meu exemplo abaixo eu usei a segunda opção. Com isto agora meu usuário consegue carregar o hello-world sem utilizar o sudo.


quarta-feira, 1 de março de 2017

Docker e Java

Normalmente eu preciso utilizar o java. Meu sistema operacional preferido é o Ubuntu, mas na Universidade o sistema operacional apesar de ser linux, não é o Ubuntu. A utilização do Docker é ideal neste caso, pois posso utilizar meu ambiente favorito, não necessário um ambiente de virtualização na estação que estou utilizando, bastando ter o docker instalado e meu usuário no grupo docker.

Um jeito de automatizar o processo é utilizar um dockerfile e criar um docker local usando o comando docker build. Se você quiser ter mais informações leia a documentação no site do docker em https://docs.docker.com/engine/reference/builder/.

Vamos então a instalação e criação de um docker com java 9.
São dois passos:

  1. Instale o docker no seu computador
  2. Rode o comando docker build github.com/h3dema/ubuntu_java
Vá tomar um café pois demora um pouco. Será feito o download do programa e seu docker será criado.

Pronto!



PS: Hoje (29/05/2017) este procedimento não está funcionando mais. A Oracle retirou do ar o site java.net que era onde era baixado o JDK. Assim que o pessoal do webupd8 atualizar o script, eu indico aqui também.


terça-feira, 3 de janeiro de 2017

Java 9 terminou os testes de unidade

O Java 9 está começando a sair do forno. Agora em dezembro o desenvolvimento alcançou a marca de "Recurso Completo", ou seja, todos os recursos foram implementados e integrados na floresta principal do Java, inclusive sendo feitos os testes de unidade.
A lista de recursos do JDK 9 incluídos no JDK 9 Early Access Downloads pode ser encontrada na página do Projeto JDK 9.

Para instalação no Ubuntu (funciona em outras variantes do Debian também) basta seguir os passos em um terminal:

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java9-installer

Se você quiser configurar o Oracle Java 9 como padrão, não importa quais outras versões Java estejam instaladas, certifique-se de instalar o pacote oracle-java9-set-default, digitando no terminal:

$sudo apt-get install oracle-java9-set-default

Note que ainda é um release recente para testes.
Não deve ser utilizado hoje em um ambiente de produção!