奇怪的知識又增加了2——軟體部署 & Docker
-
-
- 部署
- Docker:Build once,Run anywhere
-
部署
-
什麼是部署
一般,軟體從研發到使用者使用包括開發和部署兩個環節,其中,部署就是讓寫的程式或者開發的産品在某一個環境下跑起來。按環境的不同,可以分為遠端部署和本地部署。
解決問題:為什麼在我的電腦上跑得起來,放另一台電腦就不行?
-
怎麼去部署
從源代碼生成軟體包 -----> 軟體包放到某一環境 -----> 配置目标環境使得軟體運作。
(啊,乍一看,好像廢話)
Docker:Build once,Run anywhere
- 簡單/通俗:如何通俗解釋Docker是什麼? - 周宇剛的回答 - 知乎
- 生動/形象:如何通俗解釋Docker是什麼? - 小棗君的回答 - 知乎
- Docker包括鏡像、容器和倉庫三個重要的概念,以C++的角度,鏡像可以看作類,容器是對象,倉庫就是庫。Docker是管理這些内容的工具。
鏡像(Image)
Docker鏡像可以看作是一個特殊的檔案系統,除了提供容器運作時所需的程式、庫、資源、配置等檔案外,還包含了一些為運作時準備的一些配置參數(如匿名卷、環境變量、使用者等)。但沒有動态的資料,是隻讀的。
容器(Container)
Docker容器與鏡像幾乎一樣,但是可讀寫的。
倉庫(Repository)
Docker Registry(倉庫注冊伺服器)負責存儲和分發鏡像,每個Registry可以有多個Repository,每個Repository可以包含多個标簽(Tag),每個标簽對應着一個鏡像。
- 虛拟機與Docker:Docker的容器技術更為輕量化。
虛拟機 | Docker | |
---|---|---|
隔離級别 | 作業系統級 | 程序級 |
啟動時間 | 分鐘級 | 秒級 |
鏡像存儲 | GB~TB | KB~MB |
叢集規模 | 上百 | 上萬 |
- Docker的拉取、運作、退出
sudo docker login xxxxx # 登陸
sudo docker pull yyyyy:tag # 拉取
sudo docker run -ti yyyyy # 運作
## -t tty
## -i interactive
## --net Connect a container to a network
## --ipc IPC mode to use
## --device Add a host device to the container
## --privileged Give extended privileges to this container
## -v Bind mount a volume 映射共享路徑
exit # 退出