primeiros passos com o docker

18

Upload: websix

Post on 15-Feb-2017

423 views

Category:

Technology


2 download

TRANSCRIPT

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