• 安装debootstrap:sudo apt install debootstrap
  • 通过debootstrap构建ubuntu16.04 LTS的rootfs
    • 创建rootfs存放的位置,如我们把新的rootfs存在/opt/new_os:sudo mkdir -p /opt/new_os
    • 构建基础ubuntu16.04 LTS的rootfs:sudo debootstrap --verbose --arch=amd64 xenial /opt/new_os http://mirrors.aliyun.com/ubuntu
  • 配置基础系统参数
    • 切换到新rootfs:sudo chroot /opt/new_os /bin/bash
    • 安装基础包:
      • apt -y update
      • apt -y upgrade
      • apt -y install vim
      • ……
    • 配置系统字符集(根据提示进行):dpkg-reconfigure locales
    • 配置时区: cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  • 可选:配置第三方衍生系统版本信息(UbuntuEureca)
    • tee /etc/ubuntueureca-release << -'EOF'
    • DISTRIB_ID=Ubuntu Eureca
    • DISTRIB_RELEASE=16.04
    • DISTRIB_CODENAME=xenial
    • DISTRIB_DESCRIPTION="Ubuntu Eureca 16.04"
    • EOF
  • 清理系统: rm -Rf /tmp/* && apt clean
  • 退出当前rootfs:exit
  • 打包并创建docker镜像(前置条件:当前系统已经安装Docker):sudo tar -C /opt/new_os -c . | sudo docker import - new_os
  • 测试: sudo docker run new_os cat /etc/lsb_release
  • 发布到仓库(以官方仓库为例,私有仓库自行上传)
    • sudo docker login (默认是docker hub账户)
    • sudo docker tag new_os eureca2020/new_os
    • sudo docker push eureca2020/new_os
  • (可选)打包为容器基础镜像(主要是rootfs处理)
    • 方法一:tar --numeric-owner --exclude=/proc --exclude=/sys -cvf new_os.tar / cat new_os.tar | docker import - new_os
    • 方法二:sudo tar --numeric-owner --exclude=/proc --exclude=/sys -C / -c . | sudo docker import - new_os
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐