為dokcer中最簡版ubuntu(70M)增加apt安裝能力

山不在高水不在深發表於2021-12-24

如果要在docker中安裝軟體,除了直接找對應的軟體映象,一般我們會先安裝Linux系統,然後再在裡面安裝各種需要的軟體。

比如我想安裝烏班圖,直接下載官方的版本:

這個目前是Ubuntu20.04,只有72M,因為它只有作業系統的基本功能,大部分軟體都沒有。接下來我們對它進行調教。

更換apt源

這個新的系統啟動後,連文字編輯器也沒有。一般我們會安裝vim,但是現在什麼也安裝不了:

現在就需要給它更換apt源並拉快取。

開啟https://mirrors.ustc.edu.cn/repogen/拉到最下面,修改版本為自己的

需要把裡面的內容替換到/etc/apt下面的sources.list檔案中。可以點後面的下載按鈕下到外面,然後通過目錄對映覆制過去,也可以複製內容貼上過去。這裡採用直接複製的方法:先把原始檔案備份,然後通過echo xxx >> file的命令寫進去,echo接受的字串用雙引號包起來就可以換行

支援HTTPS

現在我們把源換成了國內的中科大,但是依然不能更新,會類似這樣報錯 Certificate verification failed: The certificate is NOT trusted. The certificate issuer is unknown. Could not handshake: Error in the certificate verification. [IP: 202.141.160.110 443]

可以看到裡面說Try installing ca-certificates,但是並不能用,因為現在任何軟體都安裝不了:

就是因為https相關的原因,需要安裝ca-certificaters。但是我根本不能apt update,咋能apt install呢?陷入死迴圈了耶,就像下載了一個winrar.rar一樣無奈。

沒關係,我們手動來安裝。
https://packages.ubuntu.com/focal-updates/amd64/libssl1.1/download 下載了libssl(找到這個地址也不容易啊),然後執行 dpkg -i libssl1.1_1.1.1f-1ubuntu2.10_amd64.deb;
https://packages.ubuntu.com/focal-updates/amd64/openssl/download 下載 openssl,執行 dpkg -i openssl_1.1.1f-1ubuntu2.10_amd64.deb;
https://packages.ubuntu.com/focal-updates/all/ca-certificates/download 下載ca-certificaters,執行 dpkg -i ca-certificates_20210119_20.04.2_all.deb。

這裡都是針對20.04版本(也就是url中的focal)的64位作業系統下載的,如果你不是,要相應變更。

這時候再執行apt update就可以了:

docker image

現在這個映象就方便使用了,如果你不想自己走一遍,可以下載我的映象,我剛打包上傳了:

地址在https://hub.docker.com/repository/docker/davelet/ubuntu20.04/tags,可以拉取。

相關文章