【Docker】之安装 MySQL
1、下载 MySQL 镜像下载最新版本的 MySQL 镜像(TAG 默认为 latest):docker pull mysql下载指定版本的 MySQL 镜像(以 5.7 版本为例):docker pull mysql:5.7更多 MySQL 版本镜像:1)进入 docker 镜像官网:https://hub.docker.com/,在镜像搜索栏中输入 MySQL,选择 MySQL 官方镜像:2)
·
1、下载 MySQL
镜像
下载最新版本的 MySQL 镜像(TAG 默认为 latest):
docker pull mysql
下载指定版本的 MySQL 镜像(以 5.7 版本为例):
docker pull mysql:5.7
更多 MySQL 版本镜像:
1)进入 docker 镜像官网:https://hub.docker.com/,在镜像搜索栏中输入 MySQL,选择 MySQL 官方镜像:
2)进入 MySQL 详情页面后,点击 Tags 切换到标签页面,可以看到各个版本的 MySQL 镜像:
2、创建并运行 MySQL
容器
创建并运行命令:
docker run -d -p 3306:3306 \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name=mysql \
mysql:5.7
参数说明:
-d
:在后台运行 MySQL;-p 3306:3306
: 将容器的 3306 端口映射到主机的 3306 端口;-v /mydata/mysql/log:/var/log/mysql
:把容器中的 MySQL 的日志文件夹 /var/log/mysql 挂载到主机路径 /mydata/mysql/log/ 中;-v /mydata/mysql/data:/var/lib/mysql
:把容器中的 MySQL 的数据库文件夹 /var/lib/mysql 挂载到主机路径 /mydata/mysql/data/ 中;-v /mydata/mysql/conf:/etc/mysql
:把容器中的 MySQL 的配置文件夹 /etc/mysql 挂载到主机路径 /mydata/mysql/conf/ 中;-e MYSQL_ROOT_PASSWORD=123456
:设置 root 用户密码;--name=mysql
:将容器命令为 mysql;mysql:5.7
:MySQL 镜像名称;
查看启动结果:
docker ps -l
------------
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bc4e04860781 mysql:5.7 "docker-entrypoint.s…" 1 minutes ago Up 5 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
设置 docker 启动时运行自动 MySQL (可选):
docker update mysql --restart=always
3、修改 MySQL
配置文件
在主机挂在 MySQL 配置目录中添加配置文件:
vi /mydata/mysql/conf/my.cnf
配置文件内容如下:
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
重启 MySQL 容器:
docker restart mysql
进入 MySQL 容器中也可以看到相应的配置文件:
docker exec -it mysql /bin/bash
---------------------------------
user@7b295c46c99d /: ls /etc/mysql/
my.cnf
4、相关建议
使用 Docker 部署 MySQL 会面临以下几个问题:
- 数据持久化:使用 Docker 部署 MySQL 需要将数据存储在 Docker 容器中,这意味着在删除容器时可能会导致数据丢失。为了解决这个问题,需要将数据存储在主机上或使用数据卷,这增加了一些复杂性。
- 性能问题:在 Docker 容器中运行 MySQL 会导致一些性能问题。例如,如果容器内存不足, MySQL 可能会因为内存不足而崩溃。此外,Docker 容器需要额外的虚拟化开销,这可能会导致 MySQL分在容器中运行的速度较慢。
- 安全问题:使用 Docker 部署 MySQL 可能会导致安全问题。例如,容器中的 MySQL 可能会受到容器逃逸攻击的威胁,因为容器中的其他进程可能会访问 MySQL 容器的文件系统。
- 复杂性:使用 Docker 部署 MySQL 可能会增加部署和管理的复杂性。需要考虑容器网络配置、数据卷挂载、容器间通信等问题。相比之下,直接在主机上安装和配置 MySQL 可能更加简单和直接。
所以,不建议正式服用 Docker 部署 MySQL。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献15条内容
所有评论(0)