Configurar o MySQL Server geralmente é tedioso, você deve configurar a conta de usuário, abrir portas, definir senhas, criar bancos de dados e tabelas, etc. Nesta postagem, tentarei minimizar algumas de suas misérias, fazendo uma implantação simples do MySQL usando o Docker-Compose.
Isenção de responsabilidade: De forma alguma está esse arquivo de composição “Pronto de produção”. Se você quiser executar um banco de dados MySQL em produção, você terá que apertar a segurança um pouco mais. Isso incluirá bloquear a conta raiz, configurar o TLS e definir permissões mais rigorosas em vários bancos de dados para vários usuários de banco de dados, etc.
Primeiro, verifique se o Docker está instalado em sua estação de trabalho ou servidor. Para executar um serviço MySQL simples, primeiro crie uma nova pasta no seu host do Docker. Nomeie -o mysqlCompose:
$ mkdir mysqlComposeCrie um arquivo Docker-Compose.YML nele usando seu editor de texto favorito e escreva o seguinte:
Versão: '3.1 'Em seguida, execute o seguinte comando de dentro do mesmo diretório:
$ Docker -Compõe Up -dIsso com o arquivo composto acima, dois novos contêineres serão criados, primeiro será o serviço de banco de dados e o segundo será um contêiner de administrador que atuará como um front -end para gerenciamento de banco de dados.
Embora a comunicação entre o contêiner do administrador e o serviço MySQL seja sobre o TCP usando a porta 3306, não precisamos abrir nenhuma porta em nosso banco de dados. Isso ocorre porque os contêineres do Docker em uma rede de pontes podem conversar entre si em qualquer porta (exceto na rede de ponte padrão de um host do Docker). Você pode listar a rede Docker usando o Docker Network LS e isso mostrará que uma nova rede foi realmente criada.
Visite http: // localhost: 8080 e faça login como root usando a senha useadifferentpassword e você receberá uma interface de usuário muito simples para interagir com seu mysql. O MySQL pode ser configurado para ser autenticado de várias maneiras, no entanto, optamos por usar apenas o MySQL_native_password como um método de autenticação. Você pode passar a senha do MySQL Root usando através de uma variável de ambiente, como mostrado no próprio arquivo YML.
Nota: Por uma questão de clareza, mencionei credenciais importantes como a senha do MySQL Root e outras senhas de usuário em texto simples, aqui. Este é obviamente um risco de segurança. A maneira correta de fazer isso seria usar segredos do Docker, mas esse é um tópico para outro dia.
Implantando WordPress
WordPress é talvez o exemplo clássico para destacar os pontos fortes e nuances do Docker-CompomPese. Como a maior instalação regular do WordPress, a variante do Docker também usa o MySQL para seu banco de dados de back -end. No entanto, o banco de dados é executado como um contêiner diferente, onde o servidor da web (junto com o aplicativo WordPress) é executado em outro contêiner.
Aqui está um trecho da documentação oficial do Docker-Compose sobre sua configuração.
Versão: '3'Isso criará um site do WordPress aberto na porta 8000 do seu host do Docker. Você pode ver que a seção de serviços define dois serviços sob ele:
Primeiro, o banco de dados MySQL com um volume nomeado para armazenar dados persistentes e algumas variáveis de ambiente para configurar o usuário, banco de dados e senha do MySQL.
Segundo, o contêiner WordPress que possui um servidor da web, PHP e WordPress tudo instalado com ele. Ele precisa conversar com o banco de dados (disponível em DB: 3306 internamente), expõe a porta 80 internamente ao resto do mundo através da porta 8000 do host do Docker. Ele também possui algumas variáveis ambientais que definem onde encontrar o banco de dados (DB: 3306), juntamente com o nome do banco de dados, nome de usuário e senha que definimos no serviço MySQL.
Conclusão
Felizmente, os poucos exemplos acima ilustram como configurar um contêiner MySQL. A idéia subjacente é que você passa o nome do seu banco de dados e outros detalhes de configuração como variáveis de ambiente. Você sempre pode se referir à descrição fornecida no Docker Hub e, em seguida, pode configurar o MySQL para seu próprio aplicativo.