如果要在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,可以拉取。