Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
拉取 MySQL 镜像
- 查找 MySQL 镜像并获取 MySQL 5.7 的镜像,不带版本号则获取最新的 MySQL 镜像
docker search mysql
docker pull mysql:5.7
- 创建 MySQL 容器
docker run -d -p 3306:3306 \
-v /opt/mysql/conf/my.cnf:/etc/my.cnf \
-v /opt/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=qwer1234 \
--name mysql mysql:5.7 \
--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
参数说明:
run
表示运行一个容器
-d
表示在后台运行
-p
表示容器内部端口和服务器端口映射关联,前面是宿主机端口,后面是容器端口
-v /opt/mysql/conf/my.cnf:/etc/my.cnf
映射配置文件
-v /opt/mysql/data:/var/lib/mysql
将容器的 /var/lib/mysql
目录挂载到主机的 /opt/mysql/data
目录
-e MYSQL_ROOT_PASSWORD=qwe123456
设置 MySQL 数据库 root 用户的密码
--name mysql
设置容器名称为 mysql
mysql:5.7
表示使用 Docker 镜像 mysql:5.7 创建一个容器
--character-set-server=utf8mb4
设置数据库的默认字符集
--collation-server=utf8mb4_general_ci
设置数据库的字符比较规则
- 查看是否启动成功
# 列出所有在运行的容器信息
docker ps
设置远程登录
配置好远程登录后可以通过一些第三方工具连入数据库,比如:Navicat
# 用命令行的方式进入容器
docker exec -it mysql bash
# 登录 MySQL
mysql -uroot -p
# 为 root 用户进行远程访问的授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'qwe123456' WITH GRANT OPTION;
# 重新加载权限数据,使之生效
flush privileges;
Comments | NOTHING