安装 Docker 和必要工具

确保 Docker 已安装并运行。安装后验证 Docker 是否正常运行:

docker -v
docker-compose -v

拉取数据库镜像

从 Docker Hub 获取所需的数据库镜像。例如 MySQL:

docker pull mysql:latest

其他常见数据库镜像命令:

  • PostgreSQL: docker pull postgres
  • MongoDB: docker pull mongo
  • Redis: docker pull redis

运行数据库容器

通过环境变量配置数据库。以 MySQL 为例:

docker run --name mysql_db \
-e MYSQL_ROOT_PASSWORD=yourpassword \
-e MYSQL_DATABASE=testdb \
-e MYSQL_USER=user \
-e MYSQL_PASSWORD=userpass \
-p 3306:3306 \
-d mysql:latest

参数说明:

  • --name 指定容器名称
  • -e 设置环境变量(密码、数据库名等)
  • -p 映射主机端口到容器端口
  • -d 后台运行

验证容器状态

检查容器是否正常运行:

docker ps

查看日志以排查问题:

docker logs mysql_db

连接数据库

从主机连接容器内的数据库。以 MySQL 为例:

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

输入配置的密码即可访问。

对于应用连接,使用以下连接字符串格式(以 MySQL 为例):

jdbc:mysql://localhost:3306/testdb?user=user&password=userpass

持久化数据存储

默认情况下容器停止后数据会丢失。通过卷挂载实现持久化:

docker run --name mysql_db \
-v /path/on/host:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=yourpassword \
-d mysql:latest

使用 Docker Compose 管理

创建 docker-compose.yml 文件简化管理:

version: '3'
services:
  db:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: yourpassword
      MYSQL_DATABASE: testdb
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:

启动服务:

docker-compose up -d

网络配置

自定义网络改善容器间通信:

docker network create app_network
docker run --name mysql_db --network app_network -d mysql

其他容器可通过容器名(如 mysql_db)直接访问数据库。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐