前言
需要在测试环境先进行试验,操作不当可能导致容器无法启动!!!
操作系统:CentOS 7.9.2009 x86_64
Docker 版本:20.10.12
一、为什么进行该操作?
使用 Docker 进行部署 TDengine 数据库,需要每天进行数据备份,但是创建该容器时没有添加目录映射到宿主机,如果容器异常可能导致数据无法恢复。文章来源:https://www.toymoban.com/news/detail-761603.html
二、使用步骤
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 修改后如下图所示:
文章来源地址https://www.toymoban.com/news/detail-761603.html
5.重启 Docker 与容器
systemctl start docker
docker start 容器ID
到了这里,关于Docker 对已经启动的容器添加目录映射的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!