我的编程空间,编程开发者的网络收藏夹
学习永远不晚

docker怎么对已经启动的容器添加目录映射

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

docker怎么对已经启动的容器添加目录映射

今天小编给大家分享一下docker怎么对已经启动的容器添加目录映射的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

    1. 背景

    在自己安装sharding-proxy时,使用docker run -v的方式启动时,只挂载了/opt/shardingsphere-proxy/conf/opt/shardingsphere-proxy/ext-lib这两个目录,忘记挂载/opt/shardingsphere-proxy/logs日志目录,导致每次查看都得要进入容器内部去查看,很是麻烦,于是考虑如何在不删除容器重新启动部署的情况下进行新目录的映射与挂载

    2. 开始新增挂载目录

    1.查看容器存放目录

    [root@iZ2zedqr9yeos47fg4uor5Z proxy-a]# docker info | grep 'Root' Docker Root Dir: /var/lib/docker[root@iZ2zedqr9yeos47fg4uor5Z proxy-a]#

    2.查看要新增挂载的容器id

    [root@iZ2zedqr9yeos47fg4uor5Z proxy-a]# docker psCONTAINER ID   IMAGE                               COMMAND                  CREATED       STATUS          PORTS                               NAMES6f5f3c195304   apache/shardingsphere-proxy:5.1.1   "/bin/sh -c '${LOCAL…"   4 days ago    Up 9 minutes    0.0.0.0:3321->3307/tcp              server-proxy-a

    3.进入要新增文件夹挂载的目录

    [root@iZ2zedqr9yeos47fg4uor5Z proxy-a]# docker psCONTAINER ID   IMAGE                               COMMAND                  CREATED       STATUS          PORTS                               NAMES6f5f3c195304   apache/shardingsphere-proxy:5.1.1   "/bin/sh -c '${LOCAL…"   4 days ago    Up 11 minutes   0.0.0.0:3321->3307/tcp              server-proxy-a[root@iZ2zedqr9yeos47fg4uor5Z proxy-a]# cd /var/lib/docker/containers/[root@iZ2zedqr9yeos47fg4uor5Z containers]# lltotal 64drwx------ 4 root root 4096 Nov  7 14:20 1d0c21204385f60fa8859b0ff199569988218e449155634470cfb14ff2ceebf9drwx------ 4 root root 4096 Nov  7 14:20 21a5f8b6e68ee09f8f80381c536b38abec1b8dcb81c69f1c50caeb95e8ebb35fdrwx------ 4 root root 4096 Nov  7 14:20 28242c9fd16bd610880d42a773e078221a0d34b1c779935fc0c8609a1b63666adrwx------ 4 root root 4096 Nov  7 14:22 2bc290c8e158229fdc5291a3ea53c5721f5becd39c8cb47cb2f826f6349ac778drwx------ 4 root root 4096 Nov  7 14:20 2fc0e1b1031abe6b1871332b971ccdc40185b7441e94ba3c266f51d2d4728412drwx------ 4 root root 4096 Nov  7 14:20 3124c345f129a3c542423c68061c6ded5b41a649b25991125c8e81da7b010e7edrwx------ 4 root root 4096 Nov  7 14:20 4a1e699a3711b92918f711d7ab021a5ac62bab1b8353ed321337c6f94ac50533drwx------ 4 root root 4096 Nov  7 14:20 4cdc6456250a922e60f3394b26064be0541f04a0c34825c6487e73ed7979705adrwx------ 4 root root 4096 Nov  7 14:20 53d710c37c08b9c2ab0c84fea2059d067bbcbc38f22aa2e654e1c62758b1df44drwx------ 4 root root 4096 Nov  7 14:41 6f5f3c1953044043672723cdf4f3725c500e77a54e07cd0a4759371c04c0cfa1drwx------ 4 root root 4096 Nov  7 14:20 73cc941fd394d42b8cbdc8fd7a50fc098b5d56c0323e5b9a786703d21a102d33drwx------ 4 root root 4096 Nov  7 14:35 8dc6124199b0ef6afbc9d2b542c5a46c8767e7daafd52bfedd53a83491e17db0drwx------ 4 root root 4096 Nov  7 14:20 9c554d94d5eb6c2c6015994b52ae3f3c31d182dde189d86427840b4a1c5d6477drwx------ 4 root root 4096 Nov  7 14:20 a073fcd724623a98168564707dccfb9562d94d89c0882ad2fd92798a2137be0ddrwx------ 4 root root 4096 Nov  7 14:21 b1191679d1ecea73a74f44ee74b33281fbcccc942307630db02f2cb9e86869d0drwx------ 4 root root 4096 Nov  7 14:20 eb30519b4804f9ca3c708260e885f99d693332af4a162a956952b601332fed97[root@iZ2zedqr9yeos47fg4uor5Z containers]# cd 6f5f3c1953044043672723cdf4f3725c500e77a54e07cd0a4759371c04c0cfa1/[root@iZ2zedqr9yeos47fg4uor5Z 6f5f3c1953044043672723cdf4f3725c500e77a54e07cd0a4759371c04c0cfa1]# lltotal 488-rw-r----- 1 root root 461990 Nov  7 14:41 6f5f3c1953044043672723cdf4f3725c500e77a54e07cd0a4759371c04c0cfa1-json.logdrwx------ 2 root root   4096 Nov  2 22:29 checkpoints-rw------- 1 root root   4041 Nov  7 14:41 config.v2.json-rw-r--r-- 1 root root   1705 Nov  7 14:41 hostconfig.json-rw-r--r-- 1 root root     13 Nov  7 14:41 hostname-rw-r--r-- 1 root root    174 Nov  7 14:41 hostsdrwx------ 2 root root   4096 Nov  2 22:29 mounts-rw-r--r-- 1 root root    149 Nov  7 14:41 resolv.conf-rw-r--r-- 1 root root     71 Nov  7 14:41 resolv.conf.hash[root@iZ2zedqr9yeos47fg4uor5Z 6f5f3c1953044043672723cdf4f3725c500e77a54e07cd0a4759371c04c0cfa1]#

    我们将要修改的文件就是config.v2.jsonhostconfig.json

    4.关闭容器、关闭docker

    systemctl stop docker

    5.修改config.v2.json

    说明:想要将容器中的/opt/shardingsphere-proxy/logs目录映射到宿主机的/atguigu/server/proxy-a/logs目录下。
    config.v2.json文件中找到MountPoints,添加如下/opt/shardingsphere-proxy/logs的映射即可(这里如果前面还有内容的话,注意逗号)

    {    ......"MountPoints": {......,"/opt/shardingsphere-proxy/logs": {"Source": "/atguigu/server/proxy-a/logs","Destination": "/opt/shardingsphere-proxy/logs","RW": true,"Name": "","Driver": "","Type": "bind","Propagation": "rprivate","Spec": {"Type": "bind","Source": "/atguigu/server/proxy-a/logs","Target": "/opt/shardingsphere-proxy/logs"},"SkipMountpointCreation": false}},......}

    6.修改hostconfig.json

    说明:Binds中添加内容"/atguigu/server/proxy-a/logs:/opt/shardingsphere-proxy/logs"

    {"Binds": [......,"/atguigu/server/proxy-a/logs:/opt/shardingsphere-proxy/logs"],......}

    7.重启docker与容器

    systemctl start docker
    docker start 容器id

    8.进行目录验证

    目录成功映射 出来,查看日志就不用每次很麻烦的进入容器内部查看了

    [root@iZ2zedqr9yeos47fg4uor5Z logs]# pwd/atguigu/server/proxy-a/logs[root@iZ2zedqr9yeos47fg4uor5Z logs]# lltotal 36-rw-r--r-- 1 root root 36421 Nov  7 14:41 stdout.log-rw-r--r-- 1 root root     0 Nov  7 14:41 xa_tx1.log-rw-r--r-- 1 root root     0 Nov  7 14:41 xa_tx.lck[root@iZ2zedqr9yeos47fg4uor5Z logs]#

    3. 注意

    • config.v2.json和hostconfig.json文件修改之前,需要关闭docker与容器!如果先修改了这两个文件,再关闭docker,这两个文件中的内容会被重置掉,导致新增的目录映射失效 (自己在这里折腾了很久才发现的!)

    • config.v2.json和hostconfig.json文件vi命令打开后,并非格式化后的json,这里可以通过:%!python3 -m json.tool命令将其进行格式化,方便查看。

    以上就是“docker怎么对已经启动的容器添加目录映射”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    docker怎么对已经启动的容器添加目录映射

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    docker怎么对已经启动的容器添加目录映射

    今天小编给大家分享一下docker怎么对已经启动的容器添加目录映射的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 背景在
    2023-07-05

    docker如何对已经启动的容器添加目录映射(挂载目录)

    当我们创建容器之后,不可避免会遇到修改配置文件的操作,下面这篇文章主要给大家介绍了关于docker如何对已经启动的容器添加目录映射(挂载目录)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-21

    docker已启动容器修改添加端口映射的两种方法

    最近工作中遇到一个问题,docker容器启动后怎么修改端口映射?通过查找相关资料解决了,这篇文章主要给大家介绍了关于docker已启动容器修改添加端口映射的两种方法,需要的朋友可以参考下
    2022-11-13

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录