需求:如果数据都在容器中,那么我们容器删除,数据就会丢失。因此引来新技术容器卷。
数据卷的作用:容器的持久化和同步数据的 *** 作,并且容器间数据可以共享。
数据卷的好处:修改内容只需在本地修改而无须进入到容器内部进行修改。
使用数据卷: 方式一: 1、直接使用命令来挂载:-v-v /宿主机目录:容器内路径
-p 主机端口:容器内端口
例:docker run -it -v /home/test:/home nginx linux上的/home/test和容器中的/home进行挂在,实现数据共享,即在linux上的/home/test下添加或者编辑数据,容器内的home路径下同步内容(如果容器stop掉,数据依然同步)
docker attach 容器id 进入到正在运行的容器
docker inspect 72b49497fda7 查看容器的详细信息,如下信息说明挂在成功
"Mounts": [
{
"Type": "bind",
"Source": "/home/test",
"Destination": "/home",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
-v 容器内路径
-P 随机指定端口
-it 后台运行且终端控制
docker run -it -P --name nginx_01 -v /etc/nginx nginx
-v 数据卷名称:容器内路径
docker run -it -P --name nginx_02 -v nginx_v01:/etc/nginx nginx
#查看所有的数据卷
docker volume ls
#查看某个卷的详细信息
总结:所有的docker容器内的卷,当没有指定容器外的映射路径,默认的挂载路径为:
/var/lib/docker/volumes_data
安装mysql:1、docker search mysql
2、docker pull mysql
3、运行mysql,设置用户名和密码
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
-p 端口映射
-e 环境配置ro 只读
rw 可读可写
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d --name some-mysql -e MYSQL_ROOT_PASSWORD=root --name root mysql:5.7
docker设置容器内的 *** 作权限:(也就是只能在宿主机上 *** 作)
docker run -it -P --name nginx_02 -v nginx_v01:/etc/nginx:ro nginx
docker run -it -P --name nginx_02 -v nginx_v01:/etc/nginx:rw nginx
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)