docker基礎(chǔ)知識之掛載本地目錄的方法
Docker可以支持把一個(gè)宿主機(jī)上的目錄掛載到鏡像里。
docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu64 /bin/bash
通過-v參數(shù),冒號前為宿主機(jī)目錄,必須為絕對路徑,冒號后為鏡像內(nèi)掛載的路徑。
現(xiàn)在鏡像內(nèi)就可以共享宿主機(jī)里的文件了。
默認(rèn)掛載的路徑權(quán)限為讀寫。如果指定為只讀可以用:ro
docker run -it -v /home/dock/Downloads:/usr/Downloads:ro ubuntu64 /bin/bash
docker還提供了一種高級的用法。叫數(shù)據(jù)卷。
數(shù)據(jù)卷:“其實(shí)就是一個(gè)正常的容器,專門用來提供數(shù)據(jù)卷供其它容器掛載的”。感覺像是由一個(gè)容器定義的一個(gè)數(shù)據(jù)掛載信息。其他的容器啟動(dòng)可以直接掛載數(shù)據(jù)卷容器中定義的掛載信息。
看示例:
docker run -v /home/dock/Downloads:/usr/Downloads --name dataVol ubuntu64 /bin/bash
創(chuàng)建一個(gè)普通的容器。用--name給他指定了一個(gè)名(不指定的話會生成一個(gè)隨機(jī)的名子)。
再創(chuàng)建一個(gè)新的容器,來使用這個(gè)數(shù)據(jù)卷。
docker run -it --volumes-from dataVol ubuntu64 /bin/bash
--volumes-from用來指定要從哪個(gè)數(shù)據(jù)卷來掛載數(shù)據(jù)。
如何在Docker容器內(nèi)外互相拷貝數(shù)據(jù)?
從容器內(nèi)拷貝文件到主機(jī)上
docker cp <containerId>:/file/path/within/container /host/path/target
從主機(jī)上拷貝文件到容器內(nèi)
1.用-v掛載主機(jī)數(shù)據(jù)卷到容器內(nèi)
docker run -v /path/to/hostdir:/mnt $container
在容器內(nèi)拷貝
cp /mnt/sourcefile /path/to/destfile
2.直接在主機(jī)上拷貝到容器物理存儲系統(tǒng)
A. 獲取容器名稱或者id :
$ docker ps
B. 獲取整個(gè)容器的id
$ docker inspect -f '{{.Id}}' 步驟A獲取的名稱或者id
C. 在主機(jī)上拷貝文件:
$ sudo cp path-file-host /var/lib/docker/aufs/mnt/FULL_CONTAINER_ID/PATH-NEW-FILE
或者
$ sudo cp path-file-host /var/lib/docker/devicemapper/mnt/123abc<<id>>/rootfs/root
例子:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d8e703d7e303 solidleon/ssh:latest /usr/sbin/sshd -D cranky_pare $ docker inspect -f '{{.Id}}' cranky_pare
or
$ docker inspect -f '{{.Id}}' d8e703d7e303 d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5 $ sudo cp file.txt /var/lib/docker/aufs/mnt/**d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5
3.用輸入輸出符
docker run -i ubuntu /bin/bash -c 'cat > /path/to/container/file' < /path/to/host/file/
或者
docker exec -it <container_id> bash -c 'cat > /path/to/container/file' < /path/to/host/file/
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
zabbix監(jiān)控docker容器狀態(tài)【推薦】
這篇文章主要介紹了zabbix監(jiān)控docker容器狀態(tài)的相關(guān)資料,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06Docker compose up -d與Docker restart的區(qū)別
本文主要介紹了Docker compose up -d與Docker restart的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07在IntelliJ IDEA中使用Docker的開發(fā)指南
這篇文章主要給大家介紹了在IntelliJ IDEA中使用Docker開發(fā)指南,文中通過圖文介紹的非常詳細(xì),對我們的使用Docker有一定的幫助,需要的朋友可以參考下2023-09-09Docker 數(shù)據(jù)卷及數(shù)據(jù)容器詳細(xì)介紹及示例
這篇文章主要介紹了Docker 數(shù)據(jù)卷及數(shù)據(jù)容器詳細(xì)介紹及示例的相關(guān)資料,Docker 很強(qiáng)大,不僅部署維護(hù)提高效率,docker和宿主之間的數(shù)據(jù)共享以及docker間的數(shù)據(jù)共享需要好好研究一下,需要的朋友可以參考下2016-11-11.NET?6?從0到1使用Docker部署至Linux環(huán)境超詳細(xì)教程
這篇文章主要介紹了.NET?6?從0到1使用Docker部署至Linux環(huán)境,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05