教你十分鐘學會用docker部署微服務!
分類:虛機資訊
編輯:
瀏覽量:100
2021-07-22 17:19:01
??Docker是一個開源的容器引擎,它有助于更快地交付應用。 Docker可將應用程序和基礎設施層隔離,并且能將基礎設施當作程序一樣進行管理。使用 Docker可更快地打包、測試以及部署應用程序,并可以縮短從編寫到部署運行代碼的周期。2013年發布至今, Docker 一直廣受矚目,被認為可能會改變軟件行業。但是,許多人并不清楚 Docker 到底是什么,要解決什么問題,好處又在哪里?今天就來詳細解釋,幫助大家理解它,教你如何將它用于日常開發并用其部署微服務。下面就由新網小編和大家講一講用docker部署微服務!
??一、Docker的優點如下:
??1. 簡化程序
??Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是 Docker的最大優勢,過去需要用數天乃至數周的 任務,在Docker容器的處理下,只需要數秒就能完成。
??2. 避免選擇恐懼癥
??如果你有選擇恐懼癥,還是資深患者。Docker 幫你 打包你的糾結!比如 Docker 鏡像;Docker 鏡像中包含了運行環境和配置,所以 Docker 可以簡化部署多種應用實例工作。比如 Web 應用、后臺應用、數據庫應用、大數據應用比如 Hadoop 集群、消息隊列等等都可以打包成一個鏡像部署。
??3. 節省開支
??一方面,云計算時代到來,使開發者不必為了追求效果而配置高額的硬件,Docker 改變了高性能必然高價格的思維定勢。Docker 與云的結合,讓云空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。
??二、Docker架構
??1、Docker daemon( Docker守護進程)
??Docker daemon是一個運行在宿主機( DOCKER-HOST)的后臺進程。可通過 Docker客戶端與之通信。
??2、Client( Docker客戶端)
??Docker客戶端是 Docker的用戶界面,它可以接受用戶命令和配置標識,并與 Docker daemon通信。圖中, docker build等都是 Docker的相關命令。
??3、Images( Docker鏡像)
??Docker鏡像是一個只讀模板,它包含創建 Docker容器的說明。它和系統安裝光盤有點像,使用系統安裝光盤可以安裝系統,同理,使用Docker鏡像可以運行 Docker鏡像中的程序。
??4、Container(容器)
??容器是鏡像的可運行實例。鏡像和容器的關系有點類似于面向對象中,類和對象的關系。可通過 Docker API或者 CLI命令來啟停、移動、刪除容器。
??5、Registry
??Docker Registry是一個集中存儲與分發鏡像的服務。構建完 Docker鏡像后,就可在當前宿主機上運行。但如果想要在其他機器上運行這個鏡像,就需要手動復制。此時可借助 Docker Registry來避免鏡像的手動復制。
??一個 Docker Registry可包含多個 Docker倉庫,每個倉庫可包含多個鏡像標簽,每個標簽對應一個 Docker鏡像。這跟 Maven的倉庫有點類似,如果把 Docker Registry比作 Maven倉庫的話,那么 Docker倉庫就可理解為某jar包的路徑,而鏡像標簽則可理解為jar包的版本號。
??三、Docker安裝
??Docker 是一個開源的商業產品,有兩個版本:社區版(Community Edition,縮寫為 CE)和企業版(Enterprise Edition,縮寫為 EE)。企業版包含了一些收費服務,個人開發者一般用不到。
??四、Docker常用命令
??(一) 鏡像相關命令
??1、搜索鏡像
??可使用 docker search命令搜索存放在 Docker Hub(這是docker官方提供的存放所有docker鏡像軟件的地方,類似maven的中央倉庫)中的鏡像。執行該命令后, Docker就會在Docker Hub中搜索含有 java這個關鍵詞的鏡像倉庫。
??2、下載鏡像
??使用命令docker pull命令即可從 Docker Registry上下載鏡像,執行該命令后,Docker會從 Docker Hub中的 java倉庫下載最新版本的 Java鏡像。如果要下載指定版本則在java后面加冒號指定版本。
??3、列出鏡像
??使用 docker images命令即可列出已下載的鏡像
??4、刪除本地鏡像
??使用 docker rmi命令即可刪除指定鏡像
??RUN命令在 image 文件的構建階段執行,執行結果都會打包進入 image 文件;CMD命令則是在容器啟動后執行。另外,一個 Dockerfile 可以包含多個RUN命令,但是只能有一個CMD命令。指定了CMD命令以后,docker container run命令就不能附加命令了(比如前面的/bin/bash),否則它會覆蓋CMD命令。小伙伴們要想獲得更多docker部署的內容,請關注新網!
??一、Docker的優點如下:
??1. 簡化程序
??Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是 Docker的最大優勢,過去需要用數天乃至數周的 任務,在Docker容器的處理下,只需要數秒就能完成。
??2. 避免選擇恐懼癥
??如果你有選擇恐懼癥,還是資深患者。Docker 幫你 打包你的糾結!比如 Docker 鏡像;Docker 鏡像中包含了運行環境和配置,所以 Docker 可以簡化部署多種應用實例工作。比如 Web 應用、后臺應用、數據庫應用、大數據應用比如 Hadoop 集群、消息隊列等等都可以打包成一個鏡像部署。
??3. 節省開支
??一方面,云計算時代到來,使開發者不必為了追求效果而配置高額的硬件,Docker 改變了高性能必然高價格的思維定勢。Docker 與云的結合,讓云空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。
??二、Docker架構
??1、Docker daemon( Docker守護進程)
??Docker daemon是一個運行在宿主機( DOCKER-HOST)的后臺進程。可通過 Docker客戶端與之通信。
??2、Client( Docker客戶端)
??Docker客戶端是 Docker的用戶界面,它可以接受用戶命令和配置標識,并與 Docker daemon通信。圖中, docker build等都是 Docker的相關命令。
??3、Images( Docker鏡像)
??Docker鏡像是一個只讀模板,它包含創建 Docker容器的說明。它和系統安裝光盤有點像,使用系統安裝光盤可以安裝系統,同理,使用Docker鏡像可以運行 Docker鏡像中的程序。
??4、Container(容器)
??容器是鏡像的可運行實例。鏡像和容器的關系有點類似于面向對象中,類和對象的關系。可通過 Docker API或者 CLI命令來啟停、移動、刪除容器。
??5、Registry
??Docker Registry是一個集中存儲與分發鏡像的服務。構建完 Docker鏡像后,就可在當前宿主機上運行。但如果想要在其他機器上運行這個鏡像,就需要手動復制。此時可借助 Docker Registry來避免鏡像的手動復制。
??一個 Docker Registry可包含多個 Docker倉庫,每個倉庫可包含多個鏡像標簽,每個標簽對應一個 Docker鏡像。這跟 Maven的倉庫有點類似,如果把 Docker Registry比作 Maven倉庫的話,那么 Docker倉庫就可理解為某jar包的路徑,而鏡像標簽則可理解為jar包的版本號。
??三、Docker安裝
??Docker 是一個開源的商業產品,有兩個版本:社區版(Community Edition,縮寫為 CE)和企業版(Enterprise Edition,縮寫為 EE)。企業版包含了一些收費服務,個人開發者一般用不到。
??四、Docker常用命令
??(一) 鏡像相關命令
??1、搜索鏡像
??可使用 docker search命令搜索存放在 Docker Hub(這是docker官方提供的存放所有docker鏡像軟件的地方,類似maven的中央倉庫)中的鏡像。執行該命令后, Docker就會在Docker Hub中搜索含有 java這個關鍵詞的鏡像倉庫。
??2、下載鏡像
??使用命令docker pull命令即可從 Docker Registry上下載鏡像,執行該命令后,Docker會從 Docker Hub中的 java倉庫下載最新版本的 Java鏡像。如果要下載指定版本則在java后面加冒號指定版本。
??3、列出鏡像
??使用 docker images命令即可列出已下載的鏡像
??4、刪除本地鏡像
??使用 docker rmi命令即可刪除指定鏡像
??RUN命令在 image 文件的構建階段執行,執行結果都會打包進入 image 文件;CMD命令則是在容器啟動后執行。另外,一個 Dockerfile 可以包含多個RUN命令,但是只能有一個CMD命令。指定了CMD命令以后,docker container run命令就不能附加命令了(比如前面的/bin/bash),否則它會覆蓋CMD命令。小伙伴們要想獲得更多docker部署的內容,請關注新網!
聲明:免責聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,也不承認相關法律責任。如果您發現本社區中有涉嫌抄襲的內容,請發
送郵件至:operations@xinnet.com進行舉報,并提供相關證據,一經查實,本站將立刻刪除涉嫌侵權內容。本站原創內容未經允許不得轉載,或轉載時
需注明出處:新網idc知識百科