日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从零开始学习docker(九)持久化存储和数据共享之 bind Mounting

發布時間:2024/9/16 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从零开始学习docker(九)持久化存储和数据共享之 bind Mounting 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

擼了今年阿里、頭條和美團的面試,我有一個重要發現.......>>>

數據持久化的第一種方式Data Volume

使用Data Volume:

  • 首先在Dockerfile中定義 Volume ["/var/lib/mysql"],這個路徑是容器中的路徑,數據文件就存在這個路徑下
  • 將這個路徑映射到宿主機的硬盤上,通過-v選項
    • docker run -v mysql:/var/lib/mysql

使用Data Volume持久化的方式,是因為我們容器是一個數據源的產生地方,本身會產生文件和數據,而我們不想讓我們的文件和數據隨著容器的消失而消失,因此用這種方式持久化。

數據持久化的第二種方式Bind?Mounting

這種方式和第一種方式的區別是:

  • Data Volume 需要在Dockerfile中定義需要創建的Volume,而Bink Mounting不需要,我們只需要在啟動容器的時候指定本地的目錄和容器中的目錄的對應關系就可以了:
    • docker run -v /home/aaa:/root/aaa
    • 這樣本地的目錄文件和容器中的文件是同步的,如果本地的文件做了修改,那么容器中的文件也會修改。

???????創建一個Dockerfile,內容如下:

FROM nginx:latestWORKDIR /usr/share/nginx/html COPY index.html index.html

這個可以將本地的index.html 拷貝到容器中的/usr/share/nginx/html下面,

index.html的內容如下:

<body> <h1>hello docker !</h1> </body>

執行build:

ocker build -t vincent/my-nginx . Sending build context to Docker daemon 3.072kB Step 1/3 : FROM nginx:latest---> 719cd2e3ed04 Step 2/3 : WORKDIR /usr/share/nginx/html---> Using cache---> ebda8a0ae3aa Step 3/3 : COPY index.html index.html---> e3e9c5946773 Successfully built e3e9c5946773 Successfully tagged vincent/my-nginx:latest

創建一個容器:

docker run -d -p 80:80 --name web vincent/my-nginx 2cc59b89c8f4c2d60c65ad5b7490fec11c727f38a30c72a0d777209e2ea2b987

驗證一下:

curl 127.0.0.1 <body> <h1>hello docker !</h1> </body>

說明可以訪問!

刪除這個容器:

docker rm -f web

重新創建容器,并且添加參數-v,將本地的一個文件映射到里面去:

docker run -d -v $(pwd):/usr/share/nginx/html -p 80:80 --name web vincent/my-nginx ec423f40c66477471f38d8bc8a1002a1767e99d810b69b4c991446b9ced5fdea

$(pwd)表示當前路徑。

進入到容器中,創建一個文件test.txt:

docker exec -it web /bin/bash root@ec423f40c664:/usr/share/nginx/html# ls Dockerfile index.html root@ec423f40c664:/usr/share/nginx/html# touch test.txt

退出后,在宿主機可以看到這個文件test.txt。修改文件內容,可以同步修改宿主機的內容,說明文件已經同步了。

因為我們的宿主機的目錄$(pwd)和容器中的目錄/usr/share/nginx/html是同步的。

?

總結

以上是生活随笔為你收集整理的从零开始学习docker(九)持久化存储和数据共享之 bind Mounting的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。