Docker挂载

1.挂载的概念

预备:你需要了解docker的基本知识

docker实现了容器部署,那当我们需要配置或者查看容器生成的日志文件怎么办?

docker提供了挂载机制:挂载能够将容器内的目录/文件和外部的目录/文件关联起来

关于挂载,网上很多帖子也说不太清晰,遇到问题让人很迷茫,在此简单整理

挂载的机制:

  • 挂载前,文件以宿主机为准,挂载操作会将两边文件/文件夹处理成为宿主机文件夹状态

    所以当你想要进行配置挂载时,需要先在宿主机创建配置文件,才能进行挂载。挂载操作无法将容器内配置文件挂载到宿主机上。

    例:宿主机conf文件夹为空,容器内conf文件夹不为空,执行 -v 宿主机conf:容器conf,最后宿主机文件夹仍然为空,容器内的conf也会为空。因为挂载操作以宿主机为准。

  • 挂载后,挂载后宿主机和容器内的文件夹会保持一致。当容器内新生成了文件,宿主机的文件夹中也会更新,查看到该文件。当宿主机修改文件,该操作也会反映到容器内。

2.如何让容器挂载到宿主机

我没有找到很快捷的方法,就好像docker run -v这样一步即可完成的命令。

如果想要让容器内的文件挂载到宿主机,需要首先创建一个临时的容器,进入容器查看目录结构并且找到想要挂载的文件/文件夹。退出容器,使用docker -cp命令将容器内的文件/文件夹复制到宿主上。再在宿主机上进行文件配置修改,最终删除临时容器,使用docker run -v命令完成挂载

流程:

  1. 创建临时容器:略

  2. 进入容器

    docker exec -it 容器名 bash
  3. 退出容器,并将容器内文件夹复制到宿主机

    exit
    #通过调整两个路径的顺序,能够调整cp的指向,与linux cp相同
    docker cp 容器名:路径 路径
  4. 删除容器:略

  5. 挂载

    docker run -v 宿主机路径:容器内路径
posted @   yikolemon  阅读(324)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示