Docker6

Docker高阶使用

容器数据卷

在我们使用docker时我们的数据不应该存在容器中

MySQL为例,容器删了,数据库还留着

产生了一个需求,容器之间的数据共享技术

卷技术(目录挂载)将容器内的目录,挂载到linux

#卷挂载
sudo docker run -it -v 主机目录:容器内目录 
#查看容器详情信息,看卷挂载是否成功了
sudo docker inspect id

卷挂载成功后进行测试,从容器内创建文件,容器外进入挂载目录,可以查看到创建的文件,在容器外修改,容器内也被修改

注意!挂载目录是同步,而不是同一个文件,这意味着,数据的双份存储

练习MySQL

#首先拉取镜像,这里使用mysql5.7
sudo docker pull mysql:5.7
#运行容器,做数据挂载
sudo docker run -d -p 3310:3306 \ 			#后台启动并映射端口
-v /home/mysql5.7/conf:/etc/mysql/conf.d \ 	#将conf.d挂载到主机上
-v /home/mysql5.7/data:/var/lib/mysql  \ 	#将数据库挂载到主机上
-e MYSQL_ROOT_PASSWORD=123123 \ 			#设置root用户密码
--name mysql01 mysql:5.7					#别名-镜像
#启动成功之后,使用mysql数据库工具连接我们的容器
#测试成功
#删除容器测试
sudo docker rm -f id
#查看主机目录,数据文件依然存在

匿名具名挂载测试

#匿名挂载
sudo docker run -d -P --name ng01 -v /etc/nginx nginx
#使用volume参数查看
sudo docker volume 参数
create   	#创建卷
inspect 	#查看一个卷
ls			#列表查看所有卷
prune		#删除没有使用的卷
rm			#删除一个或多个卷
#查看
$ sudo docker volume ls
DRIVER              VOLUME NAME
local               6fd729574455ff389d0ad03dc718021cd18333931ca7d037188f2a0dae16b1a6
local               09e5fcecbe8893172109feffe91fe050d63a326350e6e1a6a887566483b38e4f
#这些volume name很长的自动生成的这些都是匿名挂载的卷
#具名挂载
sudo docker run -d -P --name ng02 -v nginx02:/etc/nginx nginx
#查看参数
$ sudo docker volume ls
DRIVER              VOLUME NAME
local               34cfea4d2dcb02372418594b91fc594ad3c1b8d8389a317ddd1c3b1da6c459c7
local               b85ad861d79504e18faeb952d939dc6c30381d0643c2b26448c53c44c95c1923
local               nginx02
#可以看到我们指定的名字 卷名:容器内目录
#下面查看卷的具体信息,里面有卷的目录
sudo docker volume inspect nginx02
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值