-
克星現在更常見,未來還會有更多的靶心。 一般來說,其他的不是我們的首選。
Alpine 是眾多 Linux 發行版之一,如 CentOS、Ubuntu、ArchLinux 等,但它只是乙個發行版的名稱,據說小巧且安全,擁有自己的軟體包管理工具 APK。
阿爾卑斯山非常非常小:100公尺與5公尺!
官方阿爾卑斯山影象的文件:
但Alpine的規模小是有代價的,當它不容易時,它可能會給你帶來麻煩!
除了插入一些不必要的軟體外,Alpine Linux 還特別重要,因為它使用 Musl libc 而不是著名的 glibc。
Musl libc 包含與 glibc 相同的標準動力罩液體能量,但問題是 glibc 還具有標準功能之外的擴充套件功能,並且由於 glibc 的歷史地位和市場份額,glibc 的擴充套件功能實際上得到了廣泛的應用! 有很多軟體使用 glibc 擴充套件進行編譯、安裝和執行,因此它執行在 glibc 的基礎頸部,但不能使用 musl libc 執行在 alpine 上。
此外,Alpine沒有像Red Hat或Canonical這樣的大公司的維護支援,而且軟體包的數量比這些發行版少得多(如果你看一下開箱即用的預設儲存庫,Alpine只有10,000個軟體包,而Ubuntu,Debian和Fedora都有超過50,000個軟體包)。 )
如果實在不想折騰,可以選擇折衷的映象 映象一般基於 Debian 和 Glibc,除了很多非必要的包外,刪除都針對大小進行了優化。 如果在構建過程中需要編譯器,則 slim 映像不適合,但在大多數情況下,可以使用 slim 作為基礎映像。
-
建立映像:
1. 準備需要執行的JDK和Spring Boot小專案。
將jdk包解壓到dockerfile所在目錄下,將spring boot專案拷貝到dockerfile所在目錄下
2. 建立乙個dockerfile,內容如下:
指定基礎映象 centos
指定維護者資訊 yaolin
複製JDK並配置JDK環境。
公開埠 8080。
指定執行以啟動 Spring Boot 小專案。
3. 編譯並生成映象 (..)表示當前路徑)。
docker build -t yaolin/websocket .
4. 檢視生成的影象。
docker images
5. 建立乙個容器並執行它。
docker run -p :8080:8080 --name websocket yaolin/websocket
您可以看到容器執行正常並列印日誌,但這種執行方式會搶占終端。 請改用 docker start websocket 開始:
6.訪問(在物理機上,不在虛擬機器上,這裡我的Spring Boot小專案好像有點問題,報了500錯誤,但是可以訪問,表明容器已經正常執行了Spring Boot專案)。