国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Docker數(shù)據(jù)卷(Volume)

這篇具有很好參考價值的文章主要介紹了Docker數(shù)據(jù)卷(Volume)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Docker數(shù)據(jù)卷(Volume)

一、數(shù)據(jù)卷概念

數(shù)據(jù)卷是宿主機中的一個目錄或者文件,當容器目錄和數(shù)據(jù)卷目錄綁定后,對方的修改會立即同步。

一個數(shù)據(jù)卷可以被多個容器同時掛載,一個容器也可以被掛載多個數(shù)據(jù)卷。

簡單來說,數(shù)據(jù)卷本質其實是共享文件夾,是宿主機與容器之間數(shù)據(jù)共享的橋梁。

數(shù)據(jù)卷的作用:

  • 容器數(shù)據(jù)持久化
  • 外部機器和容器間接通信
  • 容器之間數(shù)據(jù)交換

卷技術就是為了實現(xiàn)數(shù)據(jù)的持久化和同步操作,容器間也是數(shù)據(jù)共享。

二、數(shù)據(jù)卷的配置方式

1、語法格式
docker run ... –v 宿主機目錄(文件):容器內(nèi)目錄(文件) ...
  • 目錄必須是絕對路徑
  • 如果宿主機目錄不存在,會自動創(chuàng)建
  • 可以掛載多個數(shù)據(jù)卷(直接繼續(xù)跟 -v 參數(shù))
#在創(chuàng)建啟動容器時掛載數(shù)據(jù)卷
[root@localhost opt]# docker run -id --name test -v /opt/test_data:/root/test_data centos:7 /bin/bash
aba73cea46edcd2a30c7a5ba7d782b3c263270f9281684084fff878b00d9b42d

可以在宿主機掛載的目錄中創(chuàng)建一個文件或者目錄,然后進入容器內(nèi)查看是否同步數(shù)據(jù)。

2、掛載方式
  • 匿名掛載:-v 容器內(nèi)路徑
  • 具名掛載:-v 數(shù)據(jù)卷名:容器內(nèi)路徑
  • 指定路徑掛載:-v /宿主內(nèi)路徑:容器內(nèi)路徑

說明:匿名掛載只需要填寫容器內(nèi)路徑,Docker 會默認幫我們創(chuàng)建匿名數(shù)據(jù)卷進行映射和掛載。一般使用具名掛載和指定路徑掛載。具名掛載會在 /var/lib/docker/volumes/ 目錄下創(chuàng)建對應的數(shù)據(jù)卷目錄;而匿名掛載生成的目錄名則是隨機的。

#指定路徑掛載
[root@localhost opt]# docker run -id --name test -v /opt/test_data:/root/test_data centos:7 /bin/bash
#具名掛載
[root@localhost opt]# docker run -id --name test1 -v my_data:/root/test_data centos:7 /bin/bash
[root@localhost opt]# docker volume inspect my_data
[
    {
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/my_data/_data",
        "Name": "my_data",
        "Options": {},
        "Scope": "local"
    }
]

#查看已有的容器數(shù)據(jù)卷
[root@localhost opt]# docker volume ls
DRIVER              VOLUME NAME
local               6c415d518ce61e5e047bcf8fc33ae43f7882ea6ec38c07675bdb1568eb0d1b7f
local               a2575ccb30033360d5c784a686628771e80d12903f83e8773146aa9dad7a765f
local               e4f571f1544d753bb2505e391ad88c4d02100ca2ef3caf0ae8dc9bcd42c7160d
local               my_data
local               test
#匿名掛載
[root@localhost opt]# docker run -id --name test3 -v /root/test_data centos:7 /bin/bash
c7bd0c7aa231847042cac9c4ef827b3bbd281144e79f230f9c30b1d8d52a3e5f
[root@localhost opt]# docker volume ls
DRIVER              VOLUME NAME
local               4ee1d7e862c36848a7ab57af9dd79c0577e46c4545a05b70dd96203466d27303
local               6c415d518ce61e5e047bcf8fc33ae43f7882ea6ec38c07675bdb1568eb0d1b7f
local               a2575ccb30033360d5c784a686628771e80d12903f83e8773146aa9dad7a765f
local               e4f571f1544d753bb2505e391ad88c4d02100ca2ef3caf0ae8dc9bcd42c7160d
local               my_data
local               test
[root@localhost opt]# docker volume inspect 6c415d518ce61e5e047bcf8fc33ae43f7882ea6ec38c07675bdb1568eb0d1b7f
[
    {
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/6c415d518ce61e5e047bcf8fc33ae43f7882ea6ec38c07675bdb1568eb0d1b7f/_data",
        "Name": "6c415d518ce61e5e047bcf8fc33ae43f7882ea6ec38c07675bdb1568eb0d1b7f",
        "Options": {},
        "Scope": "local"
    }
]
3、volume 的基本使用

docker volume 命令:

  • create:創(chuàng)建數(shù)據(jù)卷
  • inspect:查看數(shù)據(jù)卷元數(shù)據(jù)
  • ls:查看數(shù)據(jù)卷列表
  • prune:刪除所有未使用的卷
  • rm:刪除數(shù)據(jù)卷
#創(chuàng)建一個自定義容器
[root@localhost opt]# docker volume create my_data
#查看所用容器卷
[root@localhost opt]# docker volume ls
#查看指定容器卷信息
[root@localhost opt]# docker volume inspect
#刪除容器卷
[root@localhost opt]# docker volume rm
4、MySQL數(shù)據(jù)卷掛載實戰(zhàn)

1)搜索和下載鏡像的步驟就省去了

2)創(chuàng)建啟動鏡像

[root@localhost opt]# docker run -id --name my_mysql -p 3600:3306 -v /opt/mysql/conf:/ect/mysql/conf.d -v /opt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
8bace46562e55239fe7689b638be1eabaf416cc0c3093e009feac292af0779ca

3)進行驗證,我們先進入容器創(chuàng)建一個新的數(shù)據(jù)庫以及表,再插入一條數(shù)據(jù),然后退出容器

[root@localhost opt]# docker exec -it my_mysql /bin/bash
bash-4.2# mysql -uroot -p123456
......
mysql> use test;
Database changed

mysql> create table t_test(id int,name varchar(255));
Query OK, 0 rows affected (0.00 sec)

mysql> insert into t_test values(1,"huhai");
Query OK, 1 row affected (0.06 sec)

mysql> select * from t_test;
+------+-------+
| id   | name  |
+------+-------+
|    1 | huhai |
+------+-------+
1 row in set (0.00 sec)
mysql> exit
Bye
bash-4.2# exit
exit

4)然后我們將這個容器給停止之后刪除,再創(chuàng)建一個相同路徑的數(shù)據(jù)卷進行掛載,查看是否有我們已經(jīng)有的數(shù)據(jù)

[root@localhost opt]# docker stop my_mysql
my_mysql
[root@localhost opt]# docker rm my_mysql
my_mysql
[root@localhost opt]# docker run -id --name my_mysql -p 3600:3306 -v /opt/mysql/conf:/ect/mysql/conf.d -v /opt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
e208b09a924d9849b2f4cca225e3d51ac59f00f1ee64f11b2ba134183f170c76
[root@localhost opt]# docker exec -it my_mysql /bin/bash
bash-4.2# mysql -uroot -p123456
......
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql> use test;
Database changed

mysql> select * from t_test;
+------+-------+
| id   | name  |
+------+-------+
|    1 | huhai |
+------+-------+
1 row in set (0.00 sec)

mysql> exit
Bye
bash-4.2# exit
exit

三、遷移與備份

? Docker 實際應用中,我們會安裝很多容器,然后進行配置。試想一下,一臺 Linux 服務器的容器怎么轉移到另一臺 Linux 服務器?這就涉及到了遷移與備份,我們可以將容器先保存為鏡像,然后將鏡像保存為壓縮包,其他地方需要時可以將這個壓縮包轉回鏡像。大概分為以下三種情況:

  • 將開發(fā)環(huán)境下的 Docker 中對應的容器持久化為鏡像
  • 將鏡像保存為一個壓縮包,發(fā)送到生產(chǎn)環(huán)境服務器中
  • 生產(chǎn)環(huán)境中需要將壓縮包–>鏡像–>容器
1、容器保存為鏡像

1)命令:docker commit

2)作用:將容器保存為鏡像

3)語法格式:docker commit 容器名稱(或容器ID) 鏡像名稱:鏡像標簽

如果不寫鏡像標簽則默認為 latest

[root@localhost opt]# docker commit my_mysql my_mysql:1.0
sha256:1f381fd1b9c929034e5f454e005b0a74535cbcce5406b7b8ea6c8e218ae11886
[root@localhost opt]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
my_mysql                1.0                 1f381fd1b9c9        6 seconds ago       495 MB
docker.io/tomcat        latest              1dad8c5497f9        4 weeks ago         474 MB
docker.io/mysql         5.7                 d410f4167eea        5 weeks ago         495 MB
docker.io/openjdk       8                   b273004037cc        5 months ago        526 MB
docker.io/hello-world   latest              feb5d9fea6a5        15 months ago       13.3 kB
docker.io/centos        7                   eeb6ee3f44bd        16 months ago       204 MB
2、鏡像保存為tar包

1)命令:docker save

2)作用:將鏡像保存為 tar 包

3)語法:docker save -o tar包名 鏡像名稱(或鏡像ID)

-o 代表輸出到的文件

可以指定tar包的路徑,即在tar包前面加路徑

鏡像后面可以跟鏡像標簽

#不加路徑則默認在當前路徑下創(chuàng)建tar包
[root@localhost opt]# docker save -o my_mysql.tar my_mysql
[root@localhost opt]# ll
總用量 900220
......
-rw-------  1 root root 510828544 112 10:45 my_mysql.tar
drwxr-xr-x  4 root root      4096 111 17:44 mysql
......
#加對應路徑
[root@localhost opt]# docker save -o ~/my_mysql2.tar my_mysql
[root@localhost opt]# ll ~
總用量 498904
......
-rw-------  1 root root 510828544 112 10:48 my_mysql2.tar
drwxr-xr-x. 2 root root      4096 1216 16:28 公共
......
3、tar包恢復為鏡像

1)命令:docker load

2)作用:恢復鏡像

3)語法:docker load -i tar包

-i 代表指定導入的文件文章來源地址http://www.zghlxwxcb.cn/news/detail-713331.html

#首先刪除創(chuàng)建的容器
[root@localhost opt]# docker rm my_mysql 
my_mysql
#然后刪除剛才備份的鏡像
[root@localhost opt]# docker rmi my_mysql:1.0
#通過tar包恢復鏡像
[root@localhost opt]# docker load -i my_mysql.tar 
bd3382c8b69e: Loading layer [==================================================>] 10.75 kB/10.75 kB
Loaded image: my_mysql:1.0
#創(chuàng)建啟動容器
[root@localhost opt]# docker run -id --name my_mysql -p 3600:3306 -v /opt/mysql/conf:/ect/mysql/conf.d -v /opt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 my_mysql:1.0
1fb2a85039f89050d8c85c2edb34032a0633e927a38b3a6bcaef7c3949ee0f68

到了這里,關于Docker數(shù)據(jù)卷(Volume)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • windows下docker compose方式掛載數(shù)據(jù)卷volume遇到的問題

    例子一,windows 下docker desk top部署TDengine td-compose.yml 運行docker-compose 問題1: 配置文件映射卷,但沒有自己生成配置文件反而報錯。 解決方案:bind mount直接掛載目錄的方式必須將配置文件先復制下來宿主機,因為它是按宿主機文件同步。 問題2: 部署后出現(xiàn)UDF一直提示重啟

    2024年02月10日
    瀏覽(19)
  • Docker數(shù)據(jù)管理之三種方式- 數(shù)據(jù)卷(Volumes)- 掛載主機目錄(Bind mounts)- 數(shù)據(jù)卷容器(Data Volume Containers)

    Docker數(shù)據(jù)管理之三種方式- 數(shù)據(jù)卷(Volumes)- 掛載主機目錄(Bind mounts)- 數(shù)據(jù)卷容器(Data Volume Containers)

    文章主人公:帥哥BUG?? 文章路人: 路人 ??? ? 路人? ?? ??: docker在容器中管理數(shù)據(jù)主要有三種方式哦~ ??:? 啊!,我記得docker在容器中管理數(shù)據(jù)主要方式是這兩種吧? - 數(shù)據(jù)卷(Volumes) - 掛載主機目錄(Bind mounts) ? ?? ??:? 額,主要的方式是這兩種?我怎么記得是這

    2024年02月05日
    瀏覽(85)
  • docker學習(六)卷Volume

    docker學習(一)docker 概述 docker學習(二)docker 安裝部署 docker學習(三)常用命令 docker學習(四)使用 commit 制作鏡像 docker學習(五)使用 Dockerfile 制作鏡像 docker學習(六)卷 Volume docker學習(七)docker daemon docker學習(八)HTTP/HTTPS 代理 docker學習(九)docker 調(diào)試 docker學習

    2024年02月12日
    瀏覽(17)
  • Docker Volume - 目錄掛載以及文件共享

    Docker中的數(shù)據(jù)可以存儲在類似于虛擬機磁盤的介質中,在Docker中稱為數(shù)據(jù)卷(Data Volume)。數(shù)據(jù)卷可以用來存儲Docker應用的數(shù)據(jù),也可以用來在Docker容器間進行數(shù)據(jù)共享。數(shù)據(jù)卷呈現(xiàn)給Docker容器的形式就是一個目錄,支持多個容器間共享,修改也不會影響鏡像。使用Docker的數(shù)

    2024年02月20日
    瀏覽(25)
  • docker 的volume 是個什么概念

    在Docker中,Volume(卷)是一種用于在容器和主機之間共享和持久化數(shù)據(jù)的機制。Volumes允許在容器之間或容器與主機之間共享文件,并且數(shù)據(jù)在容器的生命周期中是持久的。這是因為容器的文件系統(tǒng)是臨時的,容器被刪除后文件系統(tǒng)中的數(shù)據(jù)也會被清除,而Volume提供了一種解決

    2024年02月22日
    瀏覽(27)
  • Docker Volume 看這一篇就夠了

    Docker Volume 看這一篇就夠了

    默認情況下,在容器內(nèi)創(chuàng)建的所有文件都存儲在可寫容器層上。這意味著: 當該容器不再存在時,數(shù)據(jù)不會持續(xù)存在,并且如果另一個進程需要數(shù)據(jù),則可能很難將數(shù)據(jù)從容器中取出。 容器的可寫層與運行容器的主機緊密耦合。您無法輕松地將數(shù)據(jù)移動到其他地方。 寫入容

    2024年02月02日
    瀏覽(106)
  • 解析Docker與docker-compose中volume參數(shù)的使用

    解析Docker與docker-compose中volume參數(shù)的使用

    目錄 數(shù)據(jù)卷Volume的概念 數(shù)據(jù)掛載的實現(xiàn)方式 宿主機路徑掛載在docker/docker-compose中的使用 卷標映射掛載在docker/docker-compose中的使用 A.匿名掛載 B.具名掛載 參考文獻: 在docker內(nèi)有個“數(shù)據(jù)卷持久化”的概念,也就是我們常說的“數(shù)據(jù)掛載”。它的作用是,將宿主機上的數(shù)據(jù)與

    2024年02月01日
    瀏覽(23)
  • Dockers數(shù)據(jù)卷Volume

    在 Docker 中,數(shù)據(jù)卷(Volume)是一種持久化存儲數(shù)據(jù)的方法,可以在容器和主機之間共享數(shù)據(jù),并且可以保持數(shù)據(jù)的持久性。使用數(shù)據(jù)卷可以方便地將數(shù)據(jù)從一個容器傳遞到另一個容器,也可以使得容器中的數(shù)據(jù)在容器刪除后仍然保留。 以下是一個詳細的示例代碼,展示如何

    2024年04月28日
    瀏覽(40)
  • 【博客609】docker volume掛載本機文件出現(xiàn)不同步的問題解決

    docker volume掛載本機文件,在宿主機修改文件之后,容器內(nèi)部不會同步生效,沒有發(fā)生對應的修改,需要重啟容器才可以正常同步。 啟動一個busybox容器,掛載一個測試文件: 在容器里查看文件內(nèi)容: 修改宿主機上的文件: 在 docker 里面查看是否發(fā)生同步修改: 發(fā)現(xiàn)我們在外

    2023年04月12日
    瀏覽(27)
  • 14.3.4 【Linux】使用 LVM thin Volume 讓 LVM 動態(tài)自動調(diào)整磁盤使用率

    14.3.4 【Linux】使用 LVM thin Volume 讓 LVM 動態(tài)自動調(diào)整磁盤使用率

    想像一個情況,你有個目錄未來會使用到大約 5T 的容量,但是目前你的磁盤僅有 3T,問題是,接下來的兩個月你的系統(tǒng)都還不會超過 3T 的容量, 不過你想要讓用戶知道,就是他最多有 5T 可以使用就是了!而且在一個月內(nèi)你確實可以將系統(tǒng)提升到 5T 以上的容量! 你又不想要

    2024年02月14日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包