如何删除已创建的docker容器中的文件夹

问题

image.png
我通过docker cp命令把’apache-maven-3.9.5’文件夹复制进了jenkins的容器中。但是当我想删除时却发现没有权限了。

过程

  1. 进去容器执行rm -rf /usr/local/apache-maven-3.9.5无效。没权限!!!
  • image.png
  1. 在容器外执行’docker exec 容器名 rm -rf /usr/local/apache-maven-3.9.5’ 无效。

解决办法

原理:

根据docker的数据卷挂载技术,将容器中的‘/usr/local/apache-maven-3.9.5’文件夹挂载到宿主机的一个文件夹,再重启docker后,‘/usr/local/apache-maven-3.9.5’文件夹中的文件就会变得和宿主机中的那个文件夹一样,如果宿主机的文件夹为空,那么‘apache-maven-3.9.5’文件夹就为空。

过程:

  1. 根据容器ID找到容器对应的配置文件
  • docker inspect jenkins

image.png

  • 找到宿主机中容器的配置文件路径

‘/var/lib/docker/containers/id号/’
‘/var/lib/docker/containers/4356788b2d5eb17e7c9be56ea9ec6d96ae6538a8cce7944fab67d809875f2a08/’

  • 在此路径下,要修改的就是以下两个文件,(修改前记得备份!!!)

image.png

  1. 先停止docker服务(service docker stop)
  2. 修改config.v2.json
  • 上面的框框不用管,看下面那个,是我们新增的。

image.png

  • 解释:
"【容器内目录】": {
	"Source": "【宿主机目录】",
	"Destination": "【容器内目录】",
	"RW": true,
	"Name": "",
	"Driver": "",
	"Type": "bind",
	"Propagation": "rprivate",
	"Spec": {
		"Type": "bind",
		"Source": "【宿主机目录】",
		"Target": "【容器内目录】"
	},
	"SkipMountpointCreation": false
}

  1. 修改hostconfig.json

在此数组中添加一项
格式:宿主机文件夹路径:容器中文件夹路径
image.png

  1. 在宿主机中新建文件夹:‘/opt/jenkins’
  2. 重启docker服务(service docker start)
  3. 启动该容器查看

image.png
里面的文件夹已经是空的了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值