• 无网络情况下,如何使用Docker镜像安装软件?


    1. 引言

    在日常的开发中,公司的内网是无法访问互联网的,有时候系统环境的差异,导致在内网中安装软件非常麻烦,深受其苦,所以,有时候为了方便快捷,我经常使用安装Docker镜像的方式来规避许多问题,屡试不爽。

    下面就以安装ttskit语音合成的镜像为例。

    ttskitText To Speech Toolkit的缩写,翻译为语音合成工具箱,是开源软件。可以将文字转为音频,github地址如下:

    https://github.com/kuangdd/ttskit

    2. 有网络生成镜像

    对于ttskit的安装,其github主页只做了简单的说明

    pip install -U ttskit
    
    • 1

    当然在使用pip安装ttskit的过程中,还会下载很多相关依赖,如果在内网直接安装,肯定会遇到很多问题,所以就可以通过制作Docker镜像的方式来安装ttskit

    2.1 制作ttskit镜像

    对于制作ttskit镜像,当然要有一个简单的centos系统,所以第一步,就需要先拉取centosDocker镜像

    docker pull centos:centos7
    
    • 1

    拉取完centos7基础镜像后,需要启动该镜像,并在其中安装Python环境

    docker run -d --name centos-ttskit -v /home/centos:/home/centos --privileged=true centos:7 /usr/sbin/init
    
    • 1

    当然了,安装Python的过程就要自己去查资料了,Python安装完后,就可以安装ttskit了,这个过程会遇到很多问题,耐心解决就好,本人花了5个小时,才把ttskit镜像制作好。

    2.2 生成ttskit镜像

    当把ttskit在容器中跑起来后,就可以把此centos7的容器提交,生成一个包含ttskit环境的新镜像了,使用如下命令:

    docker commit 45c9f94add5f centos/ttskit:v1
    # 45c9f94add5f为运行centos的容器id
    
    • 1
    • 2

    在这里插入图片描述
    在这里插入图片描述

    2.3 保存ttskit镜像

    对于制作好的镜像,需要将镜像保存在本地,使用如下命令

    docker save -o centos_ttskit.tar centos/ttskit:v1
    
    • 1

    在这里插入图片描述

    3. 无网络导入镜像

    将制作好的镜像的tar包,拷贝到内网,再使用如下命令,将其镜像导入到内网的docker镜像库中

    docker load -i  centos_ttskit.tar
    docker images
    docker run -it --name=ttskit -v/home/ttskit:/home/ttskit -p 9000:9000 centos_ttskit:V1  /bin/bash
    
    • 1
    • 2
    • 3

    4. 小结

    上面解决了如何在无网络情况下,使用Docker镜像安装软件,这种方法非常实用并且有用,可以规避掉很多环境上的版本差异。

    当然了,对于单纯的在无网络情况下,把已有的Docker镜像导入内网镜像库,比如mysql,这种就完全不用自己去制作镜像,直接docker pull完,再docker save保存就行了,把保存好的镜像导入内网,这更简单。

  • 相关阅读:
    WPF 如何让xmal的属性换行显示 格式化
    DSPE-PEG-cRGD,磷脂-聚乙二醇-靶向穿膜肽cRGD,一种靶向功能材料
    【BOOST C++指针专题07】Boost.Pool
    JumpServer 打开RDP客户端出现由于在客户端检测到一个协议错误 错误代码 0x2104
    Java设计模式之抽象工厂模式
    Linux4.4内核构建脚本分析(一)- vmlinux的构建
    JS作用域与闭包
    理解STM32的低功耗模式
    密码学承诺之原理和应用 - Kate多项式承诺
    目标检测:Generalized Focal Loss V2(CVPR2020)
  • 原文地址:https://blog.csdn.net/zxd1435513775/article/details/126551028