1分钟彻底熟悉Docker数据卷:容器mysql与云服务器MySQL的桥梁(Docker)
前言:为什么要使用Docker数据卷?若是删除了容器,数据也会随之删除,这也叫删除跑路,那么将会从学习docker入门到入狱。所以,我们必须要将容器内的数据持久化到容器外的服务器。一、了解Docker数据卷命令-----------------------------------------------------------初步了解--------------------------------
·
前言:
- 为什么要使用Docker数据卷?若是删除了容器,数据也会随之删除,这也叫删除跑路,那么将会从学习docker入门到入狱。所以,我们必须要将容器内的数据持久化到容器外的服务器。
一、了解Docker数据卷命令
-----------------------------------------------------------初步了解----------------------------------------------------
- -v 容器外全路径目录:容器内全路径目录;挂载数据,两个路径双向同步信息,任何一个删除,另一个都会删除。(但是容器删除,云服务器数据不会被删除)
- 安全组开启3344和宝塔开启防火墙3346(注意:只能开启3000-3500防火墙,若设置范围外会报错):
- 使用挂载启动:docker run -it -p 3346:9001 -v /opt/litao:/opt/litao centos /bin/bash
- 容器内创建文件:
- 在容器外查看,发现服务器已经同步了容器内的数据:
- 查看挂载:docker inspect 容器id;
- exit;退出容器内所有数据都没了,再次启动容器只会启动一个新的容器。但如果做了容器数据卷同步,同步在服务器的文件/文件夹不会消失。容器外的服务器的数据文件不会消失:
--------------------------------------服务器MySQL与容器mysql挂载数据-----------------------------------------
- 建议去DockerHub官网查看各种镜像的数据如何挂载:Docker Hub
- docker images --digests ;查看我们mysql的版本
- 安全组开启3347和宝塔开启防火墙3347(注意:只能开启3000-3500防火墙,若设置范围外会报错);
- docker run -p 3347:3306 --name dockermysql -v /opt/dockermysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=密码 -d mysql:latest
;官方文档mysql的挂载建议,这里的密码是docker的mysql密码,不是服务器的mysql - 查看是否已经成功运行:
- 查看是否已经完成数据挂载:
- 用Navicat进行连接:
- 成功进入docker的mysql!
---------------------------------快速容器mysql挂载数据:匿名、具名挂载-------------------------------------
- 概念:想要快速进行挂载,不用关心在服务器的挂载位置,就可以进行匿名、具名挂载。
- 匿名挂载(不适用):只需要指定容器内的全路径,不用再关心容器外的挂载位置,因为在容器外可以通过命令去查看容器内挂载的数据位置。
- docker run -d -p 3344 --name nginx01 -v /ect/nginx nginx;匿名挂载nginx,只标识了容器内路径
- ---------常用----------
- 具名挂载(大多数时候使用):只需要指定容器内的全路径,不用再关心容器外的挂载位置,但是需要取名挂载的唯一标识名字,因为在容器外可以通过命令去查看容器内挂载的数据位置。
- docker run -d -p 3345 --name nginx02 -v litaonginx:/ect/nginx:ro nginx ;具名挂载nginx,只取了在数据目录的了唯一标识符名字。:ro或:rw的作用是,限定容器对该数据的写或读,防止容器内进行删除,但是服务器的数据也进行删除(因为是双向同步的)。如设置了:ro,只能通过服务器操作写删操作,容器内不能。
- docker volume ls;查看数据目录
- 通过具名挂载后:
更多推荐
已为社区贡献1条内容
所有评论(0)