Docker: Comandos basicos

O processo de instalação no Ubuntu e derivados você pode encontrar aqui e para Windows aqui.

Sintaxe do comando Docker: 

usuario@host# docker [OPTIONS] COMMAND [ARG...]

O docker é uma CLI (comand-line interface).

usuario@host# docker --version
Docker version 19.03.5, build 633a0ea838

O –version é uma opção. Para ver outras opções execute o comando man docker

usuario@host# docker run hello-world

O run é um comando do docker. Ao executar esse comando, caso a imagem hello-world não exista na sua máquina, o docker solicita ao docker hub e baixa a imagem

Listar os containers em execução

docker ps

Listar todos os containers da máquina

docker ps -a

Na saída do comando, cada coluna tem seu significado:
IMAGE -> imagem que esse container utilizou 
COMMAND -> O comando que foi executado
PORTS -> Se o container estiver respondendo em uma porta, aparecerá aqui.
NAMES -> Se não for dado um nome ao container o docker dará um nome a ele.

Listar as imagens da minha máquina

docker images

Na saída do comando, cada coluna tem seu significado:
REPOSITORY -> Nome da imagem
TAG -> versão da imagem

Criar um container com interatividade, terminal e dando um nome

docker run -ti --name [nome] [nome-da-imagem] /bin/bash

Exemplo: docker run -ti –name desenvolvimento ubuntu /bin/bash

O /bin/bash é um comando que eu posso executar ao rodar o container.

O –name [nome] é um nome que você pode dar para o container.

Criar e executar um container em background (demon)

docker run -d [imagem]

Criar um container com limitação de memória

docker run -ti --memory 512m --name teste ubuntu 

Criar um container a partir de uma versão específica de imagem

docker run [nome-da-imagem]:[versao]
Exemplo: docker run centos:7

Finalizar o container por dentro

CTRL+D

Esse atalho finaliza o  processo principal do container e por conseguinte encerra o finaliza.

Sair do container sem finalizar

CTRL+P+Q

Entrar em um container já em execução

docker attach [CONTAINER ID | NOME-CONTAINER]

Dar um STOP no container

docker stop [CONTAINER ID | NOME-CONTAINER]

Dar um START em um container ‘stopado’

docker start [CONTAINER ID | NOME-CONTAINER]

Dar um PAUSE no container

docker pause [CONTAINER ID | NOME-CONTAINER]

Despausar um container

docker unpouse  [CONTAINER ID | NOME-CONTAINER]

Saber o consumo de recursos do container

docker stats  [CONTAINER ID | NOME-CONTAINER]

Saber o consumo dos processos rodando no container

docker top [CONTAINER ID | NOME-CONTAINER]

Listar os logs do container

docker logs [CONTAINER ID | NOME-CONTAINER]

Remover um container

docker rm [CONTAINER ID | NOME-CONTAINER]

Se o container estiver em execução você precisa acrescentar o parametro -f:

docker rm -f [CONTAINER ID | NOME-CONTAINER]

Saber todas as informações sobre um container

docker inspect [CONTAINER ID | NOME-CONTAINER]

Criar um container passando um volume

docker run -ti -v /volume [nome-da-imagem] [comando]

Descobrir onde está o diretório no HOST-DOCKER que foi criado o volume

docker inspect -f {{.Mounts}} [CONTAINER ID | NOME-CONTAINER]

Criar um container mapeando um diretório local para um volume dentro do container

docker run -ti -v /diretorio-no-host-docker:/volume [nome-da-imagem] [comando]

Referências

Descomplicando o docker v1 (Linux Tips)

Docker: O Resumão

O Docker foi desenvolvido para S.Os que usam o kernal Linux. No ambiente Linux é possível usar Docker para Desenvolvimento e Produção. Recentemente foi disponibilizado a versão docker para Windows e esta só pode ser usada para Desenvolvimento.

Container 

É um binário/arquivo/cápsula que encapsula todo o ambiente necessário para sua aplicação funcionar. O ambiente e sua aplicação serão virtualizados na sua máquina física. 

É errado afirmar que um container é uma VM. Uma VM obrigatoriamente terá um S.O(e outros recursos) virtualizados em um software (KMV,VMWare, Virtualbox). Já o container usa os recursos da própria máquina onde está sendo executado. Ele não virtualiza um S.O, ele usa o S.O da máquina hospedeira onde o Docker está instalado  e através de alguns recursos disponibilizados pelo hospedeiro é criado toda a estrutura interna do container.

A diferença entre Imagem e Container é que uma imagem é um container parado. Quando essa imagem é executada ela se transforma em um Container. Análogo a uma imagem ISO de um DVD.

Chinmay Shah – Article Why you should care about Docker?

Storage Drives

São os caras responsáveis por gerenciar leitura/escrita dos dados no container.

AUFS

Esse foi o primeiro SD (Storage Driver) usado pelo Docker. Ele trabalha com o esquema de camadas:

Toda vez que é instalado um novo software ou adicionado arquivos ao container é criado uma nova camada(imagem) como se fosse formando uma pilha de camadas. É nesse momento que entra o conceito de Copy-on-Write.

Todas as camadas subjacentes são read-only, somente a camada superior é read/write, essa camada também é chamada de Camada Container.

Digamos que você vai editar o arquivo /etc/network/interfaces, esse arquivo está na camada image 1.0 (que é read-only). No momento de salvar a edição esse arquivo é copiado para a primeira camada da pilha(que é read/write), onde é salvo uma cópia dele. Na próximas vezes que você for usar a configuração feita nesse arquivo, o docker vai chamar o da primeira camada da pilha. Isso é o Copy-on-write !

Referências:

Configuração de resolução em um segundo monitor

Cenário de aplicação do exemplo

Um notebook com Linux Mint 19, usando um segundo monitor Samsung SyncMaster 933.

Problema

Ao conectar um segundo monitor ao notebook,  a resolução máxima suportada é 1024×768 60.00Hz.

Solução

1- execute o comando xrandr e procure pelo monitor auxiliar. A saída será parecida com essa:

VGA-1 connected 1368x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768      60.00  
   800x600       60.32    56.25  
   848x480       60.00  

No meu caso o monitor é o VGA-1.

2- Criando um novo perfil para o segundo monitor:

xrandr --newmode "1366x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync

Eu sei que o meu monitor suporta a resolução de 1366×768 a 60Hz, se você não souber o seu leia esse post na parte que fala de cvt.

3- Atribuindo o novo perfil:

xrandr --addmode VGA-1 1366x768_60.00

4- Ativando

xrandr --output VGA-1 --mode 1366x768_60.00

Nesse ponto você também pode ativar pela interface gráfica do S.O. Se o monitor em questão for um que você frequentemente usa, toda vez que ligar o PC terá que executar os comandos acima. Para automatizar esse processo você pode no final do arquivo /home/SEU-USER/.profile adicionar o scritp abaixo:

###### CONFIGURAÇÃO DE MONITOR AUXILIAR ######

# Se você usa notebook com um segundo monitor, a verificação abaixo junto com o IF do final é necessário para evitar um  erro caso o notebook seja ligado sem o monitor estar conectado.

##verifico se o monitor está conectado
monitor=$(xrandr | grep -o 'VGA-1 connected')

#crio o perfil do monitor
xrandr --newmode "1366x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync
xrandr --addmode VGA-1 1366x768_60.00

# condição para ativar o perfil, caso o monitor esteja conectado
if [ $monitor ]; then
    xrandr --output VGA-1 --mode 1366x768_60.00
fi

Referências:

Como conectar em uma rede wireless pela linha de comando no linux

A ferramenta para conectar varia conforme o tipo de criptografia utilizada no processo de autenticação:

Para somente o tipo WEP use o iw
Para os tipos WEP, WPA and WPA2 use o wpasupplicant

Instalação e configuração utilizando iw

Instalação da ferramenta

apt-get install iw

Exibir placa de rede wireless do computador

iwconfig

Listar as redes wifi captadas pela placa wireless

iwlist scan
ou
iwlist <sua interface wireless> scan

Conectar da rede wi-fi

iwconfig wlan0 essid <NOME-DA-REDE> mode managed

Caso precise obter IP utilize o DHCLIENT

dhclient -v <sua-interface-wi-fi>

Instalação e configuração utilizando wpasupplicant

Instalação da ferramenta

apt-get install wpasupplicant

Arquivo de configuração. Se ele não estiver criado, você deve criar

/etc/wpa_supplicant.conf

Configuração:

network={
    ssid="ssid_name"
    psk="password"
}

Assumindo que a sua interface é wlan0:

wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf -D wext

Caso precise obter IP utilize o DHCLIENT

dhclient -v <sua-interface-wi-fi>

Fontes

  1. https://sempreupdate.com.br/como-conectar-wifi-via-terminal-linux/
  2. https://askubuntu.com/questions/138472/how-do-i-connect-to-a-wpa-wifi-network-using-the-command-line

Taxonomia de links salvos no Favoritos do navegador

Tema

Esse texto explica o método que desenvolvi para organizar os links de páginas na internet que salvo nos Favoritos do navegador.

Contexto

A medida que pesquiso sobre várias áreas do conhecimento, encontro conteúdos bons e que valem apena serem salvos. Nesse processo de salvar os links nos Favoritos do navegador, sempre tive dificuldade em organizá los de tal forma a facilitar o encontro e sem deixar de lado a categorização correta.

A taxonomia de links

Para estruturar o conceito desenvolvido elaborei leis que devem ser obedecidas e objetivos que devem ser atendidos.

As leis

  1. O sistema taxonômico deve ser baseado nas principais áreas correntes*.
  2. Grandes subdivisões, subcategorias ou ramificações não são recomendadas.
  3. Se um link a ser salvo poder pertencer a mais de uma categoria, ele deve ser salvo onde na área corrente onde faz mais sentido no uso do no dia-a-dia.
  4. Os termos utilizados na nomenclatura devem pertencer ao domínio de conhecimento do usuário.
  5. Só deve ser criado uma pasta para links que pertencem a uma mesma categoria, se ouvir links de diferentes categorias, eles devem ficar fora de pasta, todos juntos.
  6. O link devem ser categorizados a partir do que ele trata, e não o que foi feito com ele.

Os objetivos

Esse objetivos são alvos que tentamos alcançar na elaboração deste sistema taxonômico, mas pode acontecer não conseguirmos atingir todos eles.

  1. Facilitar a localização e armazenamento dos links.
  2. A organização deve ser clara;

 

 

Exemplo de aplicação

1- Separando as áreas correntes:

  • Faculdade
  • Trabalho
  • Particular

2- Acrescentando suas possíveis categorias

  • Faculdade
    • TCC
      • Ferramentas
    • Matérias

 

  • Trabalho
    • Ferramentas internas

 

  • Pessoal
    • Redes
      • DNS
      • SNMP
      • CISCO
    • Linux
      • SystemCTL
      • PacketTracer
      • Shell Script
    • Programação
      • Banco de Dados
      • Frontend
    • Baixar/Comprar livros
    • Fonte de conhecimento
    • Ler depois
      • Curiosidades
    • Financeiro
    • Cursos e materiais de estudo
      • Redes
      • Linux
      • Programação
      • Energia fotovoltaica
    • Arduino

3- Validar se as leis foram cumpridas.

 

4- Executar o plano

 

Glossário

A

Área corrente –  Neste contexto entende se por uma área do conhecimento ou vida do ator principal que está mais destaca no dia-a-dia. É importante entender que a área corrente pode mudar conforme muda a vida do ator.

 

Referências