docker容器中,如何访问本地ubuntu系统的文件夹

docker容器中,如何访问本地ubuntu系统的文件夹


目录挂载(最常用)

这是最常见的方式,直接将宿主机(你的Ubuntu系统)上的一个目录挂载到容器内的指定路径。
注意:*星号里的东西要替换成你自己的地址哦!

docker run -it -v /home/*用户名*/*my_project*:/app/data *镜像名称*:latest /bin/bash

这样,在容器内对 /app/data 的任何操作(创建、修改、删除文件),都会直接反映到本地的 /home/用户名/my_project目录中,反之亦然。

路径自动创建:如果 -v 参数中指定的宿主机目录路径不存在,Docker会自动创建这个目录

容器内的目标路径如果不存在,同样会被自动创建。

使用绝对路径:为了确保准确无误,强烈建议使用绝对路径(以 / 开头的完整路径)

使用相对路径可能导致挂载位置不符合预期

设置容器工作目录:可以使用 -w 参数直接让容器启动后进入挂载的目录

要从容器访问宿主机 Ubuntu 文件夹,有多种方法可以实现文件共享或挂载。以下是几种常见且实用的方式: ### 1. 使用 Docker 的卷(Volume)机制 Docker 提供了 `-v` 或 `--mount` 参数用于将宿主机的目录挂载到容器内部。这种方式允许在容器启动时就建立文件系统的共享连接,并且修改是双向同步的。 ```bash docker run -v /宿主机/目标文件夹:/容器内路径 -it ubuntu ``` 例如: ```bash docker run -v /home/user/shared_folder:/mnt/shared -it ubuntu ``` 这样就可以在容器内的 `/mnt/shared` 路径下访问宿主机上的 `/home/user/shared_folder` 文件夹内容[^3]。 ### 2. 在 LXD 容器中配置共享文件夹 对于 LXD 容器,可以通过以下步骤来设置与宿主机的文件夹共享: - **给宿主机共享文件夹权限**:确保宿主机上的目标文件夹具有适当的读写权限。 - **创建共享区域**:选择一个需要共享的文件夹,如 `/media/`。 - **将文件夹共享到指定的 LXD 容器**:使用 LXD 命令行工具或者编辑容器配置来添加绑定挂载。 - **可选:在容器添加 profile**:如果需要持久化配置,可以为容器创建一个新的 profile 并在此 profile 中定义挂载点。 具体命令和操作取决于你的 LXD 版本以及你想要共享的具体文件夹位置[^2]。 ### 3. 利用 `docker cp` 命令复制文件 如果你只需要一次性地将宿主机上的文件拷贝进正在运行的容器,可以使用 `docker cp` 命令。这不会创建持续的共享关系,但适合临时传输文件。 ```bash docker cp /宿主机/源文件 容器ID或名称:/容器内目标路径 ``` 例如: ```bash docker cp /usr/share/zoneinfo/Asia/Shanghai container_name:/usr/share/zoneinfo/Asia ``` 此命令会将宿主机上的 `Shanghai` 时区文件复制到指定容器中的相应位置[^4]。 ### 4. 手动进入容器并执行复制操作 当容器已经运行时,你可以先进入容器内部,然后通过 `cp` 或其他方式手动复制宿主机挂载过来的文件夹。假设你之前已经通过某种方式(比如上面提到的方法)使得宿主机的一个文件夹容器可见,那么可以在容器内部执行如下命令: ```bash cd /宿主机挂载点 ls # 查看文件列表 cp -r <文件夹名> /目标路径 ``` 这将把共享文件夹下的某文件夹复制到容器根目录下的指定位置[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值