本文關鍵詳細介紹了docker-修改容器初始化目錄的3種方式總結,具備非常好的實用價值,期待對大伙兒有一定的協助。一起追隨我回來瞧瞧吧
方法一:修改配置文件(需停止docker服務)
1、停止docker服務
systemctl stop docker.service(重要,修改以前務必停止docker服務)
2、vim /var/lib/docker/containers/container-ID/config.v2.json
修改配置文件中的目錄部位,隨后儲存撤出
"MountPoints":{"/home":{"Source":"/docker","Destination":"/home","RW":true,"Name":"","Driver":"","Type":"bind","Propagation":"rprivate","Spec":{"Type":"bind","Source":"//docker/","Target":"/home"}}}
3、起動docker服務
systemctl start docker.service
4、起動docker容器
docker start
方法二:遞交目前容器為新鏡像系統,隨后再次運作它
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5a3422adeead ubuntu:14.04 "/bin/bash" About a minute ago Exited (0) About a minute ago agitated_newton
$ docker commit 5a3422adeead newimagename
$ docker run -ti -v "$PWD/dir1":/dir1 -v "$PWD/dir2":/dir2 newimagename /bin/bash
隨后停止舊容器,并應用這一新容器,假如因為種種原因必須新容器應用舊名字,請在刪掉舊容器后應用docker rename。
方法三:export容器為鏡像系統,隨后import為新鏡像系統
$docker container export -o ./myimage.docker 容器ID
$docker import ./myimage.docker newimagename
$docker run -ti -v "$PWD/dir1":/dir1 -v "$PWD/dir2":/dir2 newimagename /bin/bash
隨后停止舊容器,并應用這一新容器,假如因為種種原因必須新容器應用舊名字,請在刪掉舊容器后應用docker rename。
填補專業知識:Docker如何重啟后數據信息不遺失,教你初始化數據信息卷Volume
大伙兒在應用Docker布署web應用或是mysql數據庫查詢時,會發覺當容器重新啟動后,容器運作全過程中造成的日志或是數據庫查詢數據信息都是會被清除,那麼大家如何保存這種數據信息呢?
這就必須掌握docker怎樣初始化宿主機硬盤目錄,用于永久性儲存數據信息。
1. 建立容器時實行Docker Volume
應用 docker run 指令,能夠運作一個 Docker容器,應用鏡像系統ubuntu/nginx,初始化當地目錄/tmp/source到容器目錄/tmp/destination
docker run -itd --volume /tmp/source:/tmp/destination --name test ubuntu/nginx bash
根據ubuntu/nginx鏡像系統建立了一個Docker容器。
特定容器的名字為test,由 ––name 選擇項特定。
Docker Volume 由 ––volume (能夠縮寫為-v)選擇項特定,服務器的 /tmp/source 目錄與容器中的 /tmp/destination 目錄一一對應。
2. 查詢Docker Volume
應用 docker inspect 指令,能夠查詢 Docker容器 的詳細資料:
docker inspect --format='{{json .Mounts}}'test | python -m json.tool[{“Destination”: “/tmp/destination”,“Mode”: “”,“Propagation”: “”,“RW”: true,“Source”: “/tmp/source”,“Type”: “bind”}]
應用 ––format 選擇項,能夠可選擇性查詢必須的容器信息內容。 .Mount 為容器的 Docker Volume 信息內容。
python -m json.tool 能夠將輸出的json字符串數組恢復出廠設置顯示信息。
Source 表明服務器上的目錄,即 /tmp/source 。
Destination 為容器中的目錄,即 /tmp/destination。
3. 該設備文檔能夠同歩到容器
在該設備/tmp/source目錄中新創建hello.txt文件
touch /tmp/source/hello.txtls /tmp/source/hello.txt
hello.txt文件在容器/tmp/destination/目錄中由此可見
應用 docker exec 指令,能夠在容器中運行命令。
docker exectest ls /tmp/destination/hello.txt
因此 在宿主機對目錄 /tmp/source/ 的修改,能夠同歩到容器目錄 /tmp/destination/ 中。
4. 容器文檔能夠同歩到宿主機
在容器/tmp/destination目錄中新創建world.txt文件
docker exec test touch /tmp/destination/world.txtdocker exec test ls /tmp/destination/hello.txtworld.txt
world.txt文件在宿主機/tmp/source/目錄中由此可見
ls /tmp/source/hello.txt world.txt
之上這篇docker-修改容器初始化目錄的3種方式總結便是我共享給大伙兒的所有內容了,期待能給大伙兒一個參照,也期待大伙兒多多的適用大家。
熱搜詞