欧拉系统部署Docker最佳实践指南

 更新时间:2025年09月05日 08:49:35   作者:瑞瑞绮绮  
本文给大家介绍欧拉系统部署Docker最佳实践指南,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

背景

现在国产化系统在各行各业普及,而Docker部署在欧拉系统上与主流的CentOS、Redhat、Ubuntu 在一些细节上有所差异,正好有项目用到,于是把经验分享一下。

整体架构流程

  • 欧拉系统环境下载和检测
  • docker安装
  • docker-compose安装

技术名词解释

欧拉系统(openEuler)

欧拉系统是由华为开发的开源Linux发行版,基于CentOS构建,面向企业级应用场景。其特点包括支持ARM/x86/GPU等多种架构,提供高性能、高安全性及长周期维护支持。主要应用于云计算、大数据和边缘计算领域。

CentOS

CentOS(Community Enterprise Operating System)是基于Red Hat Enterprise Linux(RHEL)源代码重新编译而成的免费Linux发行版。其优势在于完全兼容RHEL的稳定性和企业级功能,但无官方商业支持。2020年后转为CentOS Stream,变为RHEL的上游开发分支。

Red Hat Enterprise Linux(RHEL)

RHEL是由Red Hat公司开发的商业Linux发行版,针对企业服务器和工作站设计。提供长期技术支持(通常10年)、安全更新及专业服务,需订阅授权。其稳定性与安全性使其成为金融、电信等行业的主流选择。

Ubuntu

Ubuntu是由Canonical公司维护的Debian系Linux发行版,以用户友好性和丰富的软件生态著称。提供LTS(长期支持)版本(5年维护周期)和半年更新版本。广泛应用于桌面环境、云服务(如OpenStack)及物联网领域。

Docker

Docker 是一种开源的容器化平台,允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中。容器在运行时与其他容器隔离,共享主机操作系统内核,但拥有独立的文件系统、网络和进程空间。

  • 容器(Container):运行时的实例,基于镜像创建。容器是轻量级的,启动快速,资源占用少。
  • 镜像(Image):容器的静态模板,包含运行应用程序所需的代码、库和环境配置。镜像是只读的,通过分层存储实现高效复用。
  • Dockerfile:文本文件,定义如何构建镜像。包含一系列指令(如 FROMRUNCOPY)。
  • Docker Hub:公共镜像仓库,提供官方和社区维护的镜像,支持镜像的拉取和推送。

Docker Compose

Docker Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 YAML 文件(默认名 docker-compose.yml)配置服务、网络和卷,实现一键启动、停止和管理容器组。

  • 服务(Service):在 docker-compose.yml 中定义的一个容器化应用。一个服务可以包含多个相同镜像的容器实例(通过扩展实现)。
  • 项目(Project):由一组关联的服务组成,通过 docker-compose 命令管理。项目名称默认为当前目录名,也可通过 -p 指定。
  • 网络(Network):Compose 自动为项目创建专用网络,服务间可通过服务名通信,无需暴露端口到主机。
  • 卷(Volume):用于持久化数据或共享数据 between 容器。Compose 支持定义命名的卷或绑定主机目录。

Docker与Docker Compose关键区别

  • Docker:专注于单容器的生命周期管理(构建、运行、分发)。
  • Docker Compose:专注于多容器应用的编排,简化复杂应用的依赖管理和部署流程。

技术细节

欧拉系统环境下载和检测

准备一台电脑,内存至少8G,cpu i5, 存储建议至少500G
U盘: 驱动USB2.0/3.0, 存储最少16GB
openEuler社区 下载ISO,我用的是openEuler 24.09, 通过刻盘工具把ISO写入到U盘,这里不做介绍,有空出一篇。

安装后,通过ssh工具登录,执行如下命令检查

[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/

发现地址是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

发现有几个docker-ce docker-ce-cli docker-engine

安装Docker引擎

yum install docker-engine docker-ce docker-ce-cli

启动Docker服务

sudo systemctl start docker
sudo systemctl enable docker

验证版本和安装

sudo docker -v
sudo docker run hello-world

设置Docker镜像加速(可选)

编辑配置文件/etc/docker/daemon.json:data-root一般选择磁盘空间较大的那个分区

[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会导致报错,可能需要运行时指定
  • 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

赋予执行权限

为下载的二进制文件添加可执行权限:

sudo chmod +x /usr/local/bin/docker-compose

验证安装

通过检查版本号确认安装是否成功:

docker-compose --version

配置用户权限(可选)

若希望非 root 用户使用 docker-compose,需将用户加入 docker 组:

sudo usermod -aG docker $USER
newgrp docker

总结

最近一直在欧拉系统上使用docker安装各种镜像,与主流的CentOS、Redhat、Ubuntu相比,并无差异,并且感觉性能似乎更好一点。

到此这篇关于欧拉系统部署Docker最佳实践指南的文章就介绍到这了,更多相关欧拉系统部署Docker内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Docker快速搭建Airflow+MySQL详细步骤

    使用Docker快速搭建Airflow+MySQL详细步骤

    本文详细介绍了如何使用Docker和Docker Compose安装并配置Apache Airflow 2.9.3,步骤包括创建项目目录、编写docker-compose.yml文件、创建所需目录结构、启动和管理Docker容器,以及如何访问和配置Airflow Web UI,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • Docker 技巧之删除Docker容器和镜像

    Docker 技巧之删除Docker容器和镜像

    本篇文章主要介绍了Docker 技巧之删除Docker容器和镜像,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Docker实践—CentOS7上部署Kubernetes详解

    Docker实践—CentOS7上部署Kubernetes详解

    kubernetes作为docker的管理工具是由Google开源提供,但是kubernetes的安装一直折磨着运维人员,在这一系列的文章中我将会由kubernetes的安装讲起为大家介绍kubernetes的安装使用等过程,也作为自己的学习笔记。
    2017-01-01
  • Ubuntu 环境下安装 Docker环境详解

    Ubuntu 环境下安装 Docker环境详解

    这篇文章主要介绍了Ubuntu 环境下安装 Docker环境详解的相关资料,需要的朋友可以参考下
    2022-10-10
  • docker nginx(访问静态文件、访问共享目录、负载均衡)配置方式

    docker nginx(访问静态文件、访问共享目录、负载均衡)配置方式

    这篇文章主要介绍了docker nginx(访问静态文件、访问共享目录、负载均衡)配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • docker-compose up -d和docker-compose up --build的区别

    docker-compose up -d和docker-compose up -

    本文主要介绍了docker-compose up -d和docker-compose up --build的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • 详解如何在Docker部署Go程序

    详解如何在Docker部署Go程序

    Docker是一种轻量级的容器技术,可以为应用程序的部署提供统一、可移植的运行环境,下面我们来讲讲如何将Go应用程序部署到Docker的容器吧
    2023-08-08
  • Docker挂载资料卷部署Nginx

    Docker挂载资料卷部署Nginx

    这篇文章介绍了Docker挂载资料卷部署Nginx,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01
  • Docker的安装方法及运行Docker Swarm模式的使用

    Docker的安装方法及运行Docker Swarm模式的使用

    本文给大家简单介绍docker的安装以及1.12版本的swarm模式的使用,包括docker的安装和配置,对docker swarm简单使用感兴趣的朋友一起看看吧
    2016-11-11
  • docker的pdflatex环境配置的方法步骤

    docker的pdflatex环境配置的方法步骤

    这篇文章主要介绍了docker的pdflatex环境配置的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03

最新评论