Instalando o Docker e Docker Compose no Centos 7
- IP do Servidor CentOS 7: 192.168.25.52
- Nome do Servidor: centos7
- Selinux: disabled Desabilitar Selinux
- Firewald: disabled Desabilitar Firewalld
Galera aqui eu vou demostrar como efetuar a instalação do Docker e do Docker compose no Centos 7.
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
yum install sudo
Vamos ajustar o sudo para que ele não fique solicitando a senha
visudo [...] ## Allows people in group wheel to run all commands #%wheel ALL=(ALL) ALL ## Same thing without a password %wheel ALL=(ALL) NOPASSWD: ALL
Agora vamos adicionar o nosso usuário no grupo adequada para poder executar os comandos com o sudo
usermod -aG wheel douglas
Agora vamos efetuar o logout do sistema
exit
Agora vamos efetuar o login com o nosso usuário comum
ssh douglas@192.168.25.52 douglas@192.168.25.52's password: [douglas@centos7 ~]$
Agora vamos se certificar que não temos nenhum pacote antigo do docker instalado no sistema
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
Agora vamos instalar os pré-requisitos para o Docker
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
Agora vamos adicionar o repositório do Docker
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Agora vamos instalar os pacotes do Docker
sudo yum -y install docker-ce docker-ce-cli containerd.io
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@192.168.25.52 douglas@192.168.25.52's password: [douglas@centos7 ~]$
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 yum 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
Desabilitando o Firewalld e o Selinux
Para desabilitar o Firewalld vamos executar o seguinte comando
sudo systemctl disable firewalld
Agora vamos desabilitar o Selinux
sudo vi /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
Agora precisamos reiniciar o servidor para que tudo seja aplicado
reboot
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 centos RUN yum -y install httpd CMD apachectl -DFOREGROUND
Agora vamos gerar a nossa imagem
docker build --tag centos_apache:v1 .
Agora vamos subir um container com a nossa imagem, vamos mapear a porta 9090 do CentOS para a porta 80 do container.
docker run -d -p 9090:80 --name centos_apache centos_apache:v1
Agora vamos verificar se o container está rodando
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES afc1a50b1710 centos_apache:v1 "/bin/sh -c 'apachec…" 2 seconds ago Up 1 second 0.0.0.0:9090->80/tcp centos_apache
Vamos verificar os logs do nosso container
docker logs centos_apache AH00558: httpd: 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.52:9090
Para acompanhar o consumo do container podemos utilizar o seguinte comando
docker stats centos_apache CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS afc1a50b1710 centos_apache 0.30% 8.344MiB / 487.2MiB 1.71% 16.1kB / 334kB 32.4MB / 303kB 279