Baixe o app para aproveitar ainda mais
Prévia do material em texto
Docker Normalmente no desenvolvimento de uma aplicação precisamos de um banco de dados instalado para testar nossas aplicações, seja o MySQL, PostgreSQL ou algum outro. Você também pode precisar de duas versões diferentes de um mesmo banco, por exemplo, o projeto A usa o MySQL 5.6, já a aplicação B precisa do MySQL 5.7. Pode ser que você alterne entre projetos, e um use o MySQL e o outro o PostgreSQL. Agora imagine você instalando, desinstalando e mantendo essa quantidade de bancos de dados no seu computador? É bem trabalhoso, não é verdade? E é nesse momento que podemos usar o Docker! O Docker vai facilitar sua vida para instalar, iniciar, parar e fazer tudo que você precisa para ter um banco de dados local para desenvolvimento. O primeiro passo é instalar o docker com o comando abaixo: # curl -fsSl https://get.docker.com | sh (este comando executará script de instalação do docker) # sudo usermod -aG $USER docker (este comando adiciona o seu usuário ao grupo docker) # newgrp docker (recarrega seu usuário ao grupo docker) Depois de instalado, vá até a prompt de comando e veja se está tudo certo com o comando mostrado abaixo (sua versão pode ser diferente da mostrada abaixo): https://get.docker.com/ Imagem e container Dois conceitos muito importantes que você precisa aprender sobre o Docker é a diferença entre uma imagem e um container. Imagem x container: São dois conceitos diferentes, porém que são usados juntos. A principal diferença é que você não pode executar diretamente uma imagem e a mesma é por consequência somente leitura, um modelo que será utilizado por um container. Imagem é um template para criar container, as imagens Docker ficam armazenadas no Docker Hub. Para baixar uma imagem use o comando: docker pull <nome da imagem> A partir de uma imagem podemos criar vários containers. Portanto, quando você precisar de alguma aplicação, como no nosso caso, vamos instalar o MySQL e o PostgreSQL. Criando um container do MySQL Voltando para a linha de comando, vamos baixar uma imagem e criar um container com o MySQL instalado e pronto para usarmos. Criando um container MYSQL 5.6. O comando abaixo pode demorar um pouquinho pra terminar: $ docker run -p 3306:3306 --name mysql-5.7 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 Na primeira vez que você executar o comando acima, o Docker procura a imagem do MySQL no seu computador, como não a encontra, irá baixar na internet e isso pode demorar um pouco, são aproximadamente 300MB. Vamos entender os detalhes do comando acima: • run: serve para rodarmos um comando em um container, no caso do MySQL estamos iniciando o serviço de banco de dados e caso não exista a imagem base será baixada. • -p 3306:3306: aqui estamos dizendo que queremos que a porta 3306 de dentro do container seja mapeada para a porta 3306 local • –name mysql-5.7: é o nome do container, você que escolhe. • -e MYSQL_ROOT_PASSWORD=root: as propriedades passadas com o -e são variáveis de ambiente passadas para o container, nesse caso o container do MySQL pode ser configurado com MYSQL_ROOT_PASSWORD para trocar a senha do usuário root. • -d: serve para iniciar o container em background • mysql:5.7: o nome da imagem e versão, caso não informasse, seria baixado a última versão do MySQL disponível no Docker Hub. Use a IDE de sua preferência para conectar no MySQL, você usará o endereço localhost com a porta 3306 e usuário e senha definidos como root. Para conferir se o container está no ar, rode: $ docker ps Você verá algo como: Criando um container do PostgreSQL $ docker run -p 5432:5432 --name postgres-projeto-a -e POSTGRES_USER=usuario -e POSTGRES_PASSWORD =senha -e POSTGRES_DB=instancia_banco_de_dados -d postgres:10 Explicação: • -p 5432:5432: expondo a porta interna do container para acesso local, na sua máquina • –name postgres-projeto-a: é o nome do container, normalmente o nome do projeto que você vai trabalhar • -e : todos esses valores são para configurar o container, no caso do PostgreSQL, trocamos o usuário, senha e o nome da instância do banco. • postgres:10 é a imagem e a versão do Postgres que iremos utilizar Parando e iniciando um container $ docker stop nome-do-container Se usarmos o docker ps agora não veremos nenhum container listado, pois o ps mostra apenas os containers iniciados, mas se passar a opção -a ai sim você verá a lista de todos eles. $ docker ps -a $ docker start nome-do-container Comandos docker úteis: $ docker container inspect <nome do container ou id> (mostra todas as informações sobre o container, muito útil para verificar senha, rede, ip, volume etc..). $ docker images (exibe as imagens baixadas). $ docker ps (exibe os containers em execução). $ docker ps -a (exibe os containers parados e em execução). $ docker rm <nome do container ou id> (remove um container). $ docker rmi <nome da imagem ou id> (remove uma imagem). $ docker start <nome do container ou id> (inicia um container parado). $ docker stop <nome do container ou id> (para a execução de um container). $ docker restart <nome do container ou id> (reinicia um container). $ docker container attach <nome do container ou id> (entra na linha de comando do container) $ docker exec -it <nome do container ou id> (executa algum comando no container) Existem vários outros comandos e para ver uma list completa basta digitar: “docker” na sua linha de comando.
Compartilhar