Instalando o Docker e Docker Compose no Ubuntu 16.04 até 20.04
- IP do Servidor Debian: 192.168.0.30
- Nome do Servidor: ubuntu2004
Galera aqui eu vou demostrar como efetuar a instalação do Docker e do Docker compose no Ubuntu pode ser utilizado para o Ubuntu 16.04 até a versão do Ubuntu 20.04.
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 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
douglas@192.168.0.30's password: Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-37-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat 20 Jun 2020 02:16:28 PM UTC System load: 1.46 Processes: 116 Usage of /: 9.2% of 48.96GB Users logged in: 0 Memory usage: 19% IPv4 address for enp0s3: 192.168.0.30 Swap usage: 0% 0 updates can be installed immediately. 0 of these updates are security updates. Last login: Thu Jun 18 17:47:04 2020
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 gnupg-agent software-properties-common -y
Adicionando a chave gpg para o repositório do docker
curl -fsSL https://download.docker.com/linux/ubuntu/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/ubuntu $(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
douglas@192.168.0.30's password: Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-37-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat 20 Jun 2020 02:20:10 PM UTC System load: 1.3 Processes: 122 Usage of /: 10.2% of 48.96GB Users logged in: 0 Memory usage: 28% IPv4 address for docker0: 172.17.0.1 Swap usage: 0% IPv4 address for enp0s3: 192.168.0.30 0 updates can be installed immediately. 0 of these updates are security updates. Last login: Sat Jun 20 14:16:29 2020 from 192.168.0.101
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 ubuntu RUN apt-get update && apt-get install apache2 -y CMD apachectl -DFOREGROUND
Agora vamos gerar a nossa imagem
docker build --tag ubuntu_apache:v1 .
Agora vamos subir um container com a nossa imagem, vamos mapear a porta 9090 do Ubuntu para a porta 80 do container.
docker run -d -p 9090:80 --name ubuntu_apache ubuntu_apache:v1
Agora vamos verificar se o container está rodando
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 49b5f3c214df ubuntu_apache:v1 "/bin/sh -c 'apachec…" 5 seconds ago Up 3 seconds 0.0.0.0:9090->80/tcp ubuntu_apache
Vamos verificar os logs do nosso container
docker logs ubuntu_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://192.168.25.70:9090
Para acompanhar o consumo do container podemos utilizar o seguinte comando
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 49b5f3c214df ubuntu_apache 0.04% 5.434MiB / 982.9MiB 0.55% 976B / 0B 2.45MB / 0B 57