Configure um servidor MongoDB com Docker

Configure um servidor MongoDB com Docker
Neste artigo, vou mostrar como usar o Docker Compose para criar um contêiner do MongoDB e acessá-lo usando o Mongo Express, a interface administrativa do MongoDB baseada na Web. 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:

Para instalar o docker compor, abra um terminal e execute 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

Curl deve começar a baixar o Docker Compose Binary. Pode demorar um pouco para completar.

Depois que o download estiver concluído, adicione a permissão executável ao Docker-Compose arquivo binário com o seguinte comando:

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

Agora, verifique se Docker-Compose O binário é acessível com o seguinte comando:

$ Docker-Compose --version

Como você pode ver, Docker-Compose O binário está funcionando corretamente.

Configurando o servidor MongoDB usando o Docker Compose:

Nesta seção, mostrarei uma configuração muito básica de MongoDB e Mongo Express usando o Docker Composer.

Primeiro, crie um novo diretório de projeto Mongo-Latest/ do seguinte modo:

$ MKDIR MONGO-LATEST

Agora, navegue para o Mongo-Latest/ diretório da seguinte maneira:

$ CD Mongo-Latest/

Agora, crie um novo arquivo de configuração do Docker Compose Docker-Compose.yml do seguinte modo:

$ Nano Docker-Compose.yml

Agora, digite as seguintes linhas de códigos no arquivo Docker-Compose.yml.

Versão: '3'
Serviços:
Mongo:
Imagem: Mongo
Reinicie: sempre
Portas:
- "27017: 27017"
Mongo-Express:
Imagem: Mongo-Express
Reinicie: sempre
Portas:
- "8081: 8081"

Aqui, estamos definindo dois serviços, Mongo e Mongo-Express. O Mongo O serviço é responsável por iniciar o Mongo (Imagem) Docker Container. O Mongo Porta de contêiner do docker 27017 é encaminhado para o porto 27017 no seu anfitrião do Docker. O Mongo-Express O serviço é responsável por iniciar o Mongo-Express (Imagem) Docker Container. Da mesma maneira, porto 8081 é encaminhado para o porto 8081 no anfitrião do Docker.

Ambos os serviços estão definidos para reiniciar (Reinicie: sempre) no fracasso.

Agora, salve o arquivo pressionando + X seguido pela Y e .

Agora, para iniciar os Serviços MongoDB e Mongo Express, execute o seguinte comando:

$ Docker -Compõe Up -d

Se você estiver executando este comando pela primeira vez, pode demorar um pouco para iniciar os serviços, pois as imagens do Docker serão baixadas do Docker Hub.

Os serviços devem começar.

Agora, de um navegador da web, visite http: // localhost: 8081 e a interface da Web Mongo Express devem ser exibidos como você pode ver na captura de tela abaixo. A partir daqui, você pode gerenciar bancos de dados do MongoDB, adicionar dados ao banco de dados e muito mais.

Configurando senha do banco de dados MongoDB:

Se você deseja configurar uma senha de banco de dados MongoDB, esta seção é para você.

Primeiro, pare os Serviços MongoDB e Mongo Express da seguinte forma:

$ docker-compor para baixo

Agora, edite o Docker-Compose.yml Arquivo o seguinte:

$ Nano Docker-Compose.yml

Agora, adicione o texto marcado (negrito) abaixo ao arquivo de configuração Docker-Compose.yml.

Versão: '3'
Serviços:
Mongo:
Imagem: Mongo
Reinicie: sempre
Portas:
- "27017: 27017"
ambiente:
Mongo_initdb_root_username: root
Mongo_initdb_root_password: segredo
Mongo-Express:
Imagem: Mongo-Express
Reinicie: sempre
Portas:
- "8081: 8081"
ambiente:
Me_config_mongodb_adminusername: root
ME_CONFIG_MONGODB_ADMIRPASSWORD: Secret

O Mongo_initdb_root_username: root e Mongo_initdb_root_password: segredo no Mongo A seção de serviço é usada para definir o nome de usuário do MongoDB raiz e senha segredo.

O Me_config_mongodb_adminusername: root e ME_CONFIG_MONGODB_ADMIRPASSWORD: Secret no Mongo-Express A seção de serviço é usada para dizer ao Mongo Express para usar o nome de usuário raiz e senha segredo Para conectar -se ao servidor MongoDB.

Arquivo de configuração final.

Agora, inicie os serviços da seguinte forma:

$ Docker -Compõe Up -d

Como você pode ver, ainda posso acessar a interface da Web Mongo Express.

Eu mudei o Mongo-Express senha para algo diferente segredo, E como você pode ver, não consegui me conectar ao servidor MongoDBB. Então, tudo está funcionando como esperado.

Salvando dados do MongoDB usando volumes:

Por padrão, o contêiner MongoDB não salva nenhum dado. Se você deseja que os dados do banco de dados do MongoDB persistam, você deve usar o Docker Volumes. Vou mostrar como nesta seção.

Primeiro, pare os serviços da seguinte forma:

$ docker-compor para baixo

Agora, adicione a seção marcada (em negrito) ao Docker-Compose.yml arquivo.

Versão: '3'
Serviços:
Mongo:
Imagem: Mongo
Reinicie: sempre
Portas:
- "27017: 27017"
ambiente:
Mongo_initdb_root_username: root
Mongo_initdb_root_password: segredo
volumes:
- Mongo-Data:/Data/DB
Mongo-Express:
Imagem: Mongo-Express
Reinicie: sempre
Portas:
- "8081: 8081"
ambiente:
Me_config_mongodb_adminusername: root
ME_CONFIG_MONGODB_ADMIRPASSWORD: Secret
volumes:
Mongo-Data:

Aqui, eu defini um novo volume nomeado Mongo-Data que salva os dados do caminho /dados/db do Mongo recipiente.

Arquivo de configuração final.

Agora, inicie os serviços da seguinte forma:

$ Docker -Compõe Up -d

Como você pode ver, a interface da Web Mongo Express está funcionando corretamente.

Eu criei um novo banco de dados mydb.

Agora, reinicie os serviços da seguinte forma:

$ docker-compose reiniciar

Como você pode ver, mesmo depois de reiniciar o Mongo (MongoDB) e Mongo-Express (Mongo Express) atenda o mydb Banco de dados ainda está disponível. Então, funcionou.

Alterar o nome do contêiner do MongoDB:

Por padrão, o nome do serviço de banco de dados MongoDB deve ser Mongo para que o Mongo Express funcione. Mas, se você quiser alterar o nome do serviço de banco de dados para outra coisa como MongoDB-Server, Então você terá que dizer o Mongo-Express Serviço que você mudou o Mongo Nome do serviço para outra coisa.

Primeiro, pare os serviços da seguinte forma:

$ docker-compor para baixo

Agora, mude/adicione o texto marcado no Docker-Compose.yml arquivo de configuração.

Versão: '3'
Serviços:
MongoDB-Server:
Imagem: Mongo
Reinicie: sempre
Portas:
- "27017: 27017"
ambiente:
Mongo_initdb_root_username: root
Mongo_initdb_root_password: segredo
volumes:
- Mongo-Data:/Data/DB
Mongo-Express:
Imagem: Mongo-Express
Reinicie: sempre
Portas:
- "8081: 8081"
ambiente:
Me_config_mongodb_adminusername: root
ME_CONFIG_MONGODB_ADMIRPASSWORD: Secret
ME_CONFIG_MONGODB_SERVER: MONGODB-SERVER
volumes:
Mongo-Data:

Aqui, ME_CONFIG_MONGODB_SERVER: MONGODB-SERVER é usado para dizer o Mongo-Express serviço que o Mongo O nome do serviço é alterado para MongoDB-Server.

O arquivo de configuração final.

Agora, inicie os serviços da seguinte forma:

$ Docker -Compõe Up -d

Como você pode ver, a interface da Web Mongo Express está funcionando ainda.

Definindo a senha de acesso Mongo Express:

Por padrão, a interface administrador do Mongo Express não solicita nenhuma informação de login. Mas se você deseja configurar um método de autenticação de nome de usuário e senha, esta seção é para você.

Primeiro, pare os serviços da seguinte forma:

$ docker-compor para baixo

Agora, adicione o texto marcado (em negrito) ao Docker-Compose.yml arquivo de configuração.

Versão: '3'
Serviços:
Mongo:
Imagem: Mongo
Reinicie: sempre
Portas:
- "27017: 27017"
ambiente:
Mongo_initdb_root_username: root
Mongo_initdb_root_password: segredo
volumes:
- Mongo-Data:/Data/DB
Mongo-Express:
Imagem: Mongo-Express
Reinicie: sempre
Portas:
- "8081: 8081"
ambiente:
Me_config_mongodb_adminusername: root
ME_CONFIG_MONGODB_ADMIRPASSWORD: Secret
Me_config_basicauth_username: admin
Me_config_basicauth_password: segredo
volumes:
Mongo-Data:

Aqui, Me_config_basicauth_username: admin e Me_config_basicauth_password: segredo é usado para contar Mongo-Express Serviço para usar o nome de usuário admin e a senha segredo para autenticação.

Arquivo de configuração final.

Agora, inicie os serviços da seguinte forma:

$ Docker -Compõe Up -d

Agora, se você tentar visitar a página do Mongo Express, você será solicitado a autenticar usando seu nome de usuário e senha.

Se você fornecer o nome de usuário e a senha corretos, poderá usar o Mongo Express para gerenciar seu banco de dados MongoDB.

Referências:

Para mais informações, verifique os seguintes links:
[1] Página oficial do Docker Hub de Mongo
[2] Página oficial do Docker Hub de Mongo-Express

Então, é assim que você configura um servidor MongoDB usando o Docker. Obrigado por ler este artigo.