歐拉系統(tǒng)部署Docker最佳實踐指南
背景
現(xiàn)在國產(chǎn)化系統(tǒng)在各行各業(yè)普及,而Docker部署在歐拉系統(tǒng)上與主流的CentOS、Redhat、Ubuntu 在一些細節(jié)上有所差異,正好有項目用到,于是把經(jīng)驗分享一下。
整體架構(gòu)流程
- 歐拉系統(tǒng)環(huán)境下載和檢測
- docker安裝
- docker-compose安裝
技術(shù)名詞解釋
歐拉系統(tǒng)(openEuler)
歐拉系統(tǒng)是由華為開發(fā)的開源Linux發(fā)行版,基于CentOS構(gòu)建,面向企業(yè)級應(yīng)用場景。其特點包括支持ARM/x86/GPU等多種架構(gòu),提供高性能、高安全性及長周期維護支持。主要應(yīng)用于云計算、大數(shù)據(jù)和邊緣計算領(lǐng)域。
CentOS
CentOS(Community Enterprise Operating System)是基于Red Hat Enterprise Linux(RHEL)源代碼重新編譯而成的免費Linux發(fā)行版。其優(yōu)勢在于完全兼容RHEL的穩(wěn)定性和企業(yè)級功能,但無官方商業(yè)支持。2020年后轉(zhuǎn)為CentOS Stream,變?yōu)镽HEL的上游開發(fā)分支。
Red Hat Enterprise Linux(RHEL)
RHEL是由Red Hat公司開發(fā)的商業(yè)Linux發(fā)行版,針對企業(yè)服務(wù)器和工作站設(shè)計。提供長期技術(shù)支持(通常10年)、安全更新及專業(yè)服務(wù),需訂閱授權(quán)。其穩(wěn)定性與安全性使其成為金融、電信等行業(yè)的主流選擇。
Ubuntu
Ubuntu是由Canonical公司維護的Debian系Linux發(fā)行版,以用戶友好性和豐富的軟件生態(tài)著稱。提供LTS(長期支持)版本(5年維護周期)和半年更新版本。廣泛應(yīng)用于桌面環(huán)境、云服務(wù)(如OpenStack)及物聯(lián)網(wǎng)領(lǐng)域。
Docker
Docker 是一種開源的容器化平臺,允許開發(fā)者將應(yīng)用程序及其依賴打包到一個輕量級、可移植的容器中。容器在運行時與其他容器隔離,共享主機操作系統(tǒng)內(nèi)核,但擁有獨立的文件系統(tǒng)、網(wǎng)絡(luò)和進程空間。
- 容器(Container):運行時的實例,基于鏡像創(chuàng)建。容器是輕量級的,啟動快速,資源占用少。
- 鏡像(Image):容器的靜態(tài)模板,包含運行應(yīng)用程序所需的代碼、庫和環(huán)境配置。鏡像是只讀的,通過分層存儲實現(xiàn)高效復(fù)用。
- Dockerfile:文本文件,定義如何構(gòu)建鏡像。包含一系列指令(如
FROM、RUN、COPY)。 - Docker Hub:公共鏡像倉庫,提供官方和社區(qū)維護的鏡像,支持鏡像的拉取和推送。
Docker Compose
Docker Compose 是用于定義和運行多容器 Docker 應(yīng)用程序的工具。通過 YAML 文件(默認名 docker-compose.yml)配置服務(wù)、網(wǎng)絡(luò)和卷,實現(xiàn)一鍵啟動、停止和管理容器組。
- 服務(wù)(Service):在
docker-compose.yml中定義的一個容器化應(yīng)用。一個服務(wù)可以包含多個相同鏡像的容器實例(通過擴展實現(xiàn))。 - 項目(Project):由一組關(guān)聯(lián)的服務(wù)組成,通過
docker-compose命令管理。項目名稱默認為當前目錄名,也可通過-p指定。 - 網(wǎng)絡(luò)(Network):Compose 自動為項目創(chuàng)建專用網(wǎng)絡(luò),服務(wù)間可通過服務(wù)名通信,無需暴露端口到主機。
- 卷(Volume):用于持久化數(shù)據(jù)或共享數(shù)據(jù) between 容器。Compose 支持定義命名的卷或綁定主機目錄。
Docker與Docker Compose關(guān)鍵區(qū)別
- Docker:專注于單容器的生命周期管理(構(gòu)建、運行、分發(fā))。
- Docker Compose:專注于多容器應(yīng)用的編排,簡化復(fù)雜應(yīng)用的依賴管理和部署流程。
技術(shù)細節(jié)
歐拉系統(tǒng)環(huán)境下載和檢測
準備一臺電腦,內(nèi)存至少8G,cpu i5, 存儲建議至少500G
U盤: 驅(qū)動USB2.0/3.0, 存儲最少16GB
去 openEuler社區(qū) 下載ISO,我用的是openEuler 24.09, 通過刻盤工具把ISO寫入到U盤,這里不做介紹,有空出一篇。
安裝后,通過ssh工具登錄,執(zhí)行如下命令檢查
[root@localhost ~]# cat /etc/os-release NAME="openEuler" VERSION="24.09" ID="openEuler" VERSION_ID="24.09" PRETTY_NAME="openEuler 24.09" ANSI_COLOR="0;31"
Docker安裝
查看yum鏡像源
[root@localhost ~]# ll /etc/yum.repos.d/ 總計 16 -rw-r--r--. 1 root root 2027 2024年11月21日 docker-ce.repo -rw-r--r--. 1 root root 2027 2024年12月16日 docker.repo -rw-r--r--. 1 root root 2587 2024年 9月18日 openEuler.repo.bak -rw-r--r--. 1 root root 105 2024年11月21日 openEuler_x86_64.repo [root@localhost ~]# cat /etc/yum.repos.d/openEuler_x86_64.repo [repository] name=openEuler baseurl=https://mirrors.huaweicloud.com/openeuler/openEuler-24.09/OS/x86_64/
發(fā)現(xiàn)地址是https://mirrors.huaweicloud.com/openeuler/openEuler-24.09/OS/x86_64/
檢索需要安裝的docker名稱
[root@localhost ~]# yum search docker \Repository docker-ce-stable is listed more than once in the configuration Repository docker-ce-stable-debuginfo is listed more than once in the configuration Repository docker-ce-stable-source is listed more than once in the configuration Repository docker-ce-test is listed more than once in the configuration Repository docker-ce-test-debuginfo is listed more than once in the configuration Repository docker-ce-test-source is listed more than once in the configuration Repository docker-ce-nightly is listed more than once in the configuration Repository docker-ce-nightly-debuginfo is listed more than once in the configuration Repository docker-ce-nightly-source is listed more than once in the configuration Last metadata expiration check: 3:28:00 ago on 2025年09月04日 星期四 13時29分13秒. ======================================================================================== Name Exactly Matched: docker ======================================================================================== docker.x86_64 : The open-source application container engine ======================================================================================= Name & Summary Matched: docker ======================================================================================= docker-buildx-plugin.x86_64 : Docker Buildx plugin for the Docker CLI docker-ce-rootless-extras.x86_64 : Rootless support for Docker docker-client.x86_64 : Docker client binary and related utilities docker-compose.noarch : Multi-container orchestration for Docker docker-compose-plugin.x86_64 : Docker Compose (V2) plugin for the Docker CLI docker-model-plugin.x86_64 : Docker Model Runner plugin for the Docker CLI docker-scan-plugin.x86_64 : Docker Scan plugin for the Docker CLI pcp-pmda-docker.x86_64 : Performance Co-Pilot (PCP) metrics from the Docker daemon python3-docker.noarch : A Python library for the Docker Engine API. python3-docker-pycreds.noarch : Python bindings for the docker credentials store API python3-dockerpty.noarch : Python library to use the pseudo-tty of a docker container ============================================================================================ Name Matched: docker ============================================================================================ docker-ce.x86_64 : The open-source application container engine docker-ce-cli.x86_64 : The open-source application container engine docker-engine.x86_64 : The open-source application container engine
發(fā)現(xiàn)有幾個docker-ce docker-ce-cli docker-engine
安裝Docker引擎
yum install docker-engine docker-ce docker-ce-cli
啟動Docker服務(wù)
sudo systemctl start docker sudo systemctl enable docker
驗證版本和安裝
sudo docker -v sudo docker run hello-world
設(shè)置Docker鏡像加速(可選)
編輯配置文件/etc/docker/daemon.json:data-root一般選擇磁盤空間較大的那個分區(qū)
[root@localhost ~]# cat /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://dockerhub.icu",
"https://docker.rainbond.cc"
],
"data-root": "/data/docker"
}重載配置并重啟:
sudo systemctl daemon-reload sudo systemctl restart docker
注意事項
- 24.09這個版本,docker的日志類型默認是journald,通過/etc/docker/daemon.json配置為json會導(dǎo)致報錯,可能需要運行時指定
- docker的ulimit同樣需要docker run才能指定,配置會報錯
- 這時命令示例
docker run xxx --ulimit nofile=65536:65536 --ulimit nproc=65536:65536 --log-driver=json-file --log-opt max-size=50m --log-opt max-file=10
docker-compose安裝
在安裝 docker-compose 之前,需確保 Docker 已正確安裝。
下載 docker-compose 二進制文件
從 GitHub 官方倉庫下載最新版本的 docker-compose 二進制文件:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
賦予執(zhí)行權(quán)限
為下載的二進制文件添加可執(zhí)行權(quán)限:
sudo chmod +x /usr/local/bin/docker-compose
驗證安裝
通過檢查版本號確認安裝是否成功:
docker-compose --version
配置用戶權(quán)限(可選)
若希望非 root 用戶使用 docker-compose,需將用戶加入 docker 組:
sudo usermod -aG docker $USER newgrp docker
總結(jié)
最近一直在歐拉系統(tǒng)上使用docker安裝各種鏡像,與主流的CentOS、Redhat、Ubuntu相比,并無差異,并且感覺性能似乎更好一點。
到此這篇關(guān)于歐拉系統(tǒng)部署Docker最佳實踐指南的文章就介紹到這了,更多相關(guān)歐拉系統(tǒng)部署Docker內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一次centos Docker網(wǎng)橋模式無法訪問宿主機Redis服務(wù)的故障排除經(jīng)歷
這篇文章主要給大家介紹了關(guān)于一次centos Docker網(wǎng)橋模式無法訪問宿主機Redis服務(wù)的故障排除經(jīng)歷,文中通過示例代碼介紹的非常詳細,對大家學(xué)習或者使用Docker具有一定的參考學(xué)習價值,需要的朋友們下面來一起學(xué)習學(xué)習吧2019-10-10
如何使用docker compose 部署ELK 8.X及監(jiān)控
這篇文章主要介紹了如何使用docker compose 部署ELK 8.X及監(jiān)控,包括前置環(huán)境配置及docker compose啟動/停止的命令,感興趣的朋友跟隨小編一起看看吧2023-10-10
docker搭建php+nginx+swoole+mysql+redis環(huán)境的方法
這篇文章主要介紹了docker搭建php+nginx+swoole+mysql+redis環(huán)境的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03
Docker環(huán)境下快速部署Ollama與Open-WebUI的詳細指南
在本篇文章中,我們將深入探討如何在Docker中高效部署 Ollama 和 Open-WebUI,并解決在實際使用中常見的問題,有需要的小伙伴可以跟隨小編一起學(xué)習一下2026-03-03

