Infraestrutura

Nos últimos meses eu precisei entender melhor como configurar um container e precisava de acesso irrestrito a ele, como se estivesse trabalhando em um host comum. A necessidade era testar configurações, customizações e mudanças nos scripts para poder escrever um DockerFile completo.

Meu dilema era composto pela necessidade de usar uma receita incomum. No meu caso precisava de um PHP com diversos plugins, mas:

  • Ao invés de usar CentOS, usaria Ubuntu Server
  • Ao invés de usar Apache, usaria Nginx
  • Ao invés de instalar o Nginx via Apt-Get, compilaria-o para adicionar o Google PageSpeed Module, entre outras extensões.
  • Ao invés do MySQL, MariaDB
  • Ao invés do PHP normal, usaria via FastCGI

Na prática, com o que eu queria não há dockerfile pronto. Pelo menos eu vasculhei por dias o google e não consegui achar um DockerFile que me atendesse. Assim, decidi criar meu próprio DockerFile, mas para isso precisava configurar tudo isso manualmente, para validar comando a comando, então, acesso irrestrito como em um host, seria a alternativa mais interessante. Daí nasceu esse DockerFile que ajuda no desenvolvimento de novas imagens.

O DockerFile que disponibilizo aqui cria uma imagem com:

  • OpenSSHServer
  • Configuração da senha do root via parâmetro
  • Usuário root pode logar via SSH
  • Webmin
  • htop
  • nano

[box type=”warning”] Este DockerFile não deve ser utilizado para a criação de ambientes de produção. Nenhuma das configurações realizadas neste script são recomendadas por profissionais de infraestrutura e segurança. Todas as configurações realizadas irão expor e deixar o seu container vulnerável. [/box]

Forma de usar:

Subindo uma instância

Dropando a instância

Acessando

Via putty, você consegue acessar o container no endereço do host, na porta 10022, enquanto o webmin é acessado via browser, usando https na porta 10001. Com os 2 você tem acesso completo e fácil ao seu container, como se estivesse em um host.

Conclusão

Essa estratégia pode parecer surreal para quem está a par de todos os steps necessários para garantir performance, qualidade e controle sob seu container, no entanto, sob minha ótica própria, preciso de acesso irrestrito para adquirir tal know how e segurança nesses procedimentos. Executar ferramentas como Nano, Htop e Speedometer exigem por exemplo um bash completo. Em adição o Webmin ajuda com uma visão intuitiva sobre cada recurso, facilitando a busca por diretórios de instalação/compilação, análise imediata sobre Disco, Memória e CPU, bem como pacotes instalados e updates necessários. Para um ambiente de desenvolvimento, essas informações são muito relevantes para garantir performance e qualidade no desenvolvimento para containers. Todo esse controle fica muito mais evidente quando se está num ambiente windows, e seu host remoto, por exemplo. Outro aspecto pouco falado, é que as imagens para Docker possuem ligeiras diferenças das imagens padrão de cada SO. Essas diferenças são mais perceptíveis nos repositórios de dependências e kernel.

Mas repito, embora seja útil para desenvolver, a intenção é ajudar desenvolvedores na criação de seus próprios DockerFiles, por isso faz sentido você criar e dropar os containers, com suas imagens.

Espero ter ajudado!

Comente, compartilhe, curta!

Logo abaixo desse texto você encontra os Posts Relacionados, e botões de compartilhamento, em seguida a sessão de comentários!

Gostou? Então aproveite para curtir, compartilhar e enviar comentários, dúvidas ou sugestões.

Conheça o Grupo Arquitetura de Softwate | .NET: Facebook e Telegram
Luiz Carlos Faria: Site, Youtube, Facebook, Twitter, Telegram, Linkedin e Email