国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Windows Containers 大冒險: 容器存儲

cgh1999520 / 2002人閱讀

摘要:前言容器技術中最核心的一個技術點是分層存儲。當容器運行在進程隔離模式下時,在容器內使用進程相關賬號進行操作。掛載好并指定盤符后就可以在在容器內開始使用掛載的存儲卷了。

前言

容器技術中最核心的一個技術點是分層存儲。在Linux下相關文件默認被存放在/var/lib/docker下,而在Windows 10下安裝Docker for Windows 后默認的存儲文件被放在 C:ProgramDatadocker 下。可以通過在配置文件中設置 docker-root 來修改默認存放的位置。然后即使知道了文件的實際存儲位置,也不建議大家手動對文件進行修改,這些文件處于Docker的精細化管理中。

細節技術點 默認C盤空間大小

默認情況下, microsoft/windowsservercore:1803 的鏡像C盤空間大小為20G。我們可以通過以下命令進入容器內部,然后使用PowerShell命令確認。

docker run --rm -it microsoft/windowsservercore:1803 powershell
Get-CimInstance -Class Win32_Volume | select DriveLetter, @{Name="CapacityInGB"; Expression={$PSItem.Capacity / 1GB}}, @{Name"FreeSpaceInGB";  Expression={$PSItem.FreeSpace / 1GB}}

命令的輸出結果如下:

DriveLetter     CapacityInGB    FreeSpaceInGB
-----------     ------------    -------------
C:          19.8740043640137 19.7209014892578

如果這個默認大小不能滿足部分軟件的剩余空間檢查條件,那么可以在docker run時使用--storage-opt "size=50GB"進行修改,然后再次運行之前的PowerShell命令進行確認。

DriveLetter     CapacityInGB    FreeSpaceInGB
-----------     ------------    -------------
C:          49.8740005493164 49.7309150695801
持久化存儲卷

在Windows中容器的持久化存儲有幾種方式,比如Bind Mounts, Named Volumes,以及在Bind Mounts中還支持SMB共享文件夾。

Bind Mounts

在使用 Bind Mounts 時我們需要注意權限問題。當容器運行在Hyper-V隔離模式下時,容器對主機文件夾是通過LocalSystem賬號進行訪問的,并提供簡單的只讀和讀寫兩種訪問模型。如果發現沒有權限訪問主機文件夾,則只需要在主機文件夾上增加LocalSystem的訪問權限即可。

當容器運行在進程隔離模式下時,在容器內使用進程相關賬號進行操作。默認情況下microsoft/windowsservercore使用ContainterAdmin,而microsoft/nanoserver使用ContainerUser,來訪問主機文件夾的。然而ContainterAdmin和ContainerUser僅存在于容器環境中,因此在主機上進行權限配置時需要使用Authenticated Users。還需要注意的一點是,如果主機文件夾中包含符號鏈接,那這些主機上符號鏈接是在容器內解析的,因此容器內無法訪問。

以下是 Bind Mounts 的一個例子, 容器啟動后通過hostname講主機名寫入到掛載的存儲卷中。

docker run --rm -it -v c:/apps/dockerdata:c:/data microsoft/nanoserver:1803 cmd
hostname > c:datahostname.txr
SMB Mounts

目前SMB Mounts支持傳統的文件服務器以及公用云上的服務,這里的傳統服務器也包含支持iSCSI協議的服務器。這意味著可以使用iSCSI Target新建文件服務器,然后通過iSCSI Initiator建立鏈接。然后設置盤符。本地測試時使用老牌工具廠商Daemon Tools的iSCSI target。掛載好并指定盤符后就可以在在容器內開始使用掛載的存儲卷了。

Named Volume

以上兩種方式都是在 docker run 時使用-v參數指定需要掛載的本地文件夾或者映射到本地的遠程存儲。也可以通過 docker volume create 創建named volume,然后使用指定的名稱替代本地文件夾路徑進行掛載。

比如可以使用以下命令創建 named volume

docker volume create app1_mysql_data

然后使用 docker inspect 查看數據實際的存放位置

$ docker volume inspect app1_mysql_data
[
    {
        "CreatedAt": "2018-06-10T13:41:39+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "C:ProgramDataDockervolumesapp1_mysql_data\_data",
        "Name": "app1_mysql_data",
        "Options": {},
        "Scope": "local"
    }
]
總結

今天討論了和Windows容器存儲的相關細節知識點,由于容器銷毀后容器內數據即丟失的特性,合理的配置存儲卷將幫助我們實現數據持久化。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27329.html

相關文章

  • Windows Containers 冒險: 術語

    摘要:而且在閱讀微軟的官方文檔之前,推薦閱讀官方的概覽文檔。因為微軟的文檔中主要提及了的一些特有概念,而容器技術本身的概念并沒有被著重介紹。因此僅閱讀微軟現有文檔并不能完整的了解容器技術。一個踢爆索尼大法丑聞的男人。以下這張圖則來自官網。 前言 在開始介紹具體操作之前,需要向各位不熟悉容器技術的Windows平臺下管理員和開發者做一個基礎概念的普及。而且在閱讀微軟的官方文檔之前,推薦閱讀Do...

    caige 評論0 收藏0
  • Windows Containers 冒險: 容器網絡

    摘要:目前容器支持和。網絡類型在開始介紹容器網絡前,各位需要了解的虛擬交換機類型。外部虛擬交換機將連接到容器主機的的物理網卡。當容器引擎第一次運行時默認會創建名為的網絡,該網絡使用內部虛擬交換機及名為的系統組件。 前言 得益于現代便捷的交通網絡,無論是公路,鐵路還是飛機,我們的出游變得十分便利。當數據暢游在容器世界中時,也會經歷各式各樣的網絡。目前Windows容器支持 nat, overl...

    denson 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<