mirror of
https://github.com/yeasy/docker_practice.git
synced 2025-10-26 16:22:08 +00:00
修正多個用詞
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
## 數據卷容器
|
||||
如果你有一些持續更新的數據需要在容器之間共享,最好創建數據卷容器。
|
||||
如果你有一些持續更新的數據需要在容器之間共享,最好建立數據卷容器。
|
||||
|
||||
數據卷容器,其實就是一個正常的容器,專門用來提供數據卷供其它容器掛載的。
|
||||
|
||||
首先,創建一個命名的數據卷容器 dbdata:
|
||||
首先,建立一個命名的數據卷容器 dbdata:
|
||||
```
|
||||
$ sudo docker run -d -v /dbdata --name dbdata training/postgres echo Data-only container for postgres
|
||||
```
|
||||
@@ -20,4 +20,4 @@ $ sudo docker run -d --name db3 --volumes-from db1 training/postgres
|
||||
*註意:使用 `--volumes-from` 參數所掛載數據卷的容器自己並不需要保持在執行狀態。
|
||||
|
||||
如果刪除了掛載的容器(包括 dbdata、db1 和 db2),數據卷並不會被自動刪除。如果要刪除一個數據卷,必須在刪除最後一個還掛載著它的容器時使用 `docker rm -v` 命令來指定同時刪除關聯的容器。
|
||||
這可以讓用戶在容器之間升級和移動數據卷。具體的操作將在下一節中進行講解。
|
||||
這可以讓使用者在容器之間升級和移動數據卷。具體的操作將在下一節中進行講解。
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
可以利用數據卷對其中的數據進行進行備份、恢復和遷移。
|
||||
|
||||
### 備份
|
||||
首先使用 `--volumes-from` 標記來創建一個加載 dbdata 容器卷的容器,並從本地主機掛載當前到容器的 /backup 目錄。命令如下:
|
||||
首先使用 `--volumes-from` 標記來建立一個加載 dbdata 容器卷的容器,並從本地主機掛載當前到容器的 /backup 目錄。命令如下:
|
||||
```
|
||||
$ sudo docker run --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
|
||||
```
|
||||
@@ -10,11 +10,11 @@ $ sudo docker run --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup
|
||||
|
||||
|
||||
### 恢復
|
||||
如果要恢復數據到一個容器,首先創建一個帶有數據卷的容器 dbdata2。
|
||||
如果要恢復數據到一個容器,首先建立一個帶有數據卷的容器 dbdata2。
|
||||
```
|
||||
$ sudo docker run -v /dbdata --name dbdata2 ubuntu /bin/bash
|
||||
```
|
||||
然後創建另一個容器,掛載 dbdata2 的容器,並使用 `untar` 解壓備份文件到掛載的容器卷中。
|
||||
然後建立另一個容器,掛載 dbdata2 的容器,並使用 `untar` 解壓備份文件到掛載的容器卷中。
|
||||
```
|
||||
$ sudo docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf
|
||||
/backup/backup.tar
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
*數據卷的使用,類似於 Linux 下對目錄或文件進行 mount。
|
||||
|
||||
|
||||
### 創建一個數據卷
|
||||
在用 `docker run` 命令的時候,使用 `-v` 標記來創建一個數據卷並掛載到容器裏。在一次 run 中多次使用可以掛載多個數據卷。
|
||||
### 建立一個數據卷
|
||||
在用 `docker run` 命令的時候,使用 `-v` 標記來建立一個數據卷並掛載到容器裏。在一次 run 中多次使用可以掛載多個數據卷。
|
||||
|
||||
下面創建一個 web 容器,並加載一個數據卷到容器的 `/webapp` 目錄。
|
||||
下面建立一個 web 容器,並加載一個數據卷到容器的 `/webapp` 目錄。
|
||||
```
|
||||
$ sudo docker run -d -P --name web -v /webapp training/webapp python app.py
|
||||
```
|
||||
*註意:也可以在 Dockerfile 中使用 `VOLUME` 來添加一個或者多個新的卷到由該鏡像創建的任意容器。
|
||||
*註意:也可以在 Dockerfile 中使用 `VOLUME` 來新增一個或者多個新的卷到由該鏡像建立的任意容器。
|
||||
|
||||
### 掛載一個主機目錄作為數據卷
|
||||
使用 `-v` 標記也可以指定掛載一個本地主機的目錄到容器中去。
|
||||
@@ -23,11 +23,11 @@ $ sudo docker run -d -P --name web -v /webapp training/webapp python app.py
|
||||
$ sudo docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py
|
||||
```
|
||||
上面的命令加載主機的 `/src/webapp` 目錄到容器的 `/opt/webapp`
|
||||
目錄。這個功能在進行測試的時候十分方便,比如用戶可以放置一些程序到本地目錄中,來查看容器是否正常工作。本地目錄的路徑必須是絕對路徑,如果目錄不存在 Docker 會自動為你創建它。
|
||||
目錄。這個功能在進行測試的時候十分方便,比如使用者可以放置一些程序到本地目錄中,來查看容器是否正常工作。本地目錄的路徑必須是絕對路徑,如果目錄不存在 Docker 會自動為你建立它。
|
||||
|
||||
*註意:Dockerfile 中不支持這種用法,這是因為 Dockerfile 是為了移植和分享用的。然而,不同作業系統的路徑格式不一樣,所以目前還不能支持。
|
||||
|
||||
Docker 掛載數據卷的默認權限是讀寫,用戶也可以通過 `:ro` 指定為唯讀。
|
||||
Docker 掛載數據卷的默認權限是讀寫,使用者也可以透過 `:ro` 指定為唯讀。
|
||||
```
|
||||
$ sudo docker run -d -P --name web -v /src/webapp:/opt/webapp:ro
|
||||
training/webapp python app.py
|
||||
|
||||
Reference in New Issue
Block a user