volume container 的資料歸根到底還是在host上,我們能不能把資料完全放到volume container中呢,同時還能與其他容器共享
其實我們還可以將資料打包到映象中,然後通過docker managed volume共享
Dockerfile中的 VOLUME 與 docker create -v 等效,用來建立docker managed volume
data-packed volume container是自包含的,不依賴host提供資料,具有很強的移植性,非常適合只使用靜態資料的場景,比如應用的配置資訊、web server等靜態檔案
root@docker-lab:~/043# ls
Dockerfile htdocs
root@docker-lab:~/043# cat Dockerfile
FROM busybox
ADD htdocs /usr/local/apache2/htdocs
VOLUME /usr/local/apache2/htdocs
root@docker-lab:~/043# cat htdocs/index.html
This is the docker volume test file
root@docker-lab:~/043# docker build -t datapacked .
Sending build context to Docker daemon 3.584kB
Step 1/3 : FROM busybox
---> d8233ab899d4
Step 2/3 : ADD htdocs /usr/local/apache2/htdocs
---> 3aa9b54f378d
Step 3/3 : VOLUME /usr/local/apache2/htdocs
---> Running in f72245359e14
Removing intermediate container f72245359e14
---> 6a4ea7f87be1
Successfully built 6a4ea7f87be1
Successfully tagged datapacked:latest
root@docker-lab:~/043# docker create --name vc_data datapacked
91f74a735fd653e3bf426602e79114a26209330b9c8f624b39d4ed5133fcb6ed
root@docker-lab:~/043# docker run -d -p 80:80 --volumes-from vc_data httpd
baedbbede8e3a3386dc4a23c0a96007f6aab0d5f767bb4491f73f6a67b651d47
root@docker-lab:~/043# curl http://127.0.0.1
This is the docker volume test file