三連問(wèn):Docker 是什么、安裝在哪、怎么使用?
好用,真的好用! 自從使用 Docker 后,我可以非常簡(jiǎn)單的安裝、使用、卸載各類(lèi)所需的軟件,如;MySql、Redis、RabbitMQ、XXL-Job、FRP,等一些列開(kāi)發(fā)環(huán)境和我自己開(kāi)發(fā)的好的項(xiàng)目進(jìn)行上線發(fā)布。以前一個(gè)MySql安裝到卸載,可能半天時(shí)間都沒(méi)了。但有 Docker 后,我自己既可以是開(kāi)發(fā)工程師也是可以是軟件實(shí)施工程師。因?yàn)樗梢砸恍心_本即可完成所有的操作,腳本在,環(huán)境就在,服務(wù)就在。
那 Docker 是什么呢?
Docker 是什么,其實(shí)來(lái)自于 Docker 的圖標(biāo)已經(jīng)說(shuō)明。Docker 的圖標(biāo)是一條鯨魚(yú) ??一樣的大船,上面擺放了很多集裝箱。你可以把這些集裝箱當(dāng)做是一個(gè)個(gè)不同的應(yīng)用程序,雖然不同但可以統(tǒng)一用一套集裝箱(腳本命令)承載,并承放在統(tǒng)一一條大船上(環(huán)境上)。而且這些集裝箱都有自己的編號(hào)ID(有自己的IP)互相隔離,不受影響。
Docker 是一個(gè)用于開(kāi)發(fā)、發(fā)布和運(yùn)行應(yīng)用程序的開(kāi)放平臺(tái)。Docker 可讓您將應(yīng)用程序與基礎(chǔ)架構(gòu)分離,以便快速交付軟件。借助 Docker,您可以像管理應(yīng)用程序一樣管理基礎(chǔ)架構(gòu)。通過(guò)利用 Docker 的發(fā)布、測(cè)試和部署代碼方法,您可以顯著減少編寫(xiě)代碼和在生產(chǎn)中運(yùn)行代碼之間的延遲。
官網(wǎng):https://www.docker.com/文檔:https://docs.docker.com/get-started/docker-overview/
一、Docker 安裝在哪
Docker 可以安裝在 Windows + wsl2、Mac、Linux,支持 ARM、AMD 架構(gòu)。它可以通過(guò)軟件下載安裝和執(zhí)行腳本命令安裝,也可以通過(guò)云服務(wù)器提供的鏡像直接購(gòu)買(mǎi)云服務(wù)器時(shí)選擇使用。我們可以看下 Docker 和虛擬機(jī)安裝在操作系統(tǒng)上的關(guān)系來(lái)了解 Docker 的安裝位置。
圖片
與虛擬機(jī)的安裝使用相比,Docker 會(huì)把應(yīng)用所需的依賴、函數(shù)庫(kù)、甚至其他的軟件應(yīng)用可以一起打包成一個(gè)鏡像,這樣在應(yīng)用程序運(yùn)行時(shí),就可以直接調(diào)用本地函數(shù)庫(kù),然后和 Linux 內(nèi)核進(jìn)行通信。有了這樣的設(shè)計(jì),你也就不需要關(guān)心每一個(gè)應(yīng)用所需的環(huán)境都是啥了,也不用為每一個(gè)應(yīng)用安裝各類(lèi)環(huán)境到 Linux 或者虛擬機(jī)了。也就做到了跨系統(tǒng)的運(yùn)行。這有點(diǎn)類(lèi)似于 Java 的 JVM 虛擬機(jī)。
- 本地安裝:https://www.docker.com/ - 下載 Mac、Windows 你需要的版本進(jìn)行安裝。
 - 云服務(wù)器:https://bugstack.cn/md/road-map/docker.html - centos 7.9 其他的也都類(lèi)似操作即可。
 
安裝完成后都可以通過(guò)命令操作,安裝、部署、卸載軟件。文末提供了教程鏈接。
二、Docker 怎么工作
Docker 為了屏蔽軟件使用差異,會(huì)統(tǒng)一對(duì)這些軟件進(jìn)行鏡像打包,把一個(gè)軟件所需的各類(lèi)環(huán)境都打包到鏡像中。我們?cè)谑褂玫臅r(shí)候,就是使用各類(lèi)平臺(tái)提供好的軟件鏡像,進(jìn)行服務(wù)部署。同樣的我們也可以作為鏡像提供方,把我們的應(yīng)用程序 SpringBoot、React、VUE 等,打包成鏡像,讓我們?cè)谄渌胤?,如云服?wù)器進(jìn)行部署?;蛘咛峁┙o全網(wǎng)的人員,進(jìn)行部署使用。
圖片
如圖,這是一整套的,本地拉取鏡像、部署環(huán)境、開(kāi)發(fā)代碼、發(fā)布鏡像,再到云服務(wù)器拉取鏡像、部署項(xiàng)目和環(huán)境的過(guò)程。在這個(gè)過(guò)程中,我們也可以借助于如 Github Action 完成鏡像的構(gòu)建和發(fā)布,還可以在云服務(wù)器上直接構(gòu)建鏡像,減少了拉取拉取的過(guò)程。
你可以理解為,Docker 就是一個(gè)中心和一個(gè)客戶端,中心管理鏡像,客戶端拉取使用或者構(gòu)建發(fā)布鏡像。
三、Docker 命令說(shuō)明
Docker 的操作是通過(guò)腳本命令配置和執(zhí)行完成使用,不過(guò)不用害怕命令??,命令是最簡(jiǎn)單、直接、可靠的方式。當(dāng)你習(xí)慣命令以后,你會(huì)很喜歡它,并且知道只要執(zhí)行這個(gè)命令就一定會(huì)有結(jié)果,而不像被軟件包裝后,不確定是軟件的問(wèn)題還是命令的問(wèn)題。
Docker 安裝軟件分為直接使用和通過(guò) Docker Compose 腳本。直接使用如;docker run -d --restart=always --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer 這條命令會(huì)自動(dòng)拉取和執(zhí)行腳本。不過(guò)對(duì)于更大的項(xiàng)目部署,Docker Compose 腳本更好用。
圖片
- 如圖,是整個(gè) Docker Compose 在配置一套執(zhí)行腳本后,各個(gè)腳本的核心用途。當(dāng)然 Docker Compose 還有不少的命令,比如容量的限制、端口的處理、默認(rèn)的命令等,都是可以操作的,凡是你想的合理的,它都可以支持。
 - 特別注意,安裝到云服務(wù)器的docker部署的應(yīng)用,外部訪問(wèn)需要走公網(wǎng)IP:Port端口,之后這個(gè)端口要在安全組打開(kāi)。這樣就類(lèi)似于你再本地自己的電腦發(fā),訪問(wèn)另外一臺(tái)電腦上的服務(wù)了。
 - 如果在使用中遇到其他命令不理解的,可以讓 openai 解釋。
 















 
 
 













 
 
 
 