docker 的數據卷 (六)

1. 介紹

上一篇:使用Dockerfile文件(五)

之前有說過,在docker容器上進行的更改並不會主動被保存下來,除非你commit了,不然你重新運行這個鏡像,生成新的容器,之前容器的內容就會沒有了,因爲容器只是一個進程而已。

所以說,容器運行時應該儘量保持容器存儲層不發生寫操作。

但是,有時候我們需要存儲持久化的數據,比如數據庫,你的數據都在容器中,肯定是不行的,因爲一退出就沒有了。

這個時候需要用到數據卷

數據卷就是可以讓你把主機上的數據以掛載的方式鏈接到容器中,這樣不同的容器也能共享,而且數據也不會因爲容器的退出而丟失。

這個數據卷會被經常使用。

2. 使用

下面我們來體會一下數據卷的功能。

$ docker run -d -v ~/mynginx:/a -p 80:80 --name webserver nginx

這裏命令會掛載主機的目錄~/mynginx到容器中的目錄/a

你可以試驗一下,分別在兩端更改內容,比如新建一個文件,看是不是都變化了。

我們也可以創建數據卷容器,數據卷容器也是一個正常的容器,這種容器可以爲其他容器提供和共享數據。

比如,下面創建了一個數據卷容器:

$ sudo docker run -d -v /dbdata --name dbdata training/postgres echo Data-only container for postgres

然後其他容器要使用這個數據卷容器的話,只要使用--volumes-from參數即可。

$ sudo docker run -d --volumes-from dbdata --name db1 training/postgres
$ sudo docker run -d --volumes-from dbdata --name db2 training/postgres

完結。

下一篇:Docker Compose 的介紹與安裝 (七)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章