então eu sou realmente novo no docker e posso estar usando-o incorretamente aqui, mas torna a criação de um banco de dados mysql REALMENTE fácil, então é por isso que eu queria tentar em vez de instalar uma instância na minha máquina remota (na LAN).
Então eu quero acessar o banco de dados MariaDB de uma máquina diferente/remota porém em todos os lugares que eu olho parece estar fornecendo informações desatualizadas, ( mesmo a documentação oficial do mariaDB ) não fornece as informações corretas, eu tentei o que eles dizem e acredito que é apenas para acessar o contêiner da mesma máquina em que ele está sendo executado. Qualquer artigo ou * resposta de troca que vejo diz para você entrar no terminal bash do contêiner, em seguida, mude /etc/msql/my.cnf
para ter bind_address=0.0.0.0
e isso está desatualizado, pois não está bind_address
mais no my.cnf em que está localizado /etc/mysql/mariadb.conf.d/50-server.cnf
e há uma linha que indica
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
Eu também não consegui encontrar nenhuma referência a uma variável de ambiente que eu pudesse definir para me permitir acessá-la remotamente, então eu realmente não sei mais onde procurar sobre como alterar a configuração para me permitir acessar o banco de dados de minha rede.
E sim, eu tenho uma configuração de usuário para permitir conexões remotas. Toda e qualquer ajuda é apreciada.
Em uma nota lateral, parece ser muito difícil mudar isso, então isso me faz acreditar que isso é uma prática ruim ou a ser evitada e isso me faz acreditar que estou entendendo o docker errado, pensei que o docker deveria permitir que você executasse pequenas instâncias de software que não interagem entre si, portanto, se uma instância for prejudicada, o resto não, mas por que eles estão tão empenhados em não permitir uma conexão remota?
danblack já respondeu sua pergunta, mas gostaria de salientar que você provavelmente não deve deixar seu container se comunicar com o sistema host. Sua dúvida de que esta é uma má prática está correta, na minha opinião.
O que você está tentando fazer? Conectando seu banco de dados manualmente? É fácil fazer isso. Corre:
Ou você quer que um aplicativo use o MariaDB? Nesse caso, o aplicativo deve ser executado em um contêiner. O contêiner MariaDB e o contêiner do aplicativo devem acessar a mesma rede Docker . Isso pode ser um pouco complicado para um iniciante do Docker, mas você pode automatizar a criação e manutenção de contêineres com o Docker Compose .
A configuração de escuta de conexões remotas está fora do contêiner.
A configuração padrão do contêiner de
mariadb
escuta em todas as interfaces dentro do contêiner.O docker/podman
-p
ou-P
é necessário para expor essas interfaces ao host que executa o contêiner.Se conexões externas forem necessárias ouvindo um IP não local (parte de
-p
, que por padrão será vinculado a todas as interfaces). Além disso, as configurações de firewall e roteamento são necessárias e podem não ser o padrão.