在許多企業(yè)環(huán)境中,網(wǎng)絡(luò)訪問受限或出于安全考慮無法直接連接互聯(lián)網(wǎng),這使得在這些環(huán)境中安裝和部署軟件變得更加復(fù)雜。為了應(yīng)對這些挑戰(zhàn),離線部署Docker成為一種實(shí)用的解決方案。本文將詳細(xì)介紹如何在歐拉系統(tǒng)openEuler
上進(jìn)行Docker
的離線部署,以便在無網(wǎng)絡(luò)連接的情況下依然能夠順利使用Docker
進(jìn)行容器化管理。
關(guān)于openEuler
openEuler
是一個(gè)由華為主導(dǎo)并開源的Linux
發(fā)行版,旨在為企業(yè)級應(yīng)用提供高性能、高安全性和高穩(wěn)定性的操作系統(tǒng)平臺(tái)。openEuler
是一個(gè)由華為主導(dǎo)并開源的Linux發(fā)行版,旨在為企業(yè)級應(yīng)用提供高性能、高安全性和高穩(wěn)定性的操作系統(tǒng)平臺(tái)。作為一個(gè)社區(qū)驅(qū)動(dòng)的項(xiàng)目,openEuler
不僅繼承了Linux的開放性和靈活性,還集成了多種優(yōu)化和增強(qiáng)功能,特別是在云計(jì)算、大數(shù)據(jù)、人工智能等領(lǐng)域表現(xiàn)出色。
openEuler官網(wǎng)部署最新Docker版本
本次案例使用的是openEuler 24.03
的版本,如下圖所示:
查看版本信息關(guān)于openEuler系統(tǒng)的部署請查看官方的文檔[1],有詳細(xì)的教程文章。
下載Docker二進(jìn)制離線包
下圖展示了Docker官方提供的二進(jìn)制包下載頁面,可以用于進(jìn)行Docker的離線安裝。通過使用這些官方提供的二進(jìn)制包,即使在無法訪問互聯(lián)網(wǎng)的環(huán)境中,依然能夠順利完成Docker的部署。
Docker二進(jìn)制軟件包本案了采用dockr-27.0.3的版本進(jìn)行部署,通過下面的命令進(jìn)行下載:
wget https://download./linux/static/stable/x86_64/docker-27.0.3.tgz
解壓文件
首先,將下載好的Docker二進(jìn)制安裝包拷貝到目標(biāo)系統(tǒng)上,然后使用tar
命令解壓縮這些文件。以下命令展示了如何完成這一步:
tar -zxvf docker-27.0.3.tgz
這條命令會(huì)將Docker的二進(jìn)制文件解壓縮到當(dāng)前目錄下,解壓后的文件包括Docker守護(hù)進(jìn)程、客戶端、以及相關(guān)的命令行工具。如下圖所示:
解壓后的目錄把文件復(fù)制到/usr/bin/目錄下
完成解壓縮后,我們需要將這些文件移動(dòng)到系統(tǒng)的標(biāo)準(zhǔn)可執(zhí)行文件目錄中,以便系統(tǒng)能夠正確調(diào)用Docker命令:
cp docker/* /usr/bin/
創(chuàng)建Docker服務(wù)文件
使用systemd
來管理Docker服務(wù)是確保其開機(jī)自啟動(dòng)和便捷控制的最佳實(shí)踐之一。創(chuàng)建一個(gè)名為docker.service
的systemd服務(wù)文件。這個(gè)文件通常位于/usr/lib/systemd/system/
目錄下:
vim /usr/lib/systemd/system/docker.service
在文件中添加以下內(nèi)容 :
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
為了使新的服務(wù)文件生效,需要重新加載systemd
的配置:
systemctl daemon-reload
啟動(dòng)并啟用Docker服務(wù)
systemctl start docker
- 檢查Docker服務(wù)狀態(tài),確保其正常運(yùn)行:
systemctl status docker
允許上述命令后,輸入如下圖結(jié)果:
檢查Docker服務(wù)情況- 設(shè)置Docker服務(wù)開機(jī)自啟動(dòng)
systemctl enable docker
驗(yàn)證Docker安裝
通過以下命令驗(yàn)證Docker是否正確安裝和運(yùn)行:
docker --version
執(zhí)行完上述命令后,輸出如下結(jié)果:
通過上述返回的信息看到Docker已經(jīng)正確安裝好了。運(yùn)行一個(gè)簡單的Docker容器,驗(yàn)證Docker是否正常工作 :
docker run -d nginx
運(yùn)行上述命令出現(xiàn)如下圖結(jié)果,則說明Docker已成功安裝并正常運(yùn)行。
總結(jié)
通過以上步驟,我們實(shí)現(xiàn)了在歐拉系統(tǒng)上離線部署Docker。盡管離線環(huán)境限制了直接從網(wǎng)絡(luò)獲取軟件包的能力,但通過提前準(zhǔn)備好所需的安裝包和依賴,我們依然可以順利完成Docker的安裝和部署。