插件窝 干货文章 如何访问docker数据库

如何访问docker数据库

Docker 容器 mysql network 315    来源:    2025-04-26

如何访问Docker容器中的数据库

访问运行在Docker容器中的数据库主要有以下几种方法:

1. 通过端口映射访问

在运行容器时,将容器内部的数据库端口映射到宿主机的端口:

docker run -d -p 3306:3306 --name mysql-container -e MYSQL_ROOT_PASSWORD=yourpassword mysql:latest

然后可以通过宿主机IP和映射的端口(3306)访问数据库。

2. 使用Docker网络连接

创建自定义网络

docker network create my-network

运行数据库容器并加入网络

docker run -d --name mysql-container --network my-network -e MYSQL_ROOT_PASSWORD=yourpassword mysql:latest

运行应用容器并加入同一网络

docker run -d --name app-container --network my-network your-app-image

在应用容器中,可以通过容器名(mysql-container)直接访问数据库。

3. 使用Docker exec进入容器

docker exec -it mysql-container mysql -u root -p

4. 通过Docker Compose

在docker-compose.yml中定义服务和网络:

version: '3'
services:
  db:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: yourpassword
    ports:
      - "3306:3306"
    networks:
      - my-network

  app:
    build: .
    depends_on:
      - db
    networks:
      - my-network

networks:
  my-network:
    driver: bridge

不同数据库的访问示例

MySQL/MariaDB

mysql -h 127.0.0.1 -P 3306 -u root -p

PostgreSQL

psql -h 127.0.0.1 -p 5432 -U postgres

MongoDB

mongo --host 127.0.0.1 --port 27017 -u username -p password

Redis

redis-cli -h 127.0.0.1 -p 6379

安全注意事项

  1. 不要使用默认密码
  2. 生产环境中限制外部访问
  3. 考虑使用Docker secrets管理敏感信息
  4. 定期备份数据库数据

您需要哪种数据库的具体访问方式?或者遇到了什么问题?我可以提供更详细的指导。