一、容器技术基础
-
容器核心概念
-
容器:轻量级、可移植的软件单元,将应用与依赖打包为独立运行环境,基于 Linux 内核的 Namespace 和 Cgroups 实现资源隔离。
-
Docker:主流容器引擎,提供镜像构建、容器管理能力,支持跨平台部署18。
-
二、openEuler 环境准备
系统要求
-
操作系统:openEuler 20.03/22.03 LTS(推荐)
-
内核:≥ 3.8,支持存储驱动(如 Device Mapper、Overlay2)3
-
权限:需 root 用户操作4
安装依赖
sudo dnf update
sudo dnf install dnf-utils device-mapper-persistent-data lvm2 fuse-overlayfs wget
三、Docker 安装与配置
步骤 1:添加 Docker 仓库
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
步骤 2:安装 Docker
sudo dnf install -y docker-ce
sudo systemctl start docker
sudo systemctl enable docker
步骤 3:验证安装
sudo docker run hello-world # 出现欢迎信息即成功:cite[2]
关键配置
-
禁用 iptables 冲突 (若遇启动失败)
编辑
/etc/docker/daemon.json
:{ "iptables": false }
重启服务:
sudo systemctl restart docker
2 -
存储驱动优化 (推荐 Overlay2)
在
daemon.json
中添加:{ "storage-driver": "overlay2" } ```:cite[4]
四、拉取与运行 openEuler 容器镜像
镜像拉取(国内源加速)
docker pull hub.oepkgs.net/openeuler/openeuler:22.03-lts # 推荐国内源:cite[1]
# 或从华为云获取专用镜像
docker pull swr.cn-north-4.myhuaweicloud.com/openeuler-embedded/openeuler-container:22.03-lts:cite[3]
启动容器
docker run -itd --name my_openeuler hub.oepkgs.net/openeuler/openeuler:22.03-lts bash
进入容器验证
docker exec -it my_openeuler bash
cat /etc/os-release # 查看 openEuler 系统信息
五、容器管理基本操作
操作 | 命令示例 | 用途 |
---|---|---|
查看运行容器 | docker ps |
列出活跃容器 |
停止/启动容器 | docker stop my_openeuler |
停止容器 |
docker start my_openeuler |
启动容器 | |
删除容器 | docker rm my_openeuler |
移除容器 |
持久化容器为镜像 | docker commit my_openeuler my_custom_image |
保存当前容器状态为新镜像6 |
六、进阶:自定义镜像与编排
-
构建自定义镜像
-
编写
Dockerfile
(示例基于 openEuler):FROM hub.oepkgs.net/openeuler/openeuler:22.03-lts RUN dnf install -y python3 && echo "print('Hello World')" > /app.py CMD ["python3", "/app.py"]
-
构建命令:
docker build -t my_python_app . ```:cite[5]
-
-
容器网络配置
-
创建 Macvlan 网络(固定容器 IP):
docker network create -d macvlan --subnet=192.168.1.0/24 -o parent=eth0 my_net docker run -itd --network my_net --ip=192.168.1.100 openeuler:22.03-lts ```:cite[6]
-
-
容器编排(Docker Compose)
-
定义多容器服务(示例
docker-compose.yml
):version: '3' services: web: image: openeuler:22.03-lts ports: ["8080:80"] db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD=123456
-
启动服务:
docker-compose up -d
8
-
七、注意事项与常见问题
-
权限冲突 :CentOS 宿主机需临时关闭 SELinux(
setenforce 0
),避免挂载目录权限错误5。 -
镜像兼容性:若需 openEuler 20.03 镜像,需手动下载离线包并导入5:
wget https://repo.openeuler.org/openEuler-20.03-LTS-SP2/docker_img/aarch64/openEuler-docker.aarch64.tar.xz docker load -i openEuler-docker.aarch64.tar.xz
-
服务依赖 :重启
firewalld
后需重启 Docker,避免 iptables 规则丢失4。