Docker基礎七(資料卷管理)
阿新 • • 發佈:2020-08-29
Docker 資料卷的使用場景; 複製宿主機檔案到容器中,怎樣建立資料卷, 以及資料卷的許可權管理。
一、資料卷特點
資料卷是一個可供一個或多個容器使用的本地檔案目錄,主要特性如下:
1、資料卷可以在容器之間共享和重用
2、對資料卷的修改會立即生效
3、對資料卷的更新,不會影響映象
4)資料卷預設會一直存在,即使容器被刪除
提示:資料卷的使用,類似於 Linux 下對目錄進行 mount。
1、使用場景
1、程式目錄
2、程式日誌
3、叢集資料目錄
2、資料卷操作
從容器內拷貝檔案到主機上
1、語法:
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
將容器的/test.txt 拷貝到主機的 /tmp目錄中
[root@master docker]# docker run --name c1 -it -h c1-test centos /bin/bash [root@c1-test /]# echo 111111 > /test.txt # 容器操作 [root@master ~]# docker cp c1:/test.txt /tmp [root@master ~]# ls /tmp/test.txt /tmp/test.txt [root@master ~]# cat /tmp/test.txt 111111
2、推送檔案至容器/tmp 目錄下,通過容器ID
[root@master ~]# echo 22222222 > ceshi.txt [root@master ~]# docker cp ./ceshi.txt c1:/tmp# 注意複製到容器中的檔案與掛載本機的目錄到容器有不同, 如果是掛載的模式,在本機目錄寫入檔案 那麼也會同步到容器, 如果是複製檔案,則內容不會同步
[root@c1-test /]# ls /tmp ceshi.txt ks-script-2n9owwnh ks-script-xm1o5azb [root@c1-test /]# cat /tmp/ceshi.txt # 容器操作 22222222
3 檢查
[root@master ~]# docker attach c1 或者 [root@master ~]# docker container exec -it c1 /bin/bash [root@c1-test /]# ls /tmp ceshi.txt ks-script-2n9owwnh ks-script-xm1o5azb [root@c1-test /]# cat /tmp/ceshi.txt 22222222
3、建立資料卷
使用docker run 命令中使用-v 標識來給容器內新增一個數據卷,也可以在一次docker run 命令中, 多次使用-v 標識掛載多個數據卷。
資料卷的使用場景
1、建立一個新容器並掛載本地目錄
# 將本地目錄/mnt 掛載到容器的/mnt [root@master ~]# echo 555555 > /mnt/555555.txt [root@master ~]# docker run --name centos-mnt -it -v /mnt/:/mnt centos /bin/bash [root@a8edb31a1c87 /]# ls /mnt 555555.txt [root@a8edb31a1c87 /]# cat /mnt/555555.txt 555555 # 在宿主機/mnt 建立目錄, 會在容器掛載目錄中實時看到 [root@master mnt]# mkdir 555 # 容器檢視 [root@a8edb31a1c87 mnt]# ls /mnt 555 555555.txt
4、資料卷許可權設定
docker 預設情況下是對資料卷有讀寫許可權,但是通過這樣的方式讓資料卷只讀
[root@master ~]# docker run -it --name centos-ro -v /mnt:/mnt:ro centos /bin/bash # 建立檔案報錯 [root@b62156d96de4 /]# cd /mnt/ [root@b62156d96de4 mnt]# touch 111.txt touch: cannot touch '111.txt': Read-only file syste