• 无网络情况下,如何使用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保存就行了,把保存好的镜像导入内网,这更简单。

  • 相关阅读:
    10 | 多态
    基于HTML+CSS+JS制作商城(web前端网页制作课作业)---手机主题 7页
    (cf)Codeforces Round #825 (Div. 2)ABC(BC详细解释)
    【LeetCode力扣】189 53 轮转数组 | 最大子数组和
    英伟达RTX 4080正式发布!这一波是谁赢麻了?
    香港高才通通过后要做什么?- 2 缴费
    HCIP复习第二课:HCIA(网络类型及数据链路层协议)
    wmv怎么转换成视频mp4
    Win11怎么修改关机界面颜色?Win11修改关机界面颜色的方法
    201709-3 CCF jason查询 (满分题解)
  • 原文地址:https://blog.csdn.net/zxd1435513775/article/details/126551028