使用podman创建MySql镜像容器
第一步:配置Podman镜像加速
目标 :解决因网络问题导致 podman pull 拉取官方镜像(如 docker.io )超时或失败的问题。
1.1创建并写入配置文件
执行以下命令,创建 /root/.config/containers/ 目录并写入 registries.conf 配置文件。
sudo mkdir -p /root/.config/containers/
cat << 'EOF' | sudo tee /root/.config/containers/registries.conf
unqualified-search-registries = ["docker.io"]
[[registry]]
prefix = "docker.io"
location = "docker.io"
[[registry.mirror]]
location = "docker.m.daocloud.io"
[[registry.mirror]]
location = "docker.actima.top"
[[registry.mirror]]
location = "docker.1ms.run"
[[registry.mirror]]
location = "registry.cn-hangzhou.aliyuncs.com"
EOF
1.2验证配置 (可选) :使用 cat 命令查看文件内容,确保写入正确。
cat /root/.config/containers/registries.conf
第二步:拉取 MySQL 镜像
1.1 拉取MySql镜像
podman pull mysql:8.0
查看本地镜像是否拉取成功
podman images
第三步:准备 MySQL 数据持久化目录
在宿主机上创建目录,用于挂载到 MySQL 容器中,以实现数据的持久化存储,防止容器删除后数据丢失。
1.1创建所有必需的目录MySQL 所需的配置、日志、数据和文件目录。
sudo mkdir -p /mhzch/mysql8.0.20/{etc/mysql/conf.d,logs,data,mysql-files}
检查目录结构:使用 ls -R 命令递归查看,确保目录结构正确。
ls -R /docker/mysql8.0.20/
第四步:启动 MySQL 容器
1.1执行 podman run 命令 :
此命令包含了端口映射、容器命名、数据卷挂载、后台运行和设置 MySQL root 密码等关键参数。
sudo podman run -p 3306:3306 --name mysql8 \
-v /mhzch/mysql8.0.20/etc/mysql:/etc/mysql \
-v /mhzch/mysql8.0.20/logs:/var/log/mysql \
-v /mhzch/mysql8.0.20/data:/var/lib/mysql \
-v /mhzch/mysql8.0.20/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0
1.2检查容器运行状态 :
确认 mysql8 容器正在运行 ( Up ) 并且没有退出 ( Exited )。
podman ps -a
第五步:配置 MySQL 远程连接
修改 MySQL 内部的用户权限,允许 root 用户从任何 IP 地址进行远程连接。
1.1进入容器的命令行
sudo podman exec -it mysql8 /bin/bash
1.2登录 MySQL 服务 :
进入容器后,使用之前设置的密码登录 MySQL。
mysql -u root -p
# (输入密码: xxxxxxx)
1.3执行授权命令
在 MySQL 提示符 ( mysql> ) 下,依次执行以下三条 SQL 命令。
-- 更改 root 用户的认证方式并更新密码,使其兼容旧版客户端
ALTER USER 'root'@'%' IDENTIFIED WITH
mysql_native_password BY 'Gj123456';
-- 授予 root 用户在所有数据库上的所有权限,并允许其从任何主机连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT
OPTION;
-- 刷新权限,使更改立即生效
FLUSH PRIVILEGES;
1.4退出容器内部
输入 exit 退出 MySQL,再次输入 exit 退出容器,返回到宿主机命令行。
完成以上所有步骤后,您的 MySQL 服务就已经完全准备就绪,可以接受远程连接了。

浙公网安备 33010602011771号