Docker no Ubuntu

Introdução

O objetivo desse post é aprender a utilização do Docker no Ubuntu.

Instalação

Verificar versão do Kernel

Esse comando serve para validar a versão do Kernel. Esta versão deverá ser superior a 3.8.

# uname -r

Instalando o Docker

# curl -sSL https://get.docker.com | sh

Subindo o Docker

# /etc/init.d/docker start

Verificando se o Docker está no ar

# docker ps

Ou

# ps -ef | grep docker

Rodando uma imagem

Verificando as imagens

# docker images

Rodando e instalando o Ubuntu

Rodando o comando abaixo, na primeira vez, será baixado o Ubuntu, na versão informada.

# docker run -i -t ubuntu:17.10 /bin/bash

Ao final do processo, o Container será iniciado, sendo possível verificar que mudou o prompt do console.

Exemplo: root@6d9436afdb02:/#

Matando o Container

# CTRL + d

ATENÇÃO: Esse comando fará com que o Container encerre. Não será mais possível executá-lo. Quaiques modificações e/ou instalações serão PERDIDAS!

Sair do Container sem encerrar.

root@6d9436afdb02:/# CTRL + p + q (control + p + q)

# docker ps (verifique que o processo continua rodando)

Voltando para o Container

# docker ps

# docker attach [[CONTAINER_ID]]

Exemplo:

root@CCE:/home/fernando# docker attach 6d9436afdb02
root@6d9436afdb02:/#

Instalando ferramentas / aplicativos

NGinx

  • Crie o Container – # docker run -i -t -p 8080:80 ubuntu:17.10 /bin/bash
    • Redirecionando a porta 8080 fora do Container, na porta 80 (dentro do Container)
  • Instale o NGinx – # apt-get install nginx
    • Caso falhe – # apt-get update
  • /etc/init.d/nginx start
  • Abra um navegador e digite: http://localhost:8080

Verificando instalações efetuadas no Container

Fora do Container, digite

# docker diff [[CONTAINER_ID]]

Salvando o Container modificado

Podemos gerar uma imagem, fazendo o commit.

# docker commit [[CONTAINER_ID]] [[NOME_DA_IMAGEM:[[VERSAO]]

Exemplo:

# docker commit bae5725fbdc2 nginx-ubuntu:1.0

# docker images

Subindo novo Container com base na imagem

# docker run -i -t -p 6660:80 nginx-ubuntu:1.0 /bin/bash

Agora, temos 2 containers respondendo na porta 8080 e 6660.

Parando um Container fora dele

# docker stop [[CONTAINER_ID]]

Rodando comandos fora do container

Preparação

# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE
badtux/nginx-ubuntu 1.0 004a02a614ec 22 hours ago 192MB
ubuntu 17.10 26d147d2310f 25 hours ago 96.6MB

# docker run -ti -p 8080:80 badtux/nginx-ubuntu:1.0 /bin/bash

# /etc/init.d/nginx start

# CTRL + p + q

# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c0907ccd5120 badtux/nginx-ubuntu:1.0 “/bin/bash” 49 seconds ago Up 46 seconds 0.0.0.0:8080->80/tcp friendly_heisenb

# docker exec c0907ccd5120 ps -ef

UID PID PPID C STIME TTY TIME CMD
root 1 0 0 22:13 ? 00:00:00 /bin/bash
root 31 1 0 22:13 ? 00:00:00 nginx: master process /usr/sbin/nginx
www-data 32 31 0 22:13 ? 00:00:00 nginx: worker process
www-data 33 31 0 22:13 ? 00:00:00 nginx: worker process
www-data 34 31 0 22:13 ? 00:00:00 nginx: worker process
www-data 35 31 0 22:13 ? 00:00:00 nginx: worker process
root 38 0 0 22:14 ? 00:00:00 ps -ef

# docker exec c0907ccd5120 /etc/init.d/nginx stop

Verificando as informações do Container

# docker inspect c0907ccd5120

Mostra uma série de informações como o IP do Container, Porta do Container, quando foi criado, etc.

#docker stats

Mostra um resumo do Container em relação a consumo de CPU, Memória e Rede.

# docker stop c0907ccd5120

# docker ps

# docker start c0907ccd5120

# docker rm c0907ccd5120 (ATENÇÃO: remove o Container e não será possível utilizá-lo mais)

Removendo a Imagem

# docker images

# docker rmi [[IMAGE_ID]]

# docker rmi -f [[IMAGE_ID]]

Comunicação entre containers

# docker run -it –name web02 –link friendly_heisenb:web01 badtux/nginx-ubuntu:1.0

# ping web01

Criando Dockerfile

Aguarde!

Leave a Reply