---
title: 制作编译容器和部署容器
description: "为了避免在真实集群中安装额外的软件，建议使用一台全新的集群外服务器进行制作容器镜像动作，该服务器应使用与集群同样的硬件配置和操作系统，本章节中称该服务器为编译节点。为更高效地管理与执行软件的部署构建流程，需要在编译节点构建制作编译容器和部署容器。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengcephobject_DG_Ubuntu_04_0010.html
sourcePath: /source/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengcephobject_DG_Ubuntu_04_0010.html
indexId: e27d03c0f965b0d8c87995246deb9d15717c141b58462ddd59e29282d5606a2484
---
# 制作编译容器和部署容器

为了避免在真实集群中安装额外的软件，建议使用一台全新的集群外服务器进行制作容器镜像动作，该服务器应使用与集群同样的硬件配置和操作系统，本章节中称该服务器为编译节点。为更高效地管理与执行软件的部署构建流程，需要在编译节点构建制作编译容器和部署容器。

- Ubuntu系统推荐直接使用官方镜像部署，无需再手动制作Ceph容器镜像，可跳过  手动制作ceph容器镜像
章节。
- openEuler系统推荐自制镜像部署，本小节以openEuler系统下使用Podman制作镜像为例进行说明。


1. 下载openEuler-22.03-LTS-SP4基础镜像。
  1 wget http://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP4/docker_img/aarch64/openEuler-docker.aarch64.tar.xz

2. 导入下载的基础镜像。
  1 podman load -i openEuler-docker.aarch64.tar.xz

3. 根据镜像创建容器，启动前需要重置（unset命令）物理机上的代理环境变量。
  1 2 3 unset http_proxy unset https_proxy podman run -dit --name openeuler2203sp4_base --hostname openeuler2203sp4_base -p 10000:22 --privileged --ipc=host docker.io/library/openeuler-22.03-lts-sp4:latest

4. 进入容器。
  1 podman exec -it openeuler2203sp4_base /bin/bash

5. 在容器中配置代理等临时环境变量，不能配置到bashrc中。
  1 2 3 export TMOUT=0 export http_proxy=http://xxx// 按需配置 export https_proxy=http://xxx // 按需配置

6. 在容器中安装基础软件包。
  1 yum install openssh-server openssh-clients passwd vim perf sysstat dos2unix htop sshpass jq numactl hostname python3 python3-devel python3-pip tar createrepo ipmitool iproute git systemd psmisc udev wget rpmdevtools gtk-doc pam-devel xmlsec1-devel libtool libtool-ltdl-devel cmake gcc-c++ libstdc++-static java-1.8.0-openjdk java-1.8.0-openjdk-devel fio iputils make -y

  如果遇到证书异常错误无法安装基础软件包时，可尝试调整yum配置文件“/etc/yum.conf”，在文件末尾添加如下配置。 sslverify=false deltarpm=0

7. 退出容器，在物理机上制作镜像。
  1 2 exit podman commit openeuler2203sp4_base openeuler2203sp4_base:v2203sp4

8. 在物理机上制作编译容器。
  1 podman run --name openeuler2203sp4_build --hostname openeuler2203sp4_base -p 10001:22 --privileged --ipc=host -dti localhost/openeuler2203sp4_base:v2203sp4 /usr/sbin/init

9. 在物理机上制作部署容器。
  1 podman run --name openeuler2203sp4_release --hostname openeuler2203sp4_base -p 10003:22 --privileged --ipc=host -dti localhost/openeuler2203sp4_base:v2203sp4 /usr/sbin/init

10. 检查容器环境变量，确保环境变量中不能有代理配置，如果有，可以重置物理机上的代理环境变量，然后从3开始重新执行。
  1 podman inspect openeuler2203sp4_release | grep Env -A 10
