043、data-packed volume container (2019-03-06 周三)

时间:2022-05-09 18:31:42
 
 
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