文章目錄
- docker簡介
- 舉例
- docker安裝
- go語言
- go安裝
- go 配置
docker簡介
Docker可以看作是一種極其輕巧的“虛擬機”,它允許你將一個或多個程序及其運行環境打包在一起,形成一個標準化的單元,這個單元可以在任何支持Docker的系統上運行,不受底層操作系統的限制。
如果用更貼近生活的例子來解釋,Docker就像是軟件世界中的“集裝箱”。集裝箱在物流行業中用于標準化運輸,它可以裝載貨物,保護里面的物品不受外界環境影響,而且可以用同一種方式在全球范圍內快速裝卸和運輸。同樣地,Docker容器將軟件和它的運行環境打包起來,確保軟件能在任何環境中以相同的方式運行,簡化了軟件的部署和分發過程。
舉例
當然,讓我們通過一個簡單的日常例子來理解Docker。
想象你要做一道復雜的菜肴,例如說,法式煎鴨胸。首先,你需要一個詳細的菜譜,告訴你烹飪步驟和所需的所有配料(這就像創建Dockerfile)。然后,你需要在自己的廚房里準備所有的配料并按照菜譜開始烹飪(這就像構建Docker容器)。
但是,有一個問題。這道菜非常復雜,你不可能到每個人家里去親自做。現在,假設你有一個神奇的設備,可以忠實地復制出你的整個廚房和煎鴨胸,包括海鹽撒在鴨胸上的每一個顆粒,而且還保持著你烹飪完成時的狀態。然后你可以把這個復制好的"廚房"送到任何地方,人們只需要稍作熱身,就可以享用這道菜(這就像運行Docker容器)。
在這個例子中,你的廚房就像是一個Docker容器,你的菜譜就像是Dockerfile,你準備的配料就是應用及其依賴環境,而你復制并發送到其他地方的"廚房"就像是在其他機器上運行的Docker容器。
所以,Docker的工作方式有點像是"煮好"你的應用程序和它的環境,然后把"煮好"的容器"送"到任何你想要的地方,再稍作熱身(運行)就可以享用了。
docker安裝
curl -sSL https://get .docker.com | sh
-
curl: 這是一種命令行工具,用于獲取或發送數據,此處用于從指定的URL下載數據。
-
-sSL: 這些都是curl命令的選項。其中,-s 或 --silent 選項意味著靜默模式。在靜默模式下,所有常規的進度顯示和錯誤消息都會被抑制。-S 或 --show-error 選項意味著顯示錯誤。當使用了 -s 選項時,這個 -S 選項非常有用,可以在發生問題時顯示錯誤信息。-L 或 --location 選項意味著如果服務器報告該頁面已移至其他地方(即發送了一個位置頭),則跟隨至新的位置。
https://get.docker.com: 這是用于下載Docker安裝腳本的URL。
-
|: 這是一個管道符號,它的作用是將前面命令的輸出作為下一個命令的輸入。
-
sh: 這是Shell的解釋器,這里的用途是執行從 https://get.docker.com 下載下來的腳本。
即可以直接使用docker了
go語言
Go 語言,也被稱為 Golang,是由 Google 開發的一種靜態強類型、編譯型的編程語言。Go 語言擁有 C 語言的效率、Python 語言的易讀性以及并發處理能力強等特性。
Go 語言的語法十分清晰簡單,方便新手學習。同時,Go 語言提供了豐富的標準庫,包括網絡編程、圖形處理、文本處理、數據庫操作等方面,可以讓開發者在無需使用第三方庫的情況下,直接使用標準庫完成很多功能開發。
C/C++是傳統的編程語言,是面向過程和面向對象的語言,擁有完整的指針操作和內存管理功能。 而Go語言是一種現代化的編程語言,它具有垃圾回收機制,讓開發者不需要過多關注內存管理問題,同時支持并發編程
此外,Go 語言是一種編譯型語言,它在運行前需要先進行編譯,編譯后的執行效率相對高。而在編譯過程中,Go 語言也會完成很多錯誤和問題的檢測,保證了程序的質量。
最后,Go 語言在并發處理上也做得非常出色。它支持 Goroutines,類似于輕量級的線程,可以進行大規模的并行運算,非常適合需要處理高并發的網絡編程和云編程。
go安裝
- 去官網上找合適的版本下載
- 下載好后解壓
tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz
- 編譯$HOME/.bashrc,并使其立刻生效
code $HOME/.bashrc
-
tar:這是一個常用的Unix/Linux命令,用于處理歸檔/壓縮文件。
-
-C /usr/local:‘-C’參數用于改變tar命令的工作目錄。在這里,tar將會在’/usr/local’目錄下進行操作。
-
-xzf:這三個選項用于告訴tar命令執行什么操作。
-
- x:表示‘extract’,也就是解壓縮。
-
- z:表示tar命令應使用gzip來解壓或壓縮文件。
-
- f:表示‘file’,也就是后面跟著的會是一個文件名。
-
go1.22.0.linux-amd64.tar.gz:這是你要解壓的文件的名字。文件名表示這是Go語言1.22.0版本的Linux平臺的64位安裝包。
添加 export PATH=$PATH:/usr/local/go/bin
-
export:這是用于設置環境變量的 shell 命令。這告訴 shell,我們想要修改 PATH 環境變量的值。
-
PATH:這是一個特殊的環境變量,操作系統用它來查找命令行中輸入的命令。當你在命令行中輸入一個命令(比如 go),shell 會在 PATH 變量所列出的所有目錄中查找這個命令。
-
$PATH:這是獲取當前 PATH 環境變量值的方法。在這里,我們用冒號(:)將它與新路徑連接在一起,來添加新的路徑。
-
:/usr/local/go/bin:這是你要添加到 PATH 中的新路徑。這是在你的系統上安裝的 Go 語言二進制文件的位置。
-
=:這是賦值的操作符。在這里,它用于將新的 PATH 值(即原來的 PATH 值,后面加了新的路徑)賦給 PATH 環境變量。
source $HOME/.bashrc
-
source :這是一個 Bash 命令,它會讀取并在當前 Shell 會話中執行指定的文件中的命令。
-
$HOME :這是一個表示用戶主目錄的環境變量。在大多數系統中,這就等同于 /home/您的用戶名。
-
/.bashrc :.bashrc 是一個在用戶主目錄下的文件,該文件包含一些定義 Bash Shell 行為的腳本。每次啟動新的 Bash Shell 會話(例如新開一個終端窗口)時,.bashrc 文件中的腳本會自動執行。
安裝成功
go 配置
GOPATH 真正存放代碼的路 Go 找依賴包時會根據 GOPATH 來尋找 GOPATH
目錄約定有如下 個子目錄。
src:您的Go源文件存放在這里。每個包在src下有自己的目錄。
pkg:這個目錄包含包對象。這些是編譯后的Go源代碼文件,用于生成可執行文件。
bin:這個目錄包含可執行的命令。當您運行go install package并且go install通過src目錄下的工作區定位包,Go就會將文件安裝到這里。
這里以 /go為GOPATH 路徑,編輯 $HOME/.bashrc 文件,將命令 export GOPATH=/go 添加到文件中,
然后執行 source $HOME/.bashrc ,之后再執行 go env 看一下效果,結果如下。
可以看到, $GOPATH 己經被指定了。
接下來的代碼都會基于以上配置,代碼路徑為 $GOPATH/src/github.com/xianlubird/
mydocker 項目名稱為 mydocker ,后面會基于這個路徑進行開發