Docker
● An open platform for distributed applications for
developers and sysadmins
● Docker Containers as a Service (CaaS)
Máquina física vs VM vs Container
Container
● Somente o KERNEL é compartilhado com o HOST
● Não roda outro SO dentro da máquina HOST
● Os processos tem PID visíveis apenas dentro do
container (vale também para disco, usuários, rede,
etc)
● Todo esse isolamento é possível graças ao kernel
do Linux, usando features como kernel
namespaces, cgroups etc.
DOCKER
● Escrito em Go Language
● Em 2013 a Dot Cloud compartilhou a
ferramenta que utilizava para gerenciar seus
containers e o batizou de Docker.
Posteriormente a empresa adotou o nome da
ferramenta, devido ao grande sucesso da
mesma.
Criador do Docker
Solomon Hykes
Quem usa?
Iniciando com o Docker
● Atenção: Kernel 3.8+
$ uname -r
● Instalando
$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
$ service docker start
$ ps -ef | grep docker
Comandos básicos
$ docker ps
● Este comando lista as imagens que estão em execução
$ docker images
● Lista as imagens Docker disponíveis para execução
$ docker run -i -t debian:stable /bin/bash
– Os parâmetros usados neste exemplo:
●
-i container interativo
●
-t cria um pseudo-TTY para stdin e stdout
Docker Hub
● Dev-test pipeline automation, 100,000+ free
apps, public and private registries
Comandos básicos
● Para sair do bash de um container, deve
apertar a sequência CTRL + P + Q
● Para retornar ao container:
$ docker ps
$ docker attach {CONTAINER_ID}
Começando a brincadeira
● Servidor Nginx no container Docker
$ docker run -i -t -p 8080:80 debian:stable /bin/bash
root@12hghgg12g:# apt-get install nginx
root@12hghgg12g:# /etc/init.d/ngnix start
root@12hghgg12g:# ps -ef
Porta 8080 do host (máquina física)
apontando para a porta 80 do container
Alterações nas imagens Docker
● Tudo que foi feito anteriormente, caso seja
encerrado o bash (CTRL+D ou exit), será
perdido!
Commits
● Verificando as mudanças no container e
criando a sua primeira imagem
$ docker diff {{container_id}}
$ docker commit {{container_id}} nginx/debian:1.0

Primeiros passos com o Docker

  • 2.
    Docker ● An openplatform for distributed applications for developers and sysadmins ● Docker Containers as a Service (CaaS)
  • 3.
    Máquina física vsVM vs Container
  • 4.
    Container ● Somente oKERNEL é compartilhado com o HOST ● Não roda outro SO dentro da máquina HOST ● Os processos tem PID visíveis apenas dentro do container (vale também para disco, usuários, rede, etc) ● Todo esse isolamento é possível graças ao kernel do Linux, usando features como kernel namespaces, cgroups etc.
  • 5.
    DOCKER ● Escrito emGo Language ● Em 2013 a Dot Cloud compartilhou a ferramenta que utilizava para gerenciar seus containers e o batizou de Docker. Posteriormente a empresa adotou o nome da ferramenta, devido ao grande sucesso da mesma.
  • 6.
  • 7.
  • 11.
    Iniciando com oDocker ● Atenção: Kernel 3.8+ $ uname -r ● Instalando $ sudo apt-get update $ sudo apt-get install docker.io $ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker $ service docker start $ ps -ef | grep docker
  • 12.
    Comandos básicos $ dockerps ● Este comando lista as imagens que estão em execução $ docker images ● Lista as imagens Docker disponíveis para execução $ docker run -i -t debian:stable /bin/bash – Os parâmetros usados neste exemplo: ● -i container interativo ● -t cria um pseudo-TTY para stdin e stdout
  • 13.
    Docker Hub ● Dev-testpipeline automation, 100,000+ free apps, public and private registries
  • 14.
    Comandos básicos ● Parasair do bash de um container, deve apertar a sequência CTRL + P + Q ● Para retornar ao container: $ docker ps $ docker attach {CONTAINER_ID}
  • 15.
    Começando a brincadeira ●Servidor Nginx no container Docker $ docker run -i -t -p 8080:80 debian:stable /bin/bash root@12hghgg12g:# apt-get install nginx root@12hghgg12g:# /etc/init.d/ngnix start root@12hghgg12g:# ps -ef Porta 8080 do host (máquina física) apontando para a porta 80 do container
  • 16.
    Alterações nas imagensDocker ● Tudo que foi feito anteriormente, caso seja encerrado o bash (CTRL+D ou exit), será perdido!
  • 18.
    Commits ● Verificando asmudanças no container e criando a sua primeira imagem $ docker diff {{container_id}} $ docker commit {{container_id}} nginx/debian:1.0