Modificando e distribuindo “máquinas” Docker

Standard

Como relatei nesse artigo, um dos objetivos do Docker é sua facilidade para distribuição de imagens/”máquinas”, mantendo a sua portabilidade e simplicidade

Nesse texto, vou demonstrar como podemos modificar as imagens, que muitos chamam de máquina, e então distribuir via nuvem pública do Docker.

docker-whales-transparent

Iniciando a máquina

Para modificar uma imagem, precisamos que ela seja iniciada e então teremos a camada que chamados de container. Que é onde as mudanças são aplicadas. Para iniciar a “máquina” usa-se o comando abaixo:

# docker run -d -p 80:80 nginx

Agora vamos obter o número de identificação do container com o comando abaixo:

# docker ps

Modifique a máquina

Execute as modificações que deseja nessa “máquina”. Com o comando abaixo é possível acessar o shell da máquina recém iniciada.

# docker exec -it <id do container> bash

Verifique o que mudou

Para verificar quais arquivos de fato foram modificados nesse container. Execute o comando abaixo:

# docker diff <id do container>

Aplique a mudança

Agora que tem certeza sobre a mudança que será feita. Vamos criar uma nova imagem com base no estado desse container com o comando abaixo:

# docker commit <id do container> gomex/nginx-modificado

Atente que o termo “gomex” é meu usuário previamente registrado na nuvem pública do Docker. E tudo que vem depois da “/” é o nome da imagem que desejo criar. Com o comando abaixo será possível conferir que a máquina informada foi criada:

# docker images

Compartilhe

Agora vamos disponibilizar essa imagem para que outras pessoas possam baixar e usufruir da sua colaboração. Para isso usa-se o comando abaixo:

# docker push gomex/nginx-modificado

Acesse a nuvem pública do Docker e verá que sua imagem estará disponível para quem quiser baixar.

Docker facilitando o trabalho colaborativo.

Docker facilitando o trabalho colaborativo.

Pronto! Por hoje é só 🙂 Aguardem novas postagens sobre o Docker.

  • Marlon

    Obrigado, por compartilhamento. Objetivo e direto, muito interessante, principalmente para ambientes de teste e estudo, vou acompanhar os próximos capitulos.

    • Gomex

      Obrigado Marlon! Fico feliz que tenha gostado! Fique ligado, pois vem mais postagem sobre Docker por ae 🙂

  • Erisson Correia da Silva

    Muito dez! Mas gostaria de saber como fazer o deploy em uma nuvem, como por exemplo no Amazon.

    Saudações.

    • Gomex

      Cada nuvem tem sua forma de fazer deploy. Infelizmente eu não sei como faz no caso da Amazon.

      Deve ter algo sobre o assunto aqui :

      http://aws.amazon.com/pt/ecs/

    • Giancarlo Rubio

      Utilize o elastic beanstalk!