docker中容器有必要挂载到主机上吗存储 怎样将Docker容器中的文件导入到主机

docker\u7684\u7ed1\u5b9a\u6302\u8f7d\u6587\u4ef6\u4f1a\u5199\u5165\u6e90\u6587\u4ef6\u5417?

\u4e0d\u4f1a\u3002docker\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u5e94\u7528\u5bb9\u5668\u5f15\u64ce\uff0c\u8ba9\u5f00\u53d1\u8005\u53ef\u4ee5\u6253\u5305\u5e94\u7528\u4ee5\u53ca\u4f9d\u8d56\u5305\u5230\u4e00\u4e2a\u53ef\u79fb\u690d\u7684\u955c\u50cf\u4e2d\uff0c\u7136\u540e\u53d1\u5e03\u5230\u4efb\u4f55\u6d41\u884c\u7684Linux\u6216Windows\u64cd\u4f5c\u7cfb\u7edf\u7684\u673a\u5668\u4e0a\uff0c\u4e5f\u53ef\u4ee5\u5b9e\u73b0\u865a\u62df\u5316\u3002docker\u7684\u7ed1\u5b9a\u6302\u8f7d\u6587\u4ef6\u4ec5\u5b58\u50a8\u5728\u4e3b\u673a\u7cfb\u7edf\u7684\u5185\u5b58\u4e2d\uff0c\u6240\u4ee5\u662f\u4e0d\u4f1a\u5199\u5165\u6e90\u6587\u4ef6\u7684\uff0c\u5176\u4e3b\u8981\u4f5c\u7528\u662f\u53ef\u4ee5\u5728\u5bb9\u5668\u7684\u751f\u547d\u5468\u671f\u4f9b\u5bb9\u5668\u4f7f\u7528\uff0c\u4ee5\u5b58\u50a8\u975e\u6301\u4e45\u72b6\u6001\u7684\u654f\u611f\u4fe1\u606f\u3002

\u4eceDocker\u5bb9\u5668\u5185\u62f7\u8d1d\u6587\u4ef6\u5230\u4e3b\u673a\u4e0a
docker cp :/file/path/within/container /host/path/target
\u4ece\u4e3b\u673a\u4e0a\u62f7\u8d1d\u6587\u4ef6\u5230\u5bb9\u5668\u5185
\u53c2\u8003\u81ea\uff1a

1.\u7528-v\u6302\u8f7d\u4e3b\u673a\u6570\u636e\u5377\u5230\u5bb9\u5668\u5185
docker run -v /path/to/hostdir:/mnt $container
\u5728\u5bb9\u5668\u5185\u62f7\u8d1d
cp /mnt/sourcefile /path/to/destfile
2.\u76f4\u63a5\u5728\u4e3b\u673a\u4e0a\u62f7\u8d1d\u5230\u5bb9\u5668\u7269\u7406\u5b58\u50a8\u7cfb\u7edf
A. \u83b7\u53d6\u5bb9\u5668\u540d\u79f0\u6216\u8005id :
$ docker ps
B. \u83b7\u53d6\u6574\u4e2a\u5bb9\u5668\u7684id
$ docker inspect -f '{{.Id}}' \u6b65\u9aa4A\u83b7\u53d6\u7684\u540d\u79f0\u6216\u8005id
C. \u5728\u4e3b\u673a\u4e0a\u62f7\u8d1d\u6587\u4ef6:
$ sudo cp path-file-host /var/lib/docker/aufs/mnt/FULL_CONTAINER_ID/PATH-NEW-FILE
\u6216\u8005
$ sudo cp path-file-host /var/lib/docker/devicemapper/mnt/123abc/rootfs/root
\u4f8b\u5b50\uff1a
$ 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.\u7528\u8f93\u5165\u8f93\u51fa\u7b26
docker run -i Ubuntu /bin/bash -c 'cat > /path/to/container/file' < /path/to/host/file/
\u6216\u8005
docker exec -it bash -c 'cat > /path/to/container/file' < /path/to/host/file/

例如docker run -it -v /data --name container1 busybox ); 和挂载到主机(例如docker run -it --name container1 -v /path/on/host:/datavol busybox )但是为了使容量在容器重启甚至容器交换(旧容器被删除,创build/启动新容器)中保持不变,这两种方法都不会将卷挂载到主机上吗? 换句话说,如果我没有通过“简单安装方法”明确地挂载到主机,那么卷的实际安装位​​置在哪里? 而且这个位置如何在容器交换中生存呢?而且,在这两种情况下,我都假定卷只是给定主机的本地卷,并且如果有一个Swarm或群集运行在多个主机上,则无法使用这些命令,以便在不同主机上运行的容器可以访问这些卷,是吗? (而且我猜这是Data Volume Containers发挥的作用,对吧?)提前致谢!这两种方法都不能将卷挂载到主机上?是的,这两种方法都基于容器生命周期中保存的主机目录。使用这些命令获取更多信息:docker volume ls docker volume inspect <volume-id> # and docker inspect <container-id>(方法1)实际安装量在哪里?做这个:docker inspect <container-id>你的答案在“来源”中:"Mounts": [ { "Type": "volume", "Name": "96f5e6531480cc716cd030f3f60f8927a55728a52d55ad55589752c2b89f2001", "Source": "/var/lib/docker/volumes/96f5e6531480cc716cd030f3f60f8927a55728a52d55ad55589752c2b89f2001/_data", "Destination": "/data", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ],请注意,如果您在OSX或Windows中,则该Source指的是运行docker的VM内部的本地目录。而且这个位置如何在容器交换中生存呢?他们生存,因为他们是基于主机的本地目录(他们是卷,因此它们存在)。如果在多个主机上运行Swarm或群集,则无法使用这些命令,以便运行在不同主机上的容器可以访问这些卷,是的?您对简单的卷configuration是正确的。 这是docker变得棘手,持久的地方。 您可以在主机文件系统级别实现共享目录,然后将其作为卷装载到容器中,以便跨群集主机获取共享卷。https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-shared-storage-volume-as-a-data-volume使用PHP在shell中运行docker运行或重新启动PostgreSQL映像后,Docker容器立即退出在CentOS7上暴露Docker Remote API v1.22在Docker上的terminal上安装Gambit绑定的文件夹的内容不可用Docker nginx错误在安assembly置文件Docker(带有SYSTEMCTL的CentOS 7):无法安装tmpfs&cgroup如何使用rabbitmq docker撰写yml文件来构builddocker镜像?Docker-Compose找不到新的节点模块MongoDB使用具有持久存储问题的docker分片群集在Docker中将“named volume”挂载为非root用户

例如docker run -it -v /data --name container1 busybox ); 和
挂载到主机(例如docker run -it --name container1 -v /path/on/host:/datavol busybox )
但是为了使容量在容器重启甚至容器交换(旧容器被删除,创build/启动新容器)中保持不变,这两种方法都不会将卷挂载到主机上吗? 换句话说,如果我没有通过“简单安装方法”明确地挂载到主机,那么卷的实际安装位​​置在哪里? 而且这个位置如何在容器交换中生存呢?
而且,在这两种情况下,我都假定卷只是给定主机的本地卷,并且如果有一个Swarm或群集运行在多个主机上,则无法使用这些命令,以便在不同主机上运行的容器可以访问这些卷,是吗? (而且我猜这是Data Volume Containers发挥的作用,对吧?)提前致谢!
这两种方法都不能将卷挂载到主机上?
是的,这两种方法都基于容器生命周期中保存的主机目录。
使用这些命令获取更多信息:
docker volume ls docker volume inspect <volume-id> # and docker inspect <container-id>
(方法1)实际安装量在哪里?
做这个:
docker inspect <container-id>
你的答案在“来源”中:
"Mounts": [ { "Type": "volume", "Name": "96f5e6531480cc716cd030f3f60f8927a55728a52d55ad55589752c2b89f2001", "Source": "/var/lib/docker/volumes/96f5e6531480cc716cd030f3f60f8927a55728a52d55ad55589752c2b89f2001/_data", "Destination": "/data", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ],
请注意,如果您在OSX或Windows中,则该Source指的是运行docker的VM内部的本地目录。
而且这个位置如何在容器交换中生存呢?
他们生存,因为他们是基于主机的本地目录(他们是卷,因此它们存在)。
如果在多个主机上运行Swarm或群集,则无法使用这些命令,以便运行在不同主机上的容器可以访问这些卷,是的?
您对简单的卷configuration是正确的。 这是docker变得棘手,持久的地方。 您可以在主机文件系统级别实现共享目录,然后将其作为卷装载到容器中,以便跨群集主机获取共享卷。
https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-shared-storage-volume-as-a-data-volume
使用PHP在shell中运行docker运行或重新启动PostgreSQL映像后,Docker容器立即退出
在CentOS7上暴露Docker Remote API v1.22
在Docker上的terminal上安装Gambit
绑定的文件夹的内容不可用
Docker nginx错误在安assembly置文件
Docker(带有SYSTEMCTL的CentOS 7):无法安装tmpfs&cgroup
如何使用rabbitmq docker撰写yml文件来构builddocker镜像?
Docker-Compose找不到新的节点模块
MongoDB使用具有持久存储问题的docker分片群集
在Docker中将“named volume”挂载为非root用户

例如docker run -it -v /data --name container1 busybox ); 和
挂载到主机(例如docker run -it --name container1 -v /path/on/host:/datavol busybox )
但是为了使容量在容器重启甚至容器交换(旧容器被删除,创build/启动新容器)中保持不变,这两种方法都不会将卷挂载到主机上吗? 换句话说,如果我没有通过“简单安装方法”明确地挂载到主机,那么卷的实际安装位​​置在哪里? 而且这个位置如何在容器交换中生存呢?

而且,在这两种情况下,我都假定卷只是给定主机的本地卷,并且如果有一个Swarm或群集运行在多个主机上,则无法使用这些命令,以便在不同主机上运行的容器可以访问这些卷,是吗? (而且我猜这是Data Volume Containers发挥的作用,对吧?)提前致谢!

这两种方法都不能将卷挂载到主机上?

是的,这两种方法都基于容器生命周期中保存的主机目录。

使用这些命令获取更多信息:

docker volume ls docker volume inspect <volume-id> # and docker inspect <container-id>
(方法1)实际安装量在哪里?

做这个:

docker inspect <container-id>
你的答案在“来源”中:

"Mounts": [ { "Type": "volume", "Name": "96f5e6531480cc716cd030f3f60f8927a55728a52d55ad55589752c2b89f2001", "Source": "/var/lib/docker/volumes/96f5e6531480cc716cd030f3f60f8927a55728a52d55ad55589752c2b89f2001/_data", "Destination": "/data", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ],
请注意,如果您在OSX或Windows中,则该Source指的是运行docker的VM内部的本地目录。

而且这个位置如何在容器交换中生存呢?

他们生存,因为他们是基于主机的本地目录(他们是卷,因此它们存在)。

如果在多个主机上运行Swarm或群集,则无法使用这些命令,以便运行在不同主机上的容器可以访问这些卷,是的?

您对简单的卷configuration是正确的。 这是docker变得棘手,持久的地方。 您可以在主机文件系统级别实现共享目录,然后将其作为卷装载到容器中,以便跨群集主机获取共享卷。

https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-shared-storage-volume-as-a-data-volume

使用PHP在shell中运行docker运行或重新启动PostgreSQL映像后,Docker容器立即退出
在CentOS7上暴露Docker Remote API v1.22
在Docker上的terminal上安装Gambit
绑定的文件夹的内容不可用
Docker nginx错误在安assembly置文件
Docker(带有SYSTEMCTL的CentOS 7):无法安装tmpfs&cgroup
如何使用rabbitmq docker撰写yml文件来构builddocker镜像?
Docker-Compose找不到新的节点模块
MongoDB使用具有持久存储问题的docker分片群集
在Docker中将“named volume”挂载为非root用户

如果你怕数据丢失的话,那么还是有必要挂载到主机上面储存的。

如果你怕数据丢失的话,那么还是有必要挂载到主机上面储存的

  • docker杩涘叆瀹瑰櫒鍛戒护
    绛旓細ip netns exec $container_id sh 闄ゆ涔嬪锛屼篃鍙互閫氳繃鏂规硶浜宯senter鍛戒护锛屼篃鍙互杩涘叆瀹瑰櫒缃戠粶绌洪棿 nsenter -t $pid -n sh 鍦╧8s鐨勭幆澧冧腑锛屼篃缁忓父浼氶亣鍒拌繖涓棶棰橈紝涓烘k8s鎻愪緵浜咲ebug瀹瑰櫒锛岄氳繃kubectl debug鍛戒护锛屽惎鍔ㄤ竴涓猟ebug瀹瑰櫒锛鎸傝浇鍒涓氬姟瀹瑰櫒鐨缃戠粶绌洪棿涓傜浉褰撲簬docker run -net鐨勬柟寮忓惎鍔ㄤ竴涓...
  • 瓒呭间竴绡囧垎浜,Docker:浠庡叆闂ㄥ埌瀹炴垬杩囩▼鍏ㄨ褰
    绛旓細鎯宠鐪熸鐞嗚ВDocker,灏变笉寰椾笉浠庤櫄鎷熷寲鎶鏈殑鍙戝睍鍘嗙▼璇磋捣銆傛櫘閬嶈涓鸿櫄鎷熷寲鎶鏈粡鍘嗕簡鐗╃悊鏈烘椂浠c佽櫄鎷熸満鏃朵唬,鐩墠宸茬粡杩涘叆鍒颁簡瀹瑰櫒鍖栨椂浠c傚彲浠ヨ,Docker鏄櫄鎷熷寲鎶鏈笉鏂彂灞曠殑蹇呯劧缁撴灉銆 閭d箞,浠涔堟槸瀹瑰櫒鍛?瀹瑰櫒鍜岃櫄鎷熸満鏈変粈涔堜笉鍚?Docker鍜屽鍣ㄥ張鏄粈涔堝叧绯诲憿?鎼炴槑鐧借繖鍑犱釜闂,Docker鐨姒傚康灏辨竻鏅颁簡銆 1.1 铏...
  • 鍦Docker瀹瑰櫒涓鎿嶄綔Docker (dind)
    绛旓細灏辨槸鍦Docker瀹瑰櫒涓鍐嶆杩愯涓涓狣ocker鏈嶅姟.鍦ㄤ竴涓鍣ㄤ腑鎿嶄綔Docker鍦–I宸ュ叿涓槸寰堝父瑙佺殑, 濡傛瀯寤轰竴涓狣ocker闀滃儚.浣嗙敱浜庡湪瀹瑰櫒涓繍琛屼竴涓狣ocker鏈嶅姟浼氭湁鍚勭闂, 濡傞暅鍍忔枃浠跺瓨鍌, 宓屽鐨勫鍣涔熷苟涓嶅鏄撶淮鎶, 鍚庢潵渚胯鐢熷嚭浜嗗彟涓绉嶆洿瀹炵敤鐨勬柟妗: 鎸傝浇涓绘満涓奃ocker鏈嶅姟鐨剆ock 杩欐牱灏嗕笉浼氶亣鍒板祵濂楀壇浣滅敤锛...
  • 澶ч」鐩负鍟ヤ笉寤鸿鐢docker浜
    绛旓細杩欏鍔犱簡椤圭洰鐨勫鏉傛у拰缁存姢鎴愭湰銆5銆佹妧鏈爤闄愬埗锛Docker鎻愪緵浜嗕竴绉嶇粺涓鐨勫鍣鍖栬В鍐虫柟妗堬紝浣嗗苟涓嶉傜敤浜庢墍鏈夌殑搴旂敤鍦烘櫙銆傛湁浜涢」鐩彲鑳介渶瑕佷娇鐢ㄧ壒瀹氱殑鎿嶄綔绯荤粺鎴栫‖浠剁幆澧冩潵杩愯锛岃屼娇鐢―ocker鍙兘鏃犳硶婊¤冻杩欎簺鐗规畩闇姹傘傚湪杩欑鎯呭喌涓嬶紝閫夋嫨鏇村姞鐏垫椿鐨勮櫄鎷熷寲鎶鏈彲鑳芥洿鍔犲悎閫傘
  • docker瀹瑰櫒鏃犳硶鎵ц鎸傝浇鐩綍涓鐨鑴氭湰
    绛旓細3銆佹枃浠剁郴缁熺被鍨嬩笉鍙楁敮鎸侊細鏌愪簺鐗规畩鏂囦欢绯荤粺锛堜緥濡侼FS锛変笉琚Docker鐩存帴鏀寔銆傚湪杩欑鎯呭喌涓嬶紝闇瑕佽繘琛屽叾浠栭厤缃墠鑳戒娇鎸傝浇鐩綍涓婄殑鑴氭湰鍙墽琛屻傝缁嗙殑閰嶇疆姝ラ鍥犳墍浣跨敤鐨勭壒瀹氭枃浠剁郴缁熻屾湁鎵涓嶅悓锛岃鍙傝冨畼鏂规枃妗f垨鏂囦欢绯荤粺渚涘簲鍟嗘彁渚涚殑鎸囧崡銆4銆丼ELinux鎴朅ppArmor璁剧疆锛氬鏋滀綘鐨勫鍣杩愯鍦ㄥ惎鐢ㄤ簡SELinux鎴朅ppArmor...
  • Docker鍦澶у瀷椤圭洰涓湁浣跨敤浠峰煎悧?
    绛旓細鍦澶ч」鐩腑锛屼笉寤鸿浣跨敤Docker鐨鍘熷洜涓昏鏈変互涓嬪嚑鐐癸細1. 闀滃儚绠$悊鍥伴毦锛氶殢鐫搴旂敤鏁伴噺鐨勫鍔狅紝闇瑕佺鐞嗙殑闀滃儚鏁伴噺涔熶細澶ч噺澧炲姞锛屽鏋滄病鏈夎壇濂界殑瀹炶返缁忛獙锛屽緢瀹规槗鍑虹幇鐗堟湰绠$悊銆侀暅鍍忓ぇ灏忋佸畨鍏ㄦх瓑闂銆2. 鍏变韩鏂囦欢澶瑰彲鑳藉鑷磋祫婧愮獊鐮撮檺鍒讹細Docker鍏佽鍦ㄤ富鏈哄拰瀹瑰櫒涔嬮棿鍏变韩鏂囦欢澶癸紝杩欏彲鑳藉鑷村鍣ㄧ獊鐮磋祫婧愰檺鍒讹紝...
  • Docker鐨闀滃儚鍜瀹瑰櫒鐨勫尯鍒
    绛旓細涓銆丏ocker闀滃儚 瑕佺悊瑙ocker闀滃儚鍜Docker瀹瑰櫒涔嬮棿鐨勫尯鍒紝纭疄涓嶅鏄撱傚亣璁綥inux鍐呮牳鏄0灞傦紝閭d箞鏃犺鎬庝箞杩愯Docker锛屽畠閮芥槸杩愯浜庡唴鏍稿眰涔嬩笂鐨勩傝繖涓狣ocker闀滃儚锛屾槸涓涓彧璇荤殑闀滃儚锛屼綅浜庣1灞傦紝瀹冧笉鑳借淇敼鎴栦笉鑳戒繚瀛樼姸鎬併備竴涓狣ocker闀滃儚鍙互鏋勫缓浜庡彟涓涓狣ocker闀滃儚涔嬩笂锛岃繖绉嶅眰鍙犲叧绯诲彲浠ユ槸澶氬眰鐨勩傜...
  • 瑙e喅Docker 鏁版嵁鍗鎸傝浇鐨鏂囦欢鏉冮檺闂
    绛旓細璀鎴戜滑鍦ㄤ富鏈轰笂鍒涘缓 models 鐩綍銆傛垜浠娇鐢 Docker 鎸傝浇 models 鐩綍锛岀劧鑰鍦 Docker 瀹瑰櫒鍐呴儴闄や簡 models 鏂囦欢澶归兘娌℃湁璁块棶鏉冮檺銆傝繖鍙互閫氳繃澧炲姞鎸傝浇璺緞锛氳繖鏍峰鍣ㄨ繍琛岃繃绋嬪線 /project 鍐鐨涓存椂鏂囦欢閮戒細鍑虹幇鍦ㄤ富鏈轰笂銆傚彲瑙侊紝 user 鍙傛暟骞朵笉鑳借В鍐虫墍鏈夐棶棰樸傚畠瀛樺湪涓や釜闂锛氭垜浠渶瑕佷竴绉嶆墜娈碉紝鏃㈠彲浠ュ儚...
  • docker瀹瑰櫒鐨浣跨敤docker瀹瑰櫒鐨勪娇鐢ㄨ繃绋
    绛旓細4.鍚庡彴杩愯 5.鍋滄涓涓瀹瑰櫒 6.閲嶅惎涓涓鍣 7.杩涘叆瀹瑰櫒 7.瀵煎叆瀵煎嚭瀹瑰櫒鏆傛椂鐣ヨ繃(浠ュ悗浼氳ˉ鍏)8.鍒犻櫎瀹瑰櫒 涓銆Docker 瀹㈡埛绔 docker 瀹㈡埛绔潪甯哥畝鍗 ,鎴戜滑鍙互鐩存帴杈撳叆 docker 鍛戒护鏉ユ煡鐪嬪埌 Docker 瀹㈡埛绔殑鎵鏈夊懡浠ら夐」銆俒root@localhost ~]# docker 浜屻佸鍣ㄤ娇鐢 1.鑾峰彇闀滃儚 濡傛灉鎴戜滑鏈湴娌℃湁 ...
  • docker瀹瑰櫒鏄粈涔
    绛旓細Docker瀹瑰櫒鍏锋湁浠ヤ笅鍑犱釜涓昏鐗圭偣锛氬彲绉绘鎬э細瀹瑰櫒鍙互杞绘澗鍦颁粠涓涓幆澧冭縼绉诲埌鍙︿竴涓幆澧冿紝淇濊瘉浜嗗簲鐢ㄧ▼搴忕殑涓鑷存у拰绋冲畾鎬с傛爣鍑嗗寲锛氭墍鏈鐨勫鍣閮戒娇鐢ㄧ浉鍚岀殑杩愯鏃剁幆澧冿紝鍑忓皯浜嗛厤缃拰渚濊禆椤圭殑闂銆傝交閲忕骇锛氱浉姣斾簬浼犵粺鐨勮櫄鎷熸満锛屽鍣ㄦ洿鍔犺交閲忥紝鍚姩閫熷害鏇村揩銆傛墿灞曟э細瀹瑰櫒鍙互杞绘澗鍦版墿灞曞拰閮ㄧ讲锛屾敮鎸佸井鏈嶅姟...
  • 扩展阅读:为什么docker被淘汰了 ... docker怎么进入容器目录 ... 什么不建议上docker容器 ... docker容器目录映射 ... docker目录挂载 ... docker run v ... 尽量少用docker ... 利用docker搭建网站 ... 容器目录挂载到本地 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网