1. 程式人生 > >Docker 容器數據持久化

Docker 容器數據持久化

pre reat 數據持久化 方便 whoami create 之間 ash spec

Docker Volumn 卷

提供了一種容器數據持久化的技術,可以將容器中的目錄掛載至本機上。同時也為容器之間的數據共享提供了方便。

不指定掛載到宿主機

比如運行docker run -d --name nginx -v /usr/share/nginx/html whoami/hello-nginx

  • -d

    在daemon中運行

    --name nginx

    將容器命名為nginx

  • -v /usr/share/nginx/html

    指定需要持久化的目錄,即需要掛載的目錄。

技術分享圖片

使用sudo docker inspect nginx查看

inspect可以查看很多有關容器的信息,但是此刻我關註的是掛載的信息:

技術分享圖片

在掛載目標目錄的地方找到了index.html中並在其中追加了<b>hello the cruel world!!</b>

下面使用docker exec -it nginx /bin/bash進入容器之中

技術分享圖片

可以看到在宿主機之中做的更改與容器中的同步了!

指定掛載到宿主機

使用命令sudo docker run -d -p 80:80 -v $PWD/html:/var/www/html nginx

  • 其中$PWD為shell的宏變量代表的是當前路徑

  • -p 80:80 將宿主機的80端口映射為容器的80端口

技術分享圖片

效果不多說了!

指定掛載到容器

  • 創建數據容器docker create -v $PWD/data:/var/mydata --name Data ubuntu

技術分享圖片

  • 創建需要掛載的容器docker run -it --volumes-from Data ubuntu /bin/bash
    運行之後會直接進入容器之中,使用mount | grep mydata

技術分享圖片

進行掛載的目錄,然後創建文件`makeit`

技術分享圖片

可以看到掛載到容器也是可以同步數據的。

Docker 容器數據持久化