• docker镜像打包及上传到harbor


    背景

    由于日常需要经常用到某个镜像,所以需要将已经比较稳定的容器生成镜像便于后续复用。
    harbar:一个镜像上传的云端仓库,自己搭建即可,地址本文为docker.###.###.com,日常打包文件目录为abc

    思路

    1、dockerfile构建:后续便于一键构建,但是中间如果出错(如网络等等问题),可能需要清理镜像或容器
    2、直接容器构建:不方便后续一键构建,但是过程便于调试清理问题,这里暂时采用该种思路(后续环境基本不变)

    实操

    1、本地运行容器并在容器中安装所需要的包,调试是否具备脚本运行的环境

     sudo docker run -it --name env_stability -d -v /dev/bus/usb:/dev/bus/usb -e TZ="Asia/Shanghai" --network host --privileged docker.###.###.com/abc/python3.9.5:v2 bash
    

    确认容器运行无误后,进入容器安装所需的环境(各类包等,脚本用到的环境)

    docker exec -it env_stability bash
    

    接下来就是环境安装等,如

    cat > /etc/apt/sources.list << EOF
    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
    
    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
    
    deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
    EOF
    
    apt update
    apt install -y adb
    
    pip3 install -U uiautomator2
    pip3 install -U requests
    

    2、以上确认环境ok后,将容器打包成镜像

    sudo docker commit 45c4fc07### env_stability:v2
    

    其中45c4fc07###是容器对应的容器id
    操作完,可以通过images看到里面已经存在

    ###@ubuntu:~$ sudo docker images
    REPOSITORY                                                        TAG              IMAGE ID       CREATED         SIZE
    env_stability                                                     v2               c87ae4f64041   5 seconds ago   1.54GB
    
    

    3、由于需要上传到自己云端harbor,需要遵循一定的格式才能拉下来使用,所以给当前的镜像打个别名

    sudo docker tag env_stability:v2 docker.###.###.com/abc/env_stability:v2
    

    再看一下镜像

    ###@ubuntu:~$ sudo docker images
    REPOSITORY                                                        TAG              IMAGE ID       CREATED              SIZE
    env_stability                                                     v2               c87ae4f64041   About a minute ago   1.54GB
    docker.###.###.com/abc/env_stability                    v2               c87ae4f64041   About a minute ago   1.54GB
    
    

    4、通过docker连接上harbor所在仓库

    ###@ubuntu:~$ sudo docker login http://docker.###.###.com/
    Authenticating with existing credentials...
    Stored credentials invalid or expired
    Username (admin): admin
    Password: 
    WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/engine/reference/commandline/login/#credentials-store
    
    

    5、提交本地的镜像到云端仓库

    ###@ubuntu:~$ sudo docker push docker.###.###.com/adb/env_stability:v2
    The push refers to repository [docker.###.###.com/abc/env_stability]
    720eae20260d: Pushed 
    c4c5017a38ab: Mounted from iottest/python3.9.5 
    0d8eeeffc6a6: Mounted from iottest/python3.9.5 
    巴拉巴拉.....
    
    

    6、云端harbor仓库查看是否推送成功
    在这里插入图片描述
    7、jenkins拉取镜像对比速度
    在这里插入图片描述

  • 相关阅读:
    (vue)Checkbox 多选框添加全选项
    openldap-sasl身份认证镜像
    科技部等6部门发文,推动AI场景创新;『精益副业』教程序员优雅做副业;『可扩展系统』设计全教程;人物动作数据集;前沿论文 | ShowMeAI资讯日报
    接口自动化测试实战经验分享,测试用例也能自动生成
    浅谈安防视频监控平台EasyCVR视频汇聚平台对于夏季可视化智能溺水安全告警平台的重要性
    链式队列----数据结构
    探花交友_第9章-我的功能实现
    十五、ROS的launch文件标签(一)
    一键式自动给个人云服务搭建常用平台
    arcgis js api 4.x通过TileLayer类加载arcgis server10.2发布的切片服务跨域问题的解决办法
  • 原文地址:https://blog.csdn.net/LiXueFu727224204/article/details/127111680