1. 查看镜像的dockerfile 里面有定义volumn数据卷,语句 :VOLUME /var/lib/postgresql/data

生成容器后,执行docker inspect contain_id在输出信息中的mount 可以看到volumn 的文件夹。


2 如果使用-v 在启动容器时挂

docker run --name ttpostgres2 -p 5410:5432 -e POSTGRES_PASSWORD=123456 -v /var:/var/lib/postgresql -d postgres:9.6

执行docker inspect contain_id 中的 mount 可以看到如下内容

 

 

; 以上两种方法得到的type 是不一样的。

3. 如果volumn -v 挂载相同的文件夹,这样仅仅会显示-v的挂载,似乎会覆盖volumn。当执行docker inspect contain_id时 ,仅仅可以得到如下的mount

docker run --name ttpostgres2 -p 5410:5432 -e POSTGRES_PASSWORD=123456 -v /root/data:/var/lib/postgresql /data -d postgres:9.6

4.  如果volumn -v 挂载不同的文件夹,执行docker inspect contain_id在输出信息中的mount 可以看到volumn 和 bind 两部分

pg var/lib/postgresql/data 通过volumn 挂载了,在容器外面可以查到和容器相同的内容。 例如我在容器内新建了一个表,容器内外都可以查到。

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐