Docker 对已经启动的容器添加目录映射

这篇具有很好参考价值的文章主要介绍了Docker 对已经启动的容器添加目录映射。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

需要在测试环境先进行试验,操作不当可能导致容器无法启动!!!
操作系统:CentOS 7.9.2009 x86_64
Docker 版本:20.10.12

一、为什么进行该操作?

使用 Docker 进行部署 TDengine 数据库,需要每天进行数据备份,但是创建该容器时没有添加目录映射到宿主机,如果容器异常可能导致数据无法恢复。

二、使用步骤

1.查看容器存放目录

[root@iZ8vb4dtxkvou8zszgdug8Z ~]# docker ps
CONTAINER ID    IMAGE                COMMAND                  CREATED         STATUS          PORTS                                                                                                                 NAMES
664fcaf90293    tdengine/tdengine    "/tini -- /usr/bin/e…"   4 weeks ago     Up 16 minutes   0.0.0.0:6030->6030/tcp, 0.0.0.0:6041->6041/tcp, 0.0.0.0:6043-6049->6043-6049/tcp, 0.0.0.0:6043-6049->6043-6049/udp    tdengine

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

[root@iZ8vb4dtxkvou8zszgdug8Z ~]# cd /var/lib/docker/containers
[root@iZ8vb4dtxkvou8zszgdug8Z containers]# ll
total 16
drwx--x--- 4 root root 4096 Jul 16 14:25 664fcaf902931245658b20e33941c0fae78d0a3b60b318fda2f4163d85b54497

3.进入容器目录

[root@iZ8vb4dtxkvou8zszgdug8Z containers]# cd 664fcaf902931245658b20e33941c0fae78d0a3b60b318fda2f4163d85b54497/
[root@iZ8vb4dtxkvou8zszgdug8Z 664fcaf902931245658b20e33941c0fae78d0a3b60b318fda2f4163d85b54497]# ll
total 1011816
-rw-r----- 1 root root 1036058432 Jul 16 14:50 664fcaf902931245658b20e33941c0fae78d0a3b60b318fda2f4163d85b54497-json.log
drwx------ 2 root root       4096 Jun 16 09:50 checkpoints
-rw------- 1 root root       4991 Jul 16 14:25 config.v2.json
-rw-r--r-- 1 root root       2211 Jul 16 14:25 hostconfig.json
-rw-r--r-- 1 root root         13 Jul 16 14:25 hostname
-rw-r--r-- 1 root root        174 Jul 16 14:25 hosts
drwx--x--- 2 root root       4096 Jun 16 09:50 mounts
-rw-r--r-- 1 root root        149 Jul 16 14:25 resolv.conf
-rw-r--r-- 1 root root         71 Jul 16 14:25 resolv.conf.hash

4.修改 config.v2.json 和 hostconfig.json

  • 关闭 docker(如果先修改了这两个文件,再关闭docker,会导致新增的目录映射失效)
    systemctl stop docker
  • 将容器中的 /home 目录映射到宿主机的 /home/taosdata 目录下
  • 修改 config.v2.json
    vim config.v2.json #找到 MountPoints,添加以下配置
"/home":{
    "Source":"/home/taosdata",
    "Destination":"/home",
    "RW":true,
    "Name":"",
    "Driver":"",
    "Type":"bind",
    "Spec":{
        "Type":"bind",
        "Source":"/home/taosdata",
        "Target":"/home"
    },
    "SkipMountpointCreation":false
}
  • 修改 hostconfig.json
    vim hostconfig.json #找到 MountPoints,添加以下配置
"Binds": [
    "/home/taosdata:/home"
]
  • 注意事项以及修改结果
    config.v2.json 和 hostconfig.json 文件 vim 命令打开后,并非格式化后的 json,这里可以通过 :%!python3 -m json.tool 命令将其进行格式化,config.v2.json 修改后如下图所示:

ubuntu 已经启动的docker新增目录映射,运维 - Linux,docker,容器,运维文章来源地址https://www.toymoban.com/news/detail-761603.html

5.重启 Docker 与容器

systemctl start docker
docker start 容器ID

到了这里,关于Docker 对已经启动的容器添加目录映射的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker 容器修改端口和目录映射

    一般在运行容器时,我们都会通过参数 -p(使用大写的-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如 这里是将容器内的80端口映射到宿主机的8088端口 参数说明 -d 表示后台运行容器 -t 为docker分配一个伪终端并绑定到容器的标准输入上

    2024年04月26日
    浏览(54)
  • docker将本地目录映射到容器

    留个记录,方便回看 1.查看容器存在位置 返回的是docker容器存储的位置:/var/lib/docker 2.获取容器对应的那个较长的id 会返回一个挺长的容器id,例如9dc7dcfcc1d3d4b413a75ef6f70ddf6c6b03c3003e03916a3faadcf25e4ee813 3.进入对应容器配置文件目录 进入之后应该可以看到 config.v2.json 和 hostconfig.js

    2024年02月09日
    浏览(44)
  • 如何修改 docker 容器的目录映射

    创建容器时,指定了目录映射(-v) 如果容器运行之后发现目录映射需要改怎么办? 方法一 删除原有容器,重新创建新的容器 删除容器 docker rm -f 容器ID/名字 重新创建容器 docker run -d -p 9999:8080 -i --name tomcat7 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat:7 重新指定需要映射

    2024年02月16日
    浏览(41)
  • docker容器添加对外映射端口

    在容器首次启动是,可通过-p参数(-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如: 上述命令将容器内的80端口映射到宿主机的8088端口。 参数说明 -d 表示后台运行容器 -t 为docker分配一个伪终端并绑定到容器的标准输入上 -i 是让容器

    2024年02月09日
    浏览(40)
  • Docker介绍下载安装、制作镜像及容器、做目录映射、做端口映射

    在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是

    2023年04月12日
    浏览(55)
  • Docker给容器添加新端口映射

    Docker容器创建后,其网络配置通常是固定的,包括端口映射。基于Docker的原生工具,一旦容器启动,就无法直接修改其端口映射。然而,有几种方法可以解决需要对现有容器添加新端口映射的问题。 最直接的方法是创建一个新的容器,并在创建时指定所有需要的端口映射。这

    2024年03月28日
    浏览(56)
  • docker给运行中的容器添加端口映射

    docker上面运行容器,run -p 的时候只映射了一个端口,后面对该nginx做扩展,需要开放其他端口。当然重新再启一个容器在docker启动参数里多配置几个-p端口映射是能解决的,但是如果自己不想重新启一个容器,试试下面两种方式 1.获取容器ip 2.利用iptable转发,将容器的端口8

    2024年02月02日
    浏览(46)
  • Docker 容器添加新端口映射的方法与步骤

    在Docker容器已经创建后,需要添加新的端口映射,即对已经存在的Docker容器添加新的端口映射,可以通过以下步骤来添加,即通过修改配置文件的方法。 1、先找到要修改的容器hash值: docker inspect 容器名称 2、然后退出docker Desktop服务(因为在线状态配置文件修改保存不了)

    2024年02月11日
    浏览(43)
  • docker小记-容器中启动映射端口号但访问不到

    在docker容器中是每一个容器隔离分开的。 每个容器视为一个独立的环境,当在外部环境访问不到的时候就是说明端口号还是没映射到。 之前使用的映射说白了就是将docker中的独立的ip地址+端口号映射到主机的ip地址和端口号。这一步没有成功。 使用上述命令查找该容器在d

    2024年02月11日
    浏览(38)
  • Docker已经创建运行启动的容器,如何修改容器中的环境变量env使长期有效

    [root@jenkins ~]# docker info | grep ‘Docker Root’ Docker Root Dir: /data/docker 方式一: 方式二: docker ps -a --no-trunc |grep pdmaas 2bd5ad1314bfff05099142aae2f896fc4c3ee6b640160d27fb7c4d8ce1d5aead pdmaas:1.3.2 “bash start.sh” 4 weeks ago Exited (137) 28 minutes ago pdmaas 建议:修改前先备份 建议:修改前先备份 或 json文件

    2024年02月08日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包