1. docker拉取mysql镜像
docker pull mysql:5.7
2. 在宿主机上映射路径
目的:用于docker中mysql配置路径映射到宿主机
mkdir -p /opt/docker/mysql/log
mkdir -p /opt/docker/mysql/data
mkdir -p /opt/docker/mysql/conf
3. 创建mysql配置文件
注意:是宿主机器,非docker容器
vi /opt/docker/mysql/conf/my.cnf
将以下配置写入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
4. 启动运行mysql
docker run -d -p 3306:3306 --name mysql57 \
-v /opt/docker/mysql/log:/var/log/mysql \
-v /opt/docker/mysql/data:/var/lib/mysql \
-v /opt/docker/mysql/conf:/etc/mysql \
--restart=always \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
命令解释
docker run:这是 Docker 启动容器的命令。
-p 3306:3306:这部分命令将主机的端口 3306 映射到容器内的 3306 端口。这样,您可以通过主机的 3306 端口来访问容器内运行的 MySQL 服务。
--name mysql:通过此选项,您为容器指定了一个名称,即 mysql。这使得容器更容易识别和管理。
-v /opt/docker/mysql/log:/var/log/mysql:这是一个数据卷挂载操作,将主机上的 /opt/docker/mysql/log 目录挂载到容器内的 /var/log/mysql 目录。这样,MySQL 日志文件将在主机上存储,以供查看。
-v /opt/docker/mysql/data:/var/lib/mysql:同样,这是另一个数据卷挂载操作,将主机上的 /opt/docker/mysql/data 目录挂载到容器内的 /var/lib/mysql 目录。这用于将 MySQL 数据文件保存在主机上,以便数据持久化。
-v /opt/docker/mysql/conf:/etc/mysql:此挂载操作将主机上的 /opt/docker/mysql/conf 目录挂载到容器内的 /etc/mysql 目录。这样,您可以提供自定义的 MySQL 配置文件。
--restart=always:这个选项指示 Docker 在容器退出时自动重新启动容器。这对于确保 MySQL 服务一直可用非常有用。
-e MYSQL_ROOT_PASSWORD=123456:这个选项设置 MySQL 根用户的密码。在示例中,密码被设置为 123456
-d:这个选项使容器在后台运行,以允许您继续在终端中执行其他命令。
mysql:5.7:这是要运行的 Docker 镜像的名称和标签。在此示例中,使用 MySQL 5.7 镜像。
重要
记得改密码 123456 真的是最好猜测的密码了