patrickbrandao / docker

Containers em Docker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

docker

Containers em Docker

Instalar docker (base debian 9)


    # Adicionar repositorio docker
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
    add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

    apt-get -y update
    apt-get -y upgrade
    apt -y autoremove

    apt-get -y install docker-ce
    usermod -aG docker suporte 2>/dev/null
    apt-get -y install docker-compose

    # Comandos rapidos:
    ( echo '#!/bin/sh'; echo; echo 'docker stop $1'; echo 'docker stop $1'; echo 'docker rm $1'; echo; ) > /usr/bin/undocker
    chmod +x /usr/bin/undocker

    ( echo '#!/bin/sh'; echo; echo 'docker exec -it $1 /bin/bash'; echo; ) > /usr/bin/dsh
    chmod +x /usr/bin/dsh

    ( echo '#!/bin/sh'; echo; echo 'docker ps -a'; echo; ) > /usr/bin/dps
    chmod +x /usr/bin/dps

Baixando repositorio


wget https://github.com/patrickbrandao/docker/archive/master.zip -O docker-master.zip
unzip docker-master.zip
cd docker-master

Alpine pseudo-VPS

Trata-se de um container alpine multiprocessos semelhante a uma VPS em VM


# Entre no diretorio alpine-vps
cd alpine-vps/

# Crie a imagem:
docker build -t alpine-vps .

# Rodando container de teste:
docker run --privileged --cap-add=ALL --restart=always -d -h vps-test --name=vps-test alpine-vps

# Entrando no container:
docker exec -it vps-test /bin/bash

# Destruindo container de teste:
docker stop vps-test
docker rm vps-test

# Exemplo: especificar porta de SSH e senha de root:
docker run -d --privileged --cap-add=ALL --restart=always \
        --env ROOT_PASSWORD=tulipa \
        --env SSH_PORT=2222 \
        -h vps-001 --name=vps-001 \
        alpine-vps

Criando versoes (tags) diferentes

Você não pode criar ou apagar uma imagem da alpine-vps que esteja em uso (containers rodando ou criados). Se precisar criar alteracoes para novos containers (nao vai afetar os antigos ja rodando), use o versionamento por tags:


# Entre no diretorio alpine-vps
cd alpine-vps/

# Crie a imagem versao 001:
docker build -t alpine-vps:v001 .

#:: Crie a imagem versao 002 (exemplo):
#:: docker build -t alpine-vps:v002 .

# Listar imagens:
docker image ls

# Exemplo: apagar uma imagem pela tag especifica (que nao esteja em uso):
docker rmi alpine-vps:v001
#:: docker rmi alpine-vps:v002

Aplicacoes all-in-one no pseudo-VPS

Nuva-Observium

Container all-in-one para rodar Observium Requer imagem "alpine-vps" gerada. Requer download do observium, coloque-o na mesma pasta

# Entre na pasta:
cd nuva-observium/

# Baixe o Observium:
wget -c http://www.observium.org/observium-community-latest.tar.gz -O observium-community-latest.tar.gz

# Construa a imagem:
docker build -t nuva-observium .

# Crie um container (porta 80 mapeada na 8080, porta 22 mapeada na 2222):
# - Aceita os mesmos argumentos em ENV da alpine-vps para determinar senha de root, porta de ssh
# - variaveis adicionais:
#    OBSERVIUM_ADMIN_USER: nome de usuario administrador do observium
#    OBSERVIUM_ADMIN_PASSWORD: senha do administrador acima
#    padrao: admin / obs123
#

# Criando Observium simples:
docker run -d --restart=always -h nuva-observium --name=nuva-observium -p 8080:80 -p 2222:22 nuva-observium

# Os dados gerados pelo nuva-observium ficam em:
# - /var/lib/mysql: banco de dados
# - /opt/observium/rrd: dados binarios de graficos RRD
# - /opt/observium/logs: logs de execucao
# ** Monte volume nessas pastas caso deseja destruir o container
#    e preservar os dados
# --mount type=bind,source=/storage/observiun01/rrd,destination=/opt/observium/rrd,readonly=false
# --mount type=bind,source=/storage/observiun01/logs,destination=/opt/observium/logs,readonly=false
# --mount type=bind,source=/storage/observiun01/mariadb,destination=/var/lib/mysql,readonly=false
# 

# Criando Observium de dados persistentes:
mkdir -p /storage/observiun-01/rrd
mkdir -p /storage/observiun-01/logs
mkdir -p /storage/observiun-01/mariadb

docker run -d --restart=always -h nuva-observium-01 --name=nuva-observium-01 \
    -p 8080:80 -p 2222:22 \
    --mount type=bind,source=/storage/observiun-01/rrd,destination=/opt/observium/rrd,readonly=false \
    --mount type=bind,source=/storage/observiun-01/logs,destination=/opt/observium/logs,readonly=false \
    --mount type=bind,source=/storage/observiun-01/mariadb,destination=/var/lib/mysql,readonly=false \
    nuva-observium


Alpine com Quagga

Trata-se de um container alpine multiprocessos para criar um roteador Linux com Quagga


# Entre no diretorio nuva-quagga
cd nuva-quagga/

# Torne os scripts executaveis:
chmod +x rootfs/bin/*
chmod +x rootfs/opt/*
chmod +x rootfs/opt/entrypoints/*

# Crie a imagem:
docker build -t nuva-quagga .

# Rodando container de teste:
docker run --privileged --cap-add=ALL --restart=always -d -h nuva-quagga-01 --name=nuva-quagga-01 nuva-quagga

# Entrando no container:
docker exec -it nuva-quagga-01 /bin/bash

# Destruindo container de teste:
docker stop nuva-quagga-01
docker rm nuva-quagga-01

Em breve crio mais...

About

Containers em Docker


Languages

Language:JavaScript 62.2%Language:Shell 26.8%Language:PHP 7.8%Language:Dockerfile 2.1%Language:CSS 1.2%Language:HTML 0.0%