歐拉系統(tǒng)部署Docker最佳實踐指南
背景
現(xiàn)在國產(chǎn)化系統(tǒng)在各行各業(yè)普及,而Docker部署在歐拉系統(tǒng)上與主流的CentOS、Redhat、Ubuntu 在一些細(xì)節(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),提供高性能、高安全性及長周期維護(hù)支持。主要應(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公司維護(hù)的Debian系Linux發(fā)行版,以用戶友好性和豐富的軟件生態(tài)著稱。提供LTS(長期支持)版本(5年維護(hù)周期)和半年更新版本。廣泛應(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ò)和進(jìn)程空間。
- 容器(Container):運行時的實例,基于鏡像創(chuàng)建。容器是輕量級的,啟動快速,資源占用少。
- 鏡像(Image):容器的靜態(tài)模板,包含運行應(yīng)用程序所需的代碼、庫和環(huán)境配置。鏡像是只讀的,通過分層存儲實現(xiàn)高效復(fù)用。
- Dockerfile:文本文件,定義如何構(gòu)建鏡像。包含一系列指令(如
FROM
、RUN
、COPY
)。 - Docker Hub:公共鏡像倉庫,提供官方和社區(qū)維護(hù)的鏡像,支持鏡像的拉取和推送。
Docker Compose
Docker Compose 是用于定義和運行多容器 Docker 應(yīng)用程序的工具。通過 YAML 文件(默認(rèn)名 docker-compose.yml
)配置服務(wù)、網(wǎng)絡(luò)和卷,實現(xiàn)一鍵啟動、停止和管理容器組。
- 服務(wù)(Service):在
docker-compose.yml
中定義的一個容器化應(yīng)用。一個服務(wù)可以包含多個相同鏡像的容器實例(通過擴(kuò)展實現(xiàn))。 - 項目(Project):由一組關(guān)聯(lián)的服務(wù)組成,通過
docker-compose
命令管理。項目名稱默認(rèn)為當(dāng)前目錄名,也可通過-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ù)細(xì)節(jié)
歐拉系統(tǒng)環(huán)境下載和檢測
準(zhǔ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的日志類型默認(rèn)是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 二進(jìn)制文件
從 GitHub 官方倉庫下載最新版本的 docker-compose 二進(jìn)制文件:
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)限
為下載的二進(jìn)制文件添加可執(zhí)行權(quán)限:
sudo chmod +x /usr/local/bin/docker-compose
驗證安裝
通過檢查版本號確認(rèn)安裝是否成功:
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)文章
使用Docker快速搭建Airflow+MySQL詳細(xì)步驟
本文詳細(xì)介紹了如何使用Docker和Docker Compose安裝并配置Apache Airflow 2.9.3,步驟包括創(chuàng)建項目目錄、編寫docker-compose.yml文件、創(chuàng)建所需目錄結(jié)構(gòu)、啟動和管理Docker容器,以及如何訪問和配置Airflow Web UI,感興趣的朋友跟隨小編一起看看吧2024-09-09Docker實踐—CentOS7上部署Kubernetes詳解
kubernetes作為docker的管理工具是由Google開源提供,但是kubernetes的安裝一直折磨著運維人員,在這一系列的文章中我將會由kubernetes的安裝講起為大家介紹kubernetes的安裝使用等過程,也作為自己的學(xué)習(xí)筆記。2017-01-01Ubuntu?環(huán)境下安裝?Docker環(huán)境詳解
這篇文章主要介紹了Ubuntu?環(huán)境下安裝?Docker環(huán)境詳解的相關(guān)資料,需要的朋友可以參考下2022-10-10docker?nginx(訪問靜態(tài)文件、訪問共享目錄、負(fù)載均衡)配置方式
這篇文章主要介紹了docker?nginx(訪問靜態(tài)文件、訪問共享目錄、負(fù)載均衡)配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03docker-compose up -d和docker-compose up -
本文主要介紹了docker-compose up -d和docker-compose up --build的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Docker的安裝方法及運行Docker Swarm模式的使用
本文給大家簡單介紹docker的安裝以及1.12版本的swarm模式的使用,包括docker的安裝和配置,對docker swarm簡單使用感興趣的朋友一起看看吧2016-11-11docker的pdflatex環(huán)境配置的方法步驟
這篇文章主要介紹了docker的pdflatex環(huán)境配置的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03