docker中运行mysql5.7并把数据库文件保存在宿主机上

docker的hub中的mysql 5.7官方镜像可以直接运行,但是数据库文件及错误日志默认是存放在docker image中的,删除container后,数据库中的数据将丢失。使用如下命令行可以完美解决该问题:

docker run -p 3306:3306 \
        --name mysql \
        --restart=always \
        -v /root/mysql/data:/var/lib/mysql \
        -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 \
        --log-error=/var/lib/mysql/error.log \
        --log-error-verbosity=2 
 

说明:

-p 3306:3306 把container的3306端口映射到宿主机的3306端口

---name mysql 指定container名称

--restart=always  重启机器后自动启动容器

-v /root/mysql/data:/var/lib/mysql   将宿主机的 /root/mysql/data目录映射到容器的/var/lib/mysql目录,后者正是存储数据库文件的位置

-e MYSQL_ROOT_PASSWORD=123456  设置数据库的root密码

-d 后台运行

--log-error=/var/lib/mysql/error.log  设置错误日志文件,同数据库在同一个位置

--log-error-verbosity 设置错误日志的等级,只记录错误信息及警告信息

发布了41 篇原创文章 · 获赞 7 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/boliang319/article/details/104103857