Fala comunidade tudo bem ? a ideia de hoje é montarmos um ambiente para hospedagens utilizando NGInx Web Proxy + Docker.
Estou levando em consideração o seguinte ambiente:
Sistema Operacional
Ubuntu Server 16.04.6 LTS
Aplicações
NGINX 1.10.3
Docker 18.09
1 - Preparando o Sistema Operacional
2 - Instalando o NGINX
3 - Instalando o Docker
4 - Configurando um ambiente Docker + Docker Compose
5 - Configurando o Proxy Reverso
1 - Preparando o Sistema Operacional
Primeiramente vamos certificar que o Apache não ficará rodando e escutando as conexões direcionadas a porta 80. Sendo assim vamos desabilitar o Apache com o comando abaixo:
sudo systemctl disable apache2
Habilitando o NGINX para iniciar com o sistema:
sudo systemctl enable nginx
Vamos agora atualizar nossa lista de pacotes do Ubuntu rodando o comando
sudo apt-get update
E depois vamos atualizar o sistema rodando o comando
sudo apt-get upgrade
2 - Instalando o NGINX
A instalando do NGINX é bem simples. Se o Apache estiver no momento que você rodar o apt-get install você não deverá encontrar problemas. Então vamos para o terminar e rodar o comando:
sudo apt-get install nginx
3 - Instalando o Docker
Para instalar o Docker devemos estar com a lista de pacotes atualizada. Então vamos certificar que está tudo atualizado antes de prosseguirmos.
Com o sistema atualizado vamos adicionar as GPG Keys dos Mirrors do Docker em nosso sistema para que possamos continuar.
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
na sequência rodaremos o comando curl com pipe para adicionar as chaves do apt
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK, para certificar que a chave de GPG foi adicionada corretamente vamos verificar as fingerprints
sudo apt-key fingerprint 0EBFCD88
O resultado deverá ser algo como:
pub 4096R/0EBFCD88 2017-02-22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) [email protected]
sub 4096R/F273FCD8 2017-02-22
Caso sua arquitetura de processador seja baseada em X86 você deverá utilizar o repositório
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Depois de adicionado o repositório vamos rodar novamente o apt para atualizar a lista de pacotes
sudo apt-get update
Legal, agora que temos tudo pronto basta instalar o Docker então devemos rodar
sudo apt-get install docker-ce docker-ce-cli containerd.io
Agora que temos o Docker instalado podemos testar ele rodando
docker run hello-world
Precisaremos do orquestrador Docker Compose para gerenciar nossos containers então devemos instalar
sudo apt install docker-compose
4 - Configurando um ambiente Docker + Docker Compose
Perfeito, agora que temos tudo instalado vamos partir para a configuração do Docker com orquestração do Docker Compose. Estarei levando em consideração que iremos subir um website rodando Apache2 + PHP 7.1 + PhpMyAdmin + MySQL 5 então nossa receita seria algo como o arquivo abaixo:
version: '2'
services:
jaccon_db:
image: mysql:5.7
container_name: jaccon_db
ports:
- "8000:3306"
volumes:
- ./database/data:/var/lib/mysql
- ./database/initdb.d:/docker-entrypoint-initdb.d
restart: always
environment:
MYSQL_ROOT_PASSWORD: quah3Aht3dua7iechaeN
MYSQL_DATABASE: jaccon
MYSQL_USER: jaccon
MYSQL_PASSWORD: Thahva6aeth6ohNie5ki
jaccon_wp:
depends_on:
- jaccon_db
image: wordpress:php7.1
container_name: jaccon_wp
ports:
- "8001:80"
restart: always
links:
- jaccon_db:mysql
volumes:
- ./src:/var/www/html
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: jaccon_phpmyadmin
volumes:
- ./phpmyadmin/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php
links:
- jaccon_db
ports:
- "8002:80"
environment:
- PMA_ARBITRARY=1
- PMA_HOST=jaccon_db
Você pode fazer o download do arquivo de exemplo do Docker no meu GitHub clicando aqui em download do arquivo
Este é um exemplo para você dar seus primeiros passos no Docker voltando mais para hosting de aplicações. Espero que tenha ajudado ai a comunidade.
Abs
Seja Membro Gratuítamente
Assine a newsletter para receber em seu email as publicações atualizadas neste blog