Instalando o Docker e Docker Compose no Debian 9/10
- IP do Servidor Debian: 10.3.0.94
- Nome do Servidor: debian
Galera aqui eu vou demostrar como efetuar a instalação do Docker e do Docker compose no Debian pode ser utilizado para o Debian 9 e Debian 10.
Para melhores praticas de segurança eu vou utilizar um usuário comum para efetuar todo o processo desta forma vamos precisar efetuar a configuração do ambiente para isso.
Vamos criar um usuário comum para o sistema. OBS: Quando estamos trabalhando com um usuário comum no sistema é recomendado que o uid e gid dele seja o numero 1000 pois quando o container subir com dados compartilhados (volumes) o usuário utilizado geralmente vai ser o 1000.
Caso já tenha um usuário com o id e gid 1000 altere os valores com o seguinte comando.
usermod -u 2000 usuario_com_id_1000
Agora vamos criar o grupo com o gid 1000
groupadd -g 1000 douglas
useradd -m -s /bin/bash douglas -u 1000 -g 1000
Agora vamos definir uma senha para o usuário.
passwd douglas
Vamos efetuar a instalação do sudo
apt-get install sudo
Vamos ajustar o sudo para que ele não fique solicitando a senha
visudo [...] # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) NOPASSWD:ALL
Agora vamos adicionar o nosso usuário no grupo adequada para poder executar os comandos com o sudo
usermod -aG sudo douglas
Agora vamos efetuar o logout do sistema
exit
Agora vamos efetuar o login com o nosso usuário comum
ssh douglas@10.3.0.94 douglas@10.3.0.94's password: Linux buster 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5+deb10u2 (2019-08-08) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Thu Oct 10 08:59:04 2019 from 10.3.0.234
Agora vamos se certificar que não temos nenhum pacote antigo do docker instalado no sistema
sudo apt-get remove docker docker-engine docker.io containerd runc
Agora vamos atualizar os repositórios
sudo apt-get update
Agora vamos instalar os pré-requisitos para o Docker
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common -y
Adicionando a chave gpg para o repositório do docker
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
Agora podemos validar a chave importada
sudo apt-key fingerprint 0EBFCD88 pub rsa4096 2017-02-22 [SCEA] 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid [ unknown] Docker Release (CE deb) <docker@docker.com> sub rsa4096 2017-02-22 [S]
Agora vamos adicionar o repositório do Docker
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
Agora vamos atualizar os repositórios
sudo apt-get update
Agora vamos instalar os pacotes do Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
Agora vamos subir o serviço do Docker
sudo systemctl start docker
Agora vamos inserir o Docker na inicialização do sistema
sudo systemctl enable docker
Agora vamos adicionar o nosso usuário ao grupo Docker
sudo usermod -aG docker douglas
Agora precisamos efetuar logout
exit
Agora vamos efetuar login novamente no sistema
ssh douglas@10.3.0.94 douglas@10.3.0.94's password: Linux buster 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5+deb10u2 (2019-08-08) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Thu Oct 10 08:59:09 2019 from 10.3.0.234
Agora podemos listar os containers
docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Instalação do Docker Compose
A Instalação do Docker Compose é simples, vamos obter o binário
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Agora vamos adicionar a permisão de execução ao script
sudo chmod +x /usr/local/bin/docker-compose
Agora vamos criar um link para o nosso docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Agora vamos validar a versão do nosso Docker Compose
docker-compose --version docker-compose version 1.26.0, build d4451659
Ajustes para o VIM
Vamos efetuar a instalação do VIM
sudo apt-get install -y vim
Agora vamos obter o novo arquivo de configuração
curl -L https://raw.githubusercontent.com/douglasqsantos/DevOps/master/Misc/prep-vim.sh | bash
Criando um container para teste
Vamos efetuar a criação de um container para testar o nosso Docker
Vamos criar um diretório para armazenar a configuração das nossas images
mkdir -p docker-images/apache
Agora vamos acessar o diretório para criar o nosso arquivo
cd docker-images/apache
Vamos criar o nosso Dockerfile
vim Dockerfile FROM debian RUN apt-get update && apt-get install apache2 -y CMD apachectl -DFOREGROUND
Agora vamos gerar a nossa imagem
docker build --tag debian_apache:v1 .
Agora vamos subir um container com a nossa imagem, vamos mapear a porta 9090 do Debian para a porta 80 do container.
docker run -d -p 9090:80 --name debian_apache debian_apache:v1
Agora vamos verificar se o container está rodando
docker ps f01f7053ef45 debian_apache:v1 "/bin/sh -c 'apachec…" 3 seconds ago Up 1 second 0.0.0.0:9090->80/tcp debian_apache
Vamos verificar os logs do nosso container
docker logs debian_apache AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
Agora vamos efetuar um teste acessando o ip do servidor docker na porta 9090 http://10.3.0.94:9090
Para acompanhar o consumo do container podemos utilizar o seguinte comando
docker stats debian_apache CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS f01f7053ef45 debian_apache 0.00% 4.898MiB / 483.5MiB 1.01% 0B / 0B 3.44MB / 0B 57