拉取镜像

$ sudo docker pull mariadb:latest

创建数据容器/数据卷

用于持久化存储 mariadb 数据库的容器

$ sudo docker run --name mariadb_data -v mariadb_data:/var/lib/mysql mariadb /bin/true

创建数据卷

可以直接创建数据卷供容器使用,无需创建数据容器!

$ sudo docker volume create mariadb_data

创建数据库容器

实际运行 mariadb 服务的容器

sudo docker run --name mariadb -d \
    -e MYSQL_ROOT_PASSWORD="mypassword" \
    --volumes-from mariadb_data \
    --restart=always \
    mariadb:latest

如果使用数据卷

sudo docker run --name mariadb -d \
    -e MYSQL_ROOT_PASSWORD="mypassword" \
    -v mariadb_data:/var/lib/mysql \
    --restart=always \
    mariadb:latest

导入数据库

将从其他位置备份的 .sql 文件导入到 docker 容器的中的 mariadb 中。

第一步 复制 sql 文件到容器

将当前目录下的 getnas-171107.sql 复制到容器中 /root 目录:

$ sudo docker cp getnas-171107.sql mariadb:/root

第二步 进入 mariadb 容器

$ sudo docker exec -it mariadb /bin/bash

进入 /root 目录

# cd /root/

进入 mysql 命令行

# mysql -u root -p
Enter password:

创建、恢复数据库

MariaDB [(none)]> CREATE DATABASE getnas;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> USE getnas;
Database changed

MariaDB [getnas]> source getnas-171107.sql

通过 adminer 容器管理数据库

拉取镜像

$ sudo docker pull adminer:latest

提示:拉取速度慢时可以使用国内镜像,例如:sudo docker pull registry.docker-cn.com/library/adminer:latest

创建 adminer 容器

$ sudo docker run -d --name adminer -p 8989:8080 --link mariadb:db adminer

停用

$ sudo docker stop adminer

再次使用时

$ sudo docker start adminer

提示:为了避免端口冲突,也可以使用 --rm 参数创建临时的 adminer 容器,即程序退出自动销毁容器。