Configure um servidor de lâmpadas com Docker

Configure um servidor de lâmpadas com Docker
Neste artigo, vou mostrar como usar o Docker Compose para criar um servidor de lâmpadas para o desenvolvimento da web do PHP. Então vamos começar.

Requisitos:

Para seguir este artigo, você deve ter o Docker instalado no seu computador. Linuxhint tem muitos artigos que você pode seguir para instalar o docker na distribuição Linux desejada, se você ainda não o instalou. Então, verifique o Linuxhint.com o caso de você estar tendo problemas para instalar o docker.

Instalando o docker compor:

Você pode fazer o download do docker compor o arquivo binário com muita facilidade com o seguinte comando:

$ sudo curl -l "https: // github.com/docker/compor/liberações/download/1.24.1//
Docker-Compose-$ (uname -s)-$ (uname -m) "-o/usr/local/bin/Docker-Comppose

OBSERVAÇÃO: ondulação não pode ser instalado em sua distribuição Linux. Se for esse o caso, você pode instalar o CURL com o seguinte comando:

Ubuntu/Debian/Linux Mint:

$ sudo apt install curl -y

CENTOS/RHEL/FEDORA:

$ sudo dnf install curl -y

Uma vez Docker-Compose O arquivo binário é baixado, execute o seguinte comando:

$ sudo chmod +x/usr/local/bin/docker-comp

Agora, verifique se Docker-Compose O comando está funcionando da seguinte maneira:

Versão $ Docker-Compose

Ele deve imprimir as informações da versão, conforme mostrado na captura de tela abaixo.

Configurando o Docker compor para o projeto:

Agora, crie um diretório de projeto ~/docker/lâmpada (digamos) e um html/ diretório dentro do diretório do projeto para manter os arquivos do site (i.e. PHP, HTML, CSS, JS etc.) do seguinte modo:

$ mkdir -p ~/docker/lamp/html

Agora, navegue até o diretório do projeto ~/docker/lâmpada do seguinte modo:

$ cd ~/docker/lâmpada

Criar uma php.Dockerfile No diretório do projeto ~/docker/lâmpada. Este é um DockerFile que permite extensões de MySqli e PDO PHP: 7.4.3-Apache imagem do Docker Hub e cria uma imagem personalizada do Docker.

O conteúdo do php.Dockerfile é dado abaixo.

De Php: 7.4.3-Apache

CORRER

Docker-Php-Ext-Install MySqli PDO PDO_MYSQL

Agora, crie um Docker-Compose.Yaml arquivo no diretório do projeto ~/docker/lâmpada e digite as seguintes linhas no Docker-Compose.Yaml arquivo.

Versão: "3.7 "
Serviços:
servidor web:
construir:
Dockerfile: Php.Dockerfile
contexto: .
Reinicie: sempre
volumes:
- "./html/:/var/www/html/"
Portas:
- "8080: 80"
MySQL-Server:
Imagem: MySQL: 8.0.19
Reinicie: sempre
ambiente:
Mysql_root_password: segredo
volumes:
- mysql-data:/var/lib/mysql
phpmyadmin:
Imagem: phpmyadmin/phpmyadmin: 5.0.1
Reinicie: sempre
ambiente:
PMA_HOST: MySQL-Server
Pma_user: root
Pma_password: segredo
Portas:
- "5000: 80"
volumes:
mysql-data:

O Docker-Compose.Yaml o arquivo deve parecer o seguinte.

Aqui, eu criei 3 serviços servidor web, MySQL-Server e phpmyadmin.

servidor web O serviço executará uma imagem do Docker personalizada, conforme definido em php.Dockerfile.

MySQL-Server Serviço vai executar o MySQL: 8.0.19 Imagem (de DockerHub) em um recipiente do docker.

phpmyadmin Serviço vai executar o phpmyadmin/phpmyadmin: 5.0.1 Imagem (do DockerHub) em outro recipiente do Docker.

Em MySQL-Server serviço, o Mysql_root_password A variável de ambiente é usada para definir o raiz Senha do MySQL.

Em phpmyadmin serviço, o Pma_host, pma_user, pma_password As variáveis ​​de ambiente são usadas para definir o nome do host MySQL, nome de usuário e senha, respectivamente MySQL-Server serviço.

Em MySQL-Server serviço, todo o conteúdo do /var/lib/mysql diretório será salvo permanentemente no mysql-data volume.'

No servidor web serviço, a porta de contêiner 80 (à direita) é mapeado para a porta host do Docker 8080 (esquerda).'

No phpmyadmin serviço, a porta de contêiner 5000 (à direita) é mapeado para a porta host do Docker 80 (esquerda).

Além disso, crie um índice.php arquivo no html/ Diretório para testar o servidor de lâmpadas.

O conteúdo do índice.php arquivo no meu caso,

$ host = "mysql-server";
$ user = "root";
$ pass = "secreto";
$ db = "App1";
tentar
$ conn = new PDO ("mysql: host = $ host; dbname = $ db", $ user, $ pass);
$ Conn-> setAttribute (PDO :: Atttr_errmode, PDO :: ErrMode_Exception);
eco "conectado com sucesso";
catch (pDoException $ e)
eco "a conexão falhou:" . $ e-> getMessage ();

?>

Finalmente, o diretório do projeto ~/docker/lâmpada deve parecer o seguinte:

Iniciando o servidor de lâmpadas:

Agora, para começar o servidor web, MySQL-Server e phpmyadmin Serviços, execute o seguinte comando:

$ Docker -Compõe Up -d

Todos os serviços devem começar em segundo plano.

Para ver como as portas são mapeadas, execute o seguinte comando:

$ Docker-Compor PS

Como você pode ver, para o servidor web Serviço, a porta host do docker 8080 é mapeado para a porta TCP do contêiner 80.

Para o phpmyadmin Serviço, a porta host do docker 5000 é mapeado para a porta TCP do contêiner 80.

Encontrando o endereço IP do host do Docker:

Se você deseja acessar o servidor de lâmpadas de outros computadores em sua rede, você deve saber o endereço IP do seu host do Docker.

Para encontrar o endereço IP do seu host do Docker, execute o seguinte comando:

$ ip

No meu caso, o endereço IP do meu host do Docker 192.168.20.160. Vai ser diferente para você. Então, certifique -se de substituí -lo por seu a partir de agora.

Testando o servidor de lâmpadas:

Agora, você pode acessar o phpmyadmin 5 e o servidor da web a partir de um navegador da web.

Para acessar o phpmyadmin 5, abra um navegador da web e visite http: // localhost: 5000 do seu host do Docker ou visite http: // 192.168.20.160: 5000 de qualquer outro computador na rede.

phpmyadmin 5 deve carregar no seu navegador da web.

Agora, crie um App1 Banco de dados MySQL da Phpmyadmin.

Agora, visite http: // localhost: 8080 do seu host do Docker ou http: // 192.168.20.160: 8080 de qualquer outro computador em sua rede para acessar o servidor da web.

Você deveria ver o Conectado com sucesso mensagem. Isso significa que o PHP está funcionando e o servidor de banco de dados MySQL está acessível a partir do servidor web recipiente. Então, tecnicamente, o servidor de lâmpadas está totalmente funcional.

Parando o servidor de lâmpadas:

Para parar o servidor web, MySQL-Server e phpmyadmin Serviços, execute o seguinte comando:

$ docker-compor para baixo

O servidor web, MySQL-Server e phpmyadmin Os serviços devem ser interrompidos.

Limpando os dados do MySQL Server:

Se você deseja remover todos os dados e configurações do banco de dados MySQL, você deve remover o mysql-data volume.

Você pode encontrar o nome real do volume com o seguinte comando:

$ docker volume ls

Você pode remover o volume LAMP_MYSQL-DATA com o seguinte comando:

$ Docker Volume RM LAMP_MYSQL-DATA

Então, é assim que você configura um servidor de lâmpadas com Docker. Obrigado por ler este artigo.

Como você pode ver, o volume a remover é LAMP_MYSQL-DATA.