Acredito firmemente em manter meu sistema host limpo. E os contêineres Docker são a solução perfeita para isso. Digamos que você esteja trabalhando em um aplicativo React com back-end Node/Express e um servidor MySQL para suas necessidades de banco de dados. Normalmente, você instalaria o mysql em seu sistema host, criaria um banco de dados, criaria um usuário com uma senha e concederia ao usuário privilégios para trabalhar com esse banco de dados.
Em vez de perder tempo configurando isso todas as vezes para cada projeto, eu apenas uso uma imagem Docker para criar meu servidor de banco de dados MySQL, para estar pronto, instalado e funcionando em poucos segundos, com toda a configuração necessária que eu faria sempre precisar.
Acredite em mim, depois de descobrir seu fluxo de trabalho usando essa rota, você nunca mais voltará aos velhos tempos. Então, aqui está como eu faço isso de uma maneira muito simples e básica.
Se você tem alguma experiência com Docker e deseja pular este tutorial e começar diretamente com uma versão TLDR, este Gist seria muito mais rápido.
Para usar o Docker, precisamos do Docker, dã! Não entrarei em detalhes sobre a instalação do Docker aqui. Se você não se sente confortável com uma CLI ou usa Windows/MacOS, opte pelo Docker Desktop, ele fará todo o trabalho pesado para você nos bastidores.
Os usuários do Linux também podem instalar o Docker Engine com o plug-in Docker Compose ou o Docker Desktop, se você não estiver sentindo isso.
Você normalmente não precisa de uma conta no Docker Hub para baixar imagens públicas como a imagem oficial do MySQL que usaremos.
Existem duas maneiras de fazer isso.
Para poder executar diretamente o contêiner usando o comando docker run, você precisará primeiro fazer o download da imagem MySQL em seu sistema. Para puxar a imagem para o seu sistema, basta usar este comando:
docker pull mysql
Nota: Se você não precisa de uma versão específica do MySQL, este comando fará o download da versão mais recente (aquela com a tag mais recente). Você pode explorar mais tags e versões do Docker Hub se precisar.
Assim que o download do Docker for concluído, você poderá ver a imagem baixada assim:
docker image ls
Agora, para executar o contêiner, você precisa adicionar vários sinalizadores com o comando docker run. Você pode visitar este link para verificar todas as opções que você tem. Você também precisa se lembrar de todos os sinalizadores que precisa adicionar, pois a falta de alguns pode gerar erros ou iniciar um contêiner incapaz.
Além disso, toda vez que você desejar executar seu contêiner, você terá que pescar esse longo comando no histórico do terminal ou digitá-lo novamente. Não há sentido nisso.
Esta é a razão pela qual NÃO recomendo esta abordagem. Existe uma maneira melhor.
Criaremos um arquivo Docker Compose que informará ao Docker o que precisamos ao iniciar o contêiner. Depois que tudo estiver disposto no arquivo, iniciar o contêiner se tornará muito fácil.
Nota: você pode criar seu arquivo de composição com qualquer nome. Se você usar seu próprio nome ou armazenar seu arquivo de composição em outras pastas, você terá que fornecer um sinalizador -f para que funcione. Alternativamente, se você estiver executando o comando na mesma pasta do seu arquivo, poderá nomear o arquivo como docker-compose.yaml.
Um arquivo Docker Compose é um arquivo YAML. O nosso ficará assim:
# This Docker Compose YAML deploys a MySQL database services: container-name: image: mysql # Official MySQL image from Docker Hub restart: always environment: # Note - Root password is mandatory for the container to run and grant privileges to our User. MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} # Same name as used in your project # DB User Details MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} ports: # Adjust this port as per your needs ->: - 3308:3306 # DB is available at localhost:3308 on the host. volumes: - ./volumes/db-mnt:/var/lib/mysql
Este arquivo também está disponível no Gist mencionado no início.
Importante saber
Você pode criar este arquivo na mesma pasta onde está seu arquivo de composição ou pode criá-lo em qualquer lugar que desejar, mas precisará fornecer o caminho ao chamar docker-compose.
# Content of the Environment Variables file MYSQL_ROOT_PASSWORD=rootpassword MYSQL_DATABASE=nameofdatabase MYSQL_USER=dbusername MYSQL_PASSWORD=dbuserpassword
Depois que tivermos tudo isso pronto, podemos simplesmente usar um pequeno comando e nosso banco de dados estará pronto e pronto esperando por nós.
docker-compose up -d
Agora você está pronto para fazer uma conexão com o banco de dados usando seus meios preferidos.
E como configuramos nossos contêineres para serem executados a partir de um arquivo de composição, você pode fazer backup deles com segurança em um sistema git em seu repositório. Apenas certifique-se de .gitignore o arquivo .env.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3