• <samp id="mz5ne"><acronym id="mz5ne"></acronym></samp>
      <ol id="mz5ne"></ol>
    1. <samp id="mz5ne"></samp>
      <mark id="mz5ne"></mark>

        <fieldset id="mz5ne"></fieldset>

        免费看又黄又无码的网站_久久久高清国产免费观看_亚洲一区二区三区在线免费观看_免费欧洲美女a视频一级毛片_日本最新免费二区三区

        ×

        docker架構是什么?docker鏡像發(fā)布方法介紹

        分類:虛機資訊 編輯:虛機世界 瀏覽量:189
        2021-04-09 15:30:13

          在網絡應用的很多情況下,使用一些我們不多見的軟件或應用是很正常的情況。這個時候就需要我們現(xiàn)學一些操作及應用,才能讓我們的任務得到推進。而學習新知識往往不是那么容易的,我們需要的是一篇足夠詳細的教學文章,讓我們這些沒有基礎的同學也能快速掌握。那么下面新網小編就為大家介紹一下docker架構是什么?為大家?guī)韉ocker鏡像發(fā)布方法介紹,希望對大家有所幫助。


          Docker 架構

          在Docker的架構中,主要有三個主要概念:鏡像Docker 鏡像可以看作是一個特殊的文件系統(tǒng),除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數(shù)(如匿名卷、環(huán)境變量、用戶等)。鏡像不包含任何動態(tài)數(shù)據(jù),其內容在構建之后也不會被改變。docker鏡像由多層組成,不同的鏡像都能使用相同的父鏡像作為他們的基礎鏡像,這些相同的基礎鏡像在docker的角度來看就是完全相同的層。在docker鏡像的傳輸過程中,當某些相同的層已經存在的時候,就完全不需要重新傳輸了,這大大提高了鏡像在網絡上的傳輸效率。分層的設計不僅使鏡像分發(fā)更高效,也有利于減少鏡像的存儲空間。每一層僅僅被存儲一次,就算基于相同基礎層的鏡像被創(chuàng)建兩個容器的時候,這兩個容器也是互相隔離的,雖然他們能讀到相同的文件,但是卻看不到對方文件的修改。

        一個容器被創(chuàng)建的時候,會創(chuàng)建一個新的可寫層,容器中的修改會反應到這個新的可寫層中。就算了容器修改了底層的文件,此文件的修改內容會copy到頂層,底層依然不會發(fā)生變化。容器鏡像(Image)和容器(Container)的關系,就像是面向對象程序設計中的類和實例一樣,鏡像是靜態(tài)的定義,容器是鏡像運行時的實體。容器可以被創(chuàng)建、啟動、停止、刪除、暫停等。docker的容器通常是一個linux容器,它是運行在宿主機上的一個進程,但是和其他宿主進程是隔離的,并且所用的資源是受限的(只能訪問特定的資源,比如網絡接口,文件系統(tǒng))鏡像倉庫鏡像倉庫和它的字面意思一致,是很多鏡像的集合,它的作用就是把鏡像共享給每個人,當然這里順便提一下,鏡像倉庫也可以有私人倉庫。

        當你的應用程序被打包之后,如果想在另外一個機器上運行,你就可以把你的應用鏡像上傳到鏡像倉庫,然后開放這個倉庫,這樣網絡上的任何機器都能夠下載你的鏡像,然后運行。通常,一個倉庫會包含同一個軟件不同版本的鏡像,而標簽就常用于對應該軟件的各個版本 。我們可以通過:的格式來指定具體是這個軟件哪個版本的鏡像。如果不給出標簽,將以 latest 作為默認標簽.。倉庫又可以分為兩種形式:

          private(私有倉庫)
          Docker Registry 公有倉庫是開放給用戶使用、允許用戶管理鏡像的 Registry 服務。一般這類公開服務允許用戶免費上傳、下載公開的鏡像,并可能提供收費服務供用戶管理私有鏡像。
          除了使用公開服務外,用戶還可以在本地搭建私有 Docker Registry 。Docker 官方提供了 Docker Registry鏡像,可以直接使用做為私有 Registry 服務。當用戶創(chuàng)建了自己的鏡像之后就可以使用 push 命令將它上傳到公有或者私有倉庫,這樣下次在另外一臺機器上使用這個鏡像時候,只需要從倉庫上 pull 下來就可以了。構建分發(fā)運行鏡像開發(fā)人員首先構建一個鏡像,然后把鏡像推到鏡像倉庫中。因此,任何可以訪問鏡像倉庫的人都可以使用該鏡像。然后,他們可以將鏡像拉取到任何運行著Docker的機器上并運行鏡像。Docker會基于鏡像創(chuàng)建一個獨立的容器,并運行二進制可執(zhí)行文件指定其作為鏡像的一部分。
         

          docker的缺陷
          就像所有的技術解決方案,docker也不是完美的。docker的缺陷在于運行的內核,由于它直接運行在宿主機的內核之上,所以如果docker容器的運行內核版本和宿主機的內核不匹配就會出現(xiàn)問題。追根到底,還是硬件架構設計上的差異,不僅僅是docker容器,幾乎所有的軟件都會有內核架構不同而不能運行的問題。除此之外,由于docker是基于linux的容器技術,所以在windows下運行并不令人滿意,雖然這些年docker在windows上也進步了很多。
          docker鏡像發(fā)布
          docker鏡像的倉庫有很多,這里以官方網站https://hub.docker.com/ 為例,首先你要在官網創(chuàng)建一個賬號,然后可以在Account Settings=》Security中設置一個AccessToken ,這里為了演示,沒有在官網顯示創(chuàng)建倉庫。因為我是本身是C#出身,這里利用vs2019來做演示。打開vs2019新建一個netcore的項目,我這里創(chuàng)建一個控制臺程序,程序很簡單:
          static void Main(string[] args) { Console.WriteLine("Hello World!"); while (true) { Console.WriteLine("Hello World22222!"); System.Threading.Thread.Sleep(1000); } }
          然后在項目右鍵 添加=》docker支持,會根據(jù)當前項目自動生成dockerfile文件。就算沒有ide的支持,也可以自己手擼一個dockerfile文件,然后利用docker的命令打包,當然語法和以下是一樣的:
          FROM mcr.microsoft.com/dotnet/core/runtime:3.0-buster-slim AS base WORKDIR /app FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY ["netcoretest/netcoretest.csproj", "netcoretest/"] RUN dotnet restore "netcoretest/netcoretest.csproj" COPY . . WORKDIR "/src/netcoretest" RUN dotnet build "netcoretest.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "netcoretest.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "netcoretest.dll"]
          然后項目右鍵 發(fā)布=》容器注冊表=》docker hub 創(chuàng)建發(fā)布選項,會彈出輸入docker hub賬號密碼彈窗,然后輸入賬號密碼,最后點擊發(fā)布按鈕,本地必須要安裝docker哦,我這里為了演示,在windows上安裝的docker for windows。和以上類似,就算沒有ide的支持,我們一樣可以利用docker命令把鏡像推送到指定倉庫。這里只是演示流程,所以不要糾結。
         
        docker鏡像發(fā)布
          如果環(huán)境沒有錯誤的話,發(fā)布過程中會彈出黑窗口:
         
        docker鏡像發(fā)布
          發(fā)布完成,在docker hub中刷新頁面會發(fā)現(xiàn)新倉庫已經被創(chuàng)建好了。
          接下來就是在裝有docker的機器上,拉取進行并運行容器了,這里以我本地windows 和測試服務器linux為例,分別演示,但是其實在兩個操作系統(tǒng)中命令是一模一樣的:
          docker run chenhongyu/netcoretest

          無論是在windows上還是在linux上,容器成功被拉取運行。


          上面這篇文章簡單的為大家介紹了一下docker鏡像發(fā)布的方法以及docker的相關知識,如果我們此前對此類的知識一點也沒有了解的,希望各位仔細研讀這篇文章,文章介紹的非常詳細,相信在用心之后你也能夠快速掌握。如果你還想了解更多的相關知識與內容,歡迎長期關注新網,你定會有所收獲。


        聲明:免責聲明:本文內容由互聯(lián)網用戶自發(fā)貢獻自行上傳,本網站不擁有所有權,也不承認相關法律責任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內容,請發(fā)

        送郵件至:operations@xinnet.com進行舉報,并提供相關證據(jù),一經查實,本站將立刻刪除涉嫌侵權內容。本站原創(chuàng)內容未經允許不得轉載,或轉載時

        需注明出處:新網idc知識百科

        免費咨詢獲取折扣

        Loading
        国产精品视频白浆免费视频_久久久高清国产免费观看_亚洲一区二区三区在线免费观看_免费欧洲美女a视频一级毛片
      1. <samp id="mz5ne"><acronym id="mz5ne"></acronym></samp>
          <ol id="mz5ne"></ol>
        1. <samp id="mz5ne"></samp>
          <mark id="mz5ne"></mark>

            <fieldset id="mz5ne"></fieldset>
            从江县| 胶州市| 昌乐县| 双柏县| 龙州县| 射阳县| 泸水县| 烟台市| 独山县| 东丽区| 和静县| 江华| 梓潼县| 枝江市| 曲松县| 宣汉县| 乡城县| 大冶市| 金溪县| 江门市| 樟树市| 淳化县| 南阳市| 扬州市| 永年县| 吴川市| 渭源县| 石家庄市| 屏南县| 阿荣旗| 蒙山县| 弥渡县| 大港区| 兴海县| 祁东县| 布尔津县| 铅山县| 金湖县| 田林县| 涞水县| 松江区|