Docker

Configure um servidor LAMP com Docker

Configure um servidor LAMP com Docker
Neste artigo, vou mostrar como usar o Docker Compose para criar um servidor LAMP para desenvolvimento da web em 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 ainda não o tiver instalado. Portanto, certifique-se de verificar LinuxHint.com caso você esteja tendo problemas para instalar o Docker.

Instalando o Docker Compose:

Você pode baixar o arquivo binário do Docker Compose facilmente com o seguinte comando:

$ sudo curl -L "https: // github.com / docker / compose / releases / download / 1.24.1 /
docker-compose - $ (uname -s) - $ (uname -m) "-o / usr / local / bin / docker-compose

NOTA: ondulação pode não estar instalado na 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 arquivo binário é baixado, execute o seguinte comando:

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

Agora, verifique se docker-compose comando está funcionando da seguinte maneira:

versão $ docker-compose

Deve imprimir as informações da versão conforme mostrado na imagem abaixo.

Configurando o Docker Compose para o projeto:

Agora, crie um diretório de projeto ~ / docker / lamp (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 / lamp do seguinte modo:

$ cd ~ / docker / lamp

Criar uma php.Dockerfile no diretório do projeto ~ / docker / lamp. Este é um Dockerfile que habilita as extensões mysqli e PDO php no php: 7.4.3-apache imagem do Docker Hub e cria uma imagem Docker personalizada a partir dele.

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

DE php: 7.4.3-apache

CORRE

docker-php-ext-install mysqli pdo pdo_mysql

Agora, crie um docker-compose.yaml arquivo no diretório do projeto ~ / docker / lamp e digite as seguintes linhas no docker-compose.yaml Arquivo.

versão: "3.7 "
Serviços:
servidor web:
construir:
dockerfile: php.Dockerfile
contexto: .
reiniciar: sempre
volumes:
- "./ html /: / var / www / html / "
portas:
- "8080: 80"
servidor mysql:
imagem: mysql: 8.0.19
reiniciar: sempre
meio Ambiente:
MYSQL_ROOT_PASSWORD: segredo
volumes:
- mysql-data: / var / lib / mysql
phpmyadmin:
imagem: phpmyadmin / phpmyadmin: 5.0.1
reiniciar: sempre
meio Ambiente:
PMA_HOST: mysql-server
PMA_USER: root
PMA_PASSWORD: segredo
portas:
- "5000: 80"
volumes:
mysql-data:

O docker-compose.yaml o arquivo deve ser o seguinte.

Aqui, criei 3 serviços servidor web, servidor mysql e phpmyadmin.

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

servidor mysql serviço irá executar o mysql: 8.0.19 imagem (do DockerHub) em um contêiner do Docker.

phpmyadmin serviço irá executar o phpmyadmin / phpmyadmin: 5.0.1 imagem (do DockerHub) em outro contêiner do Docker.

Dentro servidor mysql serviço, o MYSQL_ROOT_PASSWORD variável de ambiente é usada para definir o raiz senha do MySQL.

Dentro phpmyadmin serviço, o PMA_HOST, PMA_USER, PMA_PASSWORD variáveis ​​de ambiente são usadas para definir o nome de host MySQL, nome de usuário e senha respectivamente que o phpMyAdmin usará para se conectar ao servidor de banco de dados MySQL rodando servidor mysql serviço.

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

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

No phpmyadmin serviço, o porto de contêineres 5000 (direita) é mapeado para a porta do host Docker 80 (deixou).

Além disso, crie um índice.php arquivo no html / diretório para testar o servidor LAMP.

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

$ host = "mysql-server";
$ user = "root";
$ pass = "segredo";
$ db = "app1";
tentar
$ conn = new PDO ("mysql: host = $ host; dbname = $ db", $ user, $ pass);
$ conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);
 
echo "Conectado com sucesso";
catch (PDOException $ e)
echo "Conexão falhou:" . $ e-> getMessage ();

?>

Finalmente, o diretório do projeto ~ / docker / lamp deve ser o seguinte:

Iniciando o servidor LAMP:

Agora, para começar o servidor web, servidor mysql e phpmyadmin serviços, execute o seguinte comando:

$ docker-compose 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-compose ps

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

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

Encontrar o endereço IP do Docker Host:

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

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

$ ip

No meu caso, o endereço IP do meu host Docker 192.168.20.160. Será diferente para você. Portanto, certifique-se de substituí-lo pelo seu a partir de agora.

Testando o servidor LAMP:

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

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

phpMyAdmin 5 deve carregar em seu navegador da web.

Agora, crie um app1 Banco de dados MySQL de phpMyAdmin.

Agora, visite http: // localhost: 8080 do seu host 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 LAMP é totalmente funcional.

Parando o servidor LAMP:

Para parar o servidor web, servidor mysql e phpmyadmin serviços, execute o seguinte comando:

$ docker-compose down

O servidor web, servidor mysql e phpmyadmin serviços devem ser interrompidos.

Limpando os dados do servidor MySQL:

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 LAMP com Docker. Obrigado por ler este artigo.

Como você pode ver, o volume a ser removido é lamp_mysql-data.

SuperTuxKart para Linux
SuperTuxKart é um ótimo título projetado para trazer a você a experiência Mario Kart gratuitamente em seu sistema Linux. É bastante desafiador e diver...
Tutorial de Battle for Wesnoth
The Battle for Wesnoth é um dos jogos de estratégia de código aberto mais populares que você pode jogar no momento. Este jogo não está apenas em desen...
0 A.D. Tutorial
Dos muitos jogos de estratégia que existem, 0 A.D. consegue se destacar como um título abrangente e um jogo muito profundo e tático, apesar de ser de ...