Docker do zero até o projeto rodando em 1 minuto

REQUISITOS: Estar em um hospedeiro linux e ter noção do que estamos fazendo.

Primeiramente instala o vim e curl:

sudo apt-get update
sudo apt-get install -y vim curl

Em seguida o docker:

sudo curl -sSl https://get.docker.com/ | sh

Permissão pro teu usuário mandar no docker:

sudo usermod -aG docker $USER

Por o docker a rodar:

sudo /etc/inid.d/docker start

Então o docker-compose:

sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

Finalizamos com o portainer pra simplificar a vida:

docker volume create portainer_data
docker run -d -p 9000:9000 --name portainer --restart unless-stopped -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer --logo "https://i.imgur.com/Ge4JP7X.jpg"

BÔNUS:

Subindo um projeto com uma customizada de um container utilizando ubuntu/apache2/php7.1:

mkdir teste
cd teste
mkdir public
echo '' > public/index.php
vim docker-compose.yml

Coloque isto dentro do docker-compose.yml:

version: '3.2'
services:
  teste:
    container_name: teste
    image: arthurlehdermann/ubuntu-apache-php
    restart: always
    links:
      - db
    ports:
      - 127.0.0.123:80:80
    volumes:
      - type: bind
        source: ./
        target: /var/www/html
  db:
    container_name: db
    image: postgres:alpine
    restart: always
    ports:
      - 5432:5432
    environment:
      POSTGRES_PASSWORD: teste
      POSTGRES_USER: teste
      POSTGRES_DB: teste

E para subir a bagaça toda:

docker-compose up -d

Agora é só acessar teu localhost e correr pro abraço!

Anúncios

Kubernetes

Subir o ETCD
docker run --net=host -d gcr.io/google_containers/etcd:2.0.12 /usr/local/bin/etcd --addr=127.0.0.1:4001 --bind-addr=0.0.0.0:4001 --data-dir=/var/etcd/data

Subir o K8S Master
docker run --volume=/:/rootfs:ro --volume=/sys:/sys:ro --volume=/dev:/dev --volume=/var/lib/docker:/var/lib/docker:ro --volume=/var/lib/kubelet:/var/lib/kubelet:rw --volume=/var/run:/var/run:rw --net=host --pid=host --privileged=true -d gcr.io/google_containers/hyperkube:v1.0.1 /hyperkube kubelet --containerid --hostname-override="127.0.0.1" --address="0.0.0.0" --api-servers="http:/localhost:8080" --config=/etc/kubernetes/manifest

Subir o service proxy
docker run -d --net=host --privileged gcr.io/google_containers/hyperkube:v1.0.1 /hyperkube proxy --master=http://127.0.0.1:8080 --v=2

Portainer.io

https://portainer.io/install.html

Crie um volume para o portainer:
docker volume create portainer_data

Inicie um container para o portainer:
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

Habilite swarm:
docker swarm init

Crie o serviço do portainer:
docker service create \
--name portainer \
--publish 9000:9000 \
--replicas=1 \
--constraint 'node.role == manager' \
--mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \
portainer/portainer \
-H unix:///var/run/docker.sock

Agora acesse http://localhost:9000 e divirta-se!

Começando com Docker

Primeriamente créditos ao mito LinuxTips: https://www.youtube.com/watch?v=0cDj7citEjE&list=PLf-O3X2-mxDk1MnJsejJwqcrDC5kDtXEb

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

Iniciar o docker
/etc/init.d/docker start

Conferir se o docker está rodando
ps -ef | grep docker

Monitorar os containers docker
docker ps
Listar também os container parados:
docker ps -a

Listando imagens já baixadas
docker images

Removendo imagens
docker rmi [ID da imagem no 'docker images']

Criando container com imagem Ubuntu 14.10
docker run -i -t ubuntu:14.10 /bin/bash

Acessar um container
docker attach [ID do container visto no 'docker ps']

Subir container Ubuntu (ultima versão) mapeando porta:
docker run -i -t -p 8080:80 --name nome_container ubuntu /bin/bash
Sendo que a 8080 do host vai cair na 80 do container.
Sendo que ubuntu é o nome da imagem, ver: https://hub.docker.com
Sendo que /bin/bash é o comando a ser executado

Ver alterações feitas em um container
docker container diff [ID do container visto no 'docker ps']

Dar commit das alterações feitas em um container
docker commit [ID do container visto no 'docker ps'] prefixo/nome-da-imagem:1.0
sendo prefixo seu identificador, nome-da-imagem o nome da imagem e 1.0 a versão.

Executar um comando em um container
docker exec [ID CONTAINER] comando
Exemplo, ‘ps -ef’ (para ver os processos rodando no container):
docker exec [ID CONTAINER] ps -ef

Ver informações de um container
docker inspect [ID CONTAINER]
Ou se preferir visualizar no vim:
docker inspect [ID CONTAINER] | vim -

Ver informações consumo de Mem/CPU/Rede de um container
docker stats [ID CONTAINER]

Parar um container
docker stop [ID CONTAINER]

Iniciar um container
docker start [ID CONTAINER]

Pausar/congelar um container
docker pause [ID CONTAINER]

Depausar/descongelar um container
docker unpause [ID CONTAINER]

Reiniciar um container
docker restart [ID CONTAINER]

Remover um container
docker rm [ID CONTAINER]
Ou forçando:
docker rm -f [ID CONTAINER]