Docker修改容器的挂载目录(Oracle镜像为例)

挂载是什么

Docker中的挂载即数据卷。

数据卷特点

数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:

  1. 数据卷 可以在容器之间共享和重用
  2. 对数据卷的修改会立马生效
  3. 对数据卷的更新,不会影响镜像
  4. 数据卷默认会一直存在,即使容器被删除

如何知道镜像有哪些挂载点

这里以oracle镜像registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g为例

[root@master ~]# docker inspect registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g|grep Volumes -C2
            "Cmd": null,
            "Image": "helowin/oracle_cmd",
            "Volumes": {
                "/home/oracle/app/oracle/oradata": {}
            },
--
            "Cmd": null,
            "Image": "",
            "Volumes": {
                "/home/oracle/app/oracle/oradata": {}
            },
[root@master ~]# 

如何使用挂载

挂载按用户类型分为两类

  1. 容器中以root运行的,如:mysql
  2. 容器中不以root运行的,如:oracle
    对于以root运行的,直接-v挂载即可,以非root运行的则要注意目录或文件权限。(下面以非第一次运行介绍)

不明确定制挂载点时,挂载点的数据存哪

  1. 启动容器
    docker run -d -p 11521:1521 --privileged=true --name oracle11g_test registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
  2. 查看
[root@master ~]# docker inspect oracle11g_test|grep Mounts -A10
        "Mounts": [
            {
                "Type": "volume",
                "Name": "832f27bc76c7b9875d2f8e8c3687a2a31ed5f01e2ec91d8c1227dc0dccb1f965", #卷轴名
                #卷轴宿主目录
                "Source": "/data/docker/volumes/832f27bc76c7b9875d2f8e8c3687a2a31ed5f01e2ec91d8c1227dc0dccb1f965/_data",
                "Destination": "/home/oracle/app/oracle/oradata",#卷轴容器目录
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
[root@master ~]#

当启动时非使用挂载点,而后想调整成指定外部挂载

以oracle为例在这里插入图片描述

命令

①启动容器
②docker cp oracle11g:/home/oracle/app/oracle/oradata/ /data/docker_data/oracle/oracle11
③chown -R 500:500 /data/docker_data/oracle/oracle11
④systemctl stop docker.socket
⑤config.v2.json【参考上图】
⑥systemctl start docker
⑦docker volume prune #清除之前默认挂载点,即【不明确定制挂载点时,挂载点的数据存哪】中查找到的目录

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值