在使用docker run 运行镜像获取容器时,有些容器会自动产生一些数据,为了这些数据会因为container (容器)的消失而消失,保证数据的安全,比如mysql 容器在运行中产生的一些表的数据,有一天我如果使用docker rm 将容器删除那么数据就丢失了。为了这个原因就就的将容器中的目录挂载到宿主机,以保证数据的安全
首先在docker hub中pull mysql 镜像
其次创建mysql持久化文件目录:通常只需要data 和conf
启动容器
docker run -itd --name mysql5.7 -p 3306:3306 --mount type=bind,src=/usr/local/src/data,dst=/var/lib/mysql --mount type=bind,src=/usr/local/src/conf,dst=/etc/mysql/conf.d --mount type=bind,src=/usr/local/src/logs,dst=/var/log --privileged=true -e MYSQL_ROOT_PASSWORD=admin123 mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode-ci
--name :设置启动容器的名字
--mount 绑定数据目录和服务器配置文件
-p 端口映射 格式为: 宿主机端口:容器端口
-e MYSQL_ROOT_PASSWORD 设置数据库密码
--chaeacter-set-server 设置编码
--collation-server 设置编码
--privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
检查配置信息docker inspect xxx
在输出的json格式中找到
mounts 简直查看source 和 target 的值是否为mount 绑定的目录
启动8.0 目录挂载
docker run -p 3307:3306 -v /opt/mysql8/conf:/etc/mysql/conf.d -v /opt/mysql8/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=admin123 --name mysql8 -d mysql:8.0
参考链接:https://www.lmaye.com/2019/05/22/20190522162930/
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:docker 启动mysql 挂载宿主机目录 - Python技术站