Docker学习之启动容器并进行目录挂载

本文详细介绍了如何在Docker中通过-v选项进行目录挂载,包括单目录、多目录及只读挂载,并探讨了使用privileged参数解决权限问题。涵盖了创建容器、挂载目录、权限设置和示例操作,适合开发者日常开发与同步工作需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

  • 内容介绍

    在创建容器的时候,将宿主机的目录与容器内的目录进行映射,从而实现宿主机和容器目录的双向数据自动同步

适用场景

  • 场景介绍

    通过容器目录挂载,能够轻松实现代码上传,配置修改,日志同步等需求

语法说明

单目录挂载


    docker run -it -v /宿主机目录:/容器目录 镜像名:版本号


多目录挂载



    docker run -it -v /宿主机目录:/容器目录 -v /宿主机目录2:/容器目录2 镜像名:版本号

只读目录挂载


    docker run -it -v  /宿主机目录:/容器目录:ro 镜像名:版本号


使用示例

  • 运行自定义镜像容器

    
        docker run -it -p 8070:8080 -v /root/software:/software --privileged=true  docker.io/centos /bin/bash
    
    
    

    -it 创建一个交互式的容器

    -p 映射端口8070 本机的端口 映射的容器的端口

    -v 挂载目录/root/software 本地目录 /software容器目录,在创建前容器是没有software目录的,docker 容器会自己创建

    –privileged=true 关闭安全权限,否则你容器操作文件夹没有权限

    –容器名称

    –CMD

  • 查看容器运行情况

    
        docker ps -a 
    
    
  • 进入容器

    
        # 可以是容器名称,也可以使用container id
        docker exec -it 容器名称 /bin/bash
    
        # 退出容器并关闭容器
        ctrl+c 
    
        # 退出不关闭容器
        ctrl+p+q 
    
    

其他

挂载的本地目录在容器中没有执行权限

  • privileged参数

    如果你同步的是多级目录,可能会出现权限不足的提示;

    这是因为Centos7中的安全模块selinux把权限禁掉了,我们需要添加 --privileged=true 来解决挂载的目录没有权限的问题

  • 实现方式

    docker容器启动

    
    	# docker run -d --name centos7 --privileged=true centos:7 /usr/sbin/init
    
    

    k8s集群启动

k8s启动指定privileged方式

参考资料

  • docker容器目录挂载

    https://www.cnblogs.com/makalochen/p/14241052.html

  • docker 启动,端口映射,挂载本地目录

    https://www.cnblogs.com/YasinXiao/p/7736075.html

  • 怎么以特权模式运行容器

    https://cloud.tencent.com/developer/article/1549664

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值