docker如何對(duì)已經(jīng)啟動(dòng)的容器添加目錄映射(掛載目錄)
1. 背景
在自己安裝sharding-proxy時(shí),使用docker run -v的方式啟動(dòng)時(shí),只掛載了/opt/shardingsphere-proxy/conf和/opt/shardingsphere-proxy/ext-lib這兩個(gè)目錄,忘記掛載/opt/shardingsphere-proxy/logs日志目錄,導(dǎo)致每次查看都得要進(jìn)入容器內(nèi)部去查看,很是麻煩,于是考慮如何在不刪除容器重新啟動(dòng)部署的情況下進(jìn)行新目錄的映射與掛載
2. 開(kāi)始新增掛載目錄
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 ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6f5f3c195304 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.進(jìn)入要新增文件夾掛載的目錄
[root@iZ2zedqr9yeos47fg4uor5Z proxy-a]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6f5f3c195304 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]# ll
total 64
drwx------ 4 root root 4096 Nov 7 14:20 1d0c21204385f60fa8859b0ff199569988218e449155634470cfb14ff2ceebf9
drwx------ 4 root root 4096 Nov 7 14:20 21a5f8b6e68ee09f8f80381c536b38abec1b8dcb81c69f1c50caeb95e8ebb35f
drwx------ 4 root root 4096 Nov 7 14:20 28242c9fd16bd610880d42a773e078221a0d34b1c779935fc0c8609a1b63666a
drwx------ 4 root root 4096 Nov 7 14:22 2bc290c8e158229fdc5291a3ea53c5721f5becd39c8cb47cb2f826f6349ac778
drwx------ 4 root root 4096 Nov 7 14:20 2fc0e1b1031abe6b1871332b971ccdc40185b7441e94ba3c266f51d2d4728412
drwx------ 4 root root 4096 Nov 7 14:20 3124c345f129a3c542423c68061c6ded5b41a649b25991125c8e81da7b010e7e
drwx------ 4 root root 4096 Nov 7 14:20 4a1e699a3711b92918f711d7ab021a5ac62bab1b8353ed321337c6f94ac50533
drwx------ 4 root root 4096 Nov 7 14:20 4cdc6456250a922e60f3394b26064be0541f04a0c34825c6487e73ed7979705a
drwx------ 4 root root 4096 Nov 7 14:20 53d710c37c08b9c2ab0c84fea2059d067bbcbc38f22aa2e654e1c62758b1df44
drwx------ 4 root root 4096 Nov 7 14:41 6f5f3c1953044043672723cdf4f3725c500e77a54e07cd0a4759371c04c0cfa1
drwx------ 4 root root 4096 Nov 7 14:20 73cc941fd394d42b8cbdc8fd7a50fc098b5d56c0323e5b9a786703d21a102d33
drwx------ 4 root root 4096 Nov 7 14:35 8dc6124199b0ef6afbc9d2b542c5a46c8767e7daafd52bfedd53a83491e17db0
drwx------ 4 root root 4096 Nov 7 14:20 9c554d94d5eb6c2c6015994b52ae3f3c31d182dde189d86427840b4a1c5d6477
drwx------ 4 root root 4096 Nov 7 14:20 a073fcd724623a98168564707dccfb9562d94d89c0882ad2fd92798a2137be0d
drwx------ 4 root root 4096 Nov 7 14:21 b1191679d1ecea73a74f44ee74b33281fbcccc942307630db02f2cb9e86869d0
drwx------ 4 root root 4096 Nov 7 14:20 eb30519b4804f9ca3c708260e885f99d693332af4a162a956952b601332fed97
[root@iZ2zedqr9yeos47fg4uor5Z containers]# cd 6f5f3c1953044043672723cdf4f3725c500e77a54e07cd0a4759371c04c0cfa1/
[root@iZ2zedqr9yeos47fg4uor5Z 6f5f3c1953044043672723cdf4f3725c500e77a54e07cd0a4759371c04c0cfa1]# ll
total 488
-rw-r----- 1 root root 461990 Nov 7 14:41 6f5f3c1953044043672723cdf4f3725c500e77a54e07cd0a4759371c04c0cfa1-json.log
drwx------ 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 hosts
drwx------ 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.json和hostconfig.json
4.關(guān)閉容器、關(guān)閉docker
systemctl stop docker
5.修改config.v2.json
說(shuō)明:想要將容器中的/opt/shardingsphere-proxy/logs目錄映射到宿主機(jī)的/atguigu/server/proxy-a/logs目錄下。
在config.v2.json文件中找到MountPoints,添加如下/opt/shardingsphere-proxy/logs的映射即可(這里如果前面還有內(nèi)容的話,注意逗號(hào))
{
......
"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
說(shuō)明:Binds中添加內(nèi)容"/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.進(jìn)行目錄驗(yàn)證
目錄成功映射 出來(lái),查看日志就不用每次很麻煩的進(jìn)入容器內(nèi)部查看了
[root@iZ2zedqr9yeos47fg4uor5Z logs]# pwd /atguigu/server/proxy-a/logs [root@iZ2zedqr9yeos47fg4uor5Z logs]# ll total 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文件修改之前,需要關(guān)閉docker與容器!如果先修改了這兩個(gè)文件,再關(guān)閉docker,這兩個(gè)文件中的內(nèi)容會(huì)被重置掉,導(dǎo)致新增的目錄映射失效 (自己在這里折騰了很久才發(fā)現(xiàn)的?。?/li>
- config.v2.json和hostconfig.json文件vi命令打開(kāi)后,并非格式化后的json,這里可以通過(guò):%!python3 -m json.tool命令將其進(jìn)行格式化,方便查看
總結(jié)
到此這篇關(guān)于docker如何對(duì)已經(jīng)啟動(dòng)的容器添加目錄映射(掛載目錄)的文章就介紹到這了,更多相關(guān)docker容器添加目錄映射內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker上部署?nps?和?npc?實(shí)現(xiàn)內(nèi)網(wǎng)穿透
本文介紹了如何使用Docker部署nps和npc實(shí)現(xiàn)內(nèi)網(wǎng)穿透。nps是一款高性能的內(nèi)網(wǎng)穿透代理服務(wù)器,npc是nps的客戶(hù)端,可以將內(nèi)網(wǎng)服務(wù)映射到公網(wǎng)上。通過(guò)Docker的容器化技術(shù),可以方便地部署和管理nps和npc,同時(shí)保證了應(yīng)用的隔離性和安全性。2023-04-04
Docker鏡像與容器的導(dǎo)入導(dǎo)出以及常用命令總結(jié)
Docker是一個(gè)開(kāi)源的容器引擎,基于go語(yǔ)言開(kāi)發(fā)并遵循了apache2.0協(xié)議開(kāi)源,下面這篇文章主要給大家介紹了關(guān)于Docker鏡像與容器的導(dǎo)入導(dǎo)出以及常用命令總結(jié)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
Docker跨主機(jī)網(wǎng)絡(luò)(manual)的實(shí)現(xiàn)
這篇文章主要介紹了Docker跨主機(jī)網(wǎng)絡(luò)(manual)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
關(guān)于docker部署服務(wù)時(shí)ip無(wú)法訪問(wèn)服務(wù)正常的問(wèn)題
小編在使用docker部署應(yīng)用的時(shí)候,無(wú)法使用IP地址訪問(wèn),防火墻已經(jīng)關(guān)閉,可以ping通,應(yīng)用已經(jīng)配置0.0.0.0,怎么回事?下面小編給大家介紹下docker部署服務(wù),ip無(wú)法訪問(wèn),服務(wù)正常的解決方法,感興趣的朋友一起看看吧2022-09-09
docker安裝openjdk并運(yùn)行jar包的操作方法
這篇文章主要介紹了docker安裝openjdk并運(yùn)行jar包的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
linux上安裝Docker(非常簡(jiǎn)單的安裝方法)
今天小編就為大家分享一篇關(guān)于linux上安裝Docker(非常簡(jiǎn)單的安裝方法),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04
Docker-Compose搭建Spark集群的實(shí)現(xiàn)方法
本文主要介紹了Docker-Compose搭建Spark集群的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05

