码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 无网络情况下,如何使用Docker镜像安装软件?


    文章目录

    • 1. 引言
    • 2. 有网络生成镜像
      • 2.1 制作ttskit镜像
      • 2.2 生成ttskit镜像
      • 2.3 保存ttskit镜像
    • 3. 无网络导入镜像
    • 4. 小结

    1. 引言

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

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

    ttskit是Text 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系统,所以第一步,就需要先拉取centos的Docker镜像

    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保存就行了,把保存好的镜像导入内网,这更简单。

  • 相关阅读:
    数据分析—将txt文件转为csv文件;将csv文件转为xls文件
    2022-08-27 第二小组 张明旭 Vue.js学习记录
    JS构造函数与class类中的封装、继承和多态
    【Nginx】(五) Nginx作为微服务API网关的配置与应用
    巨杉数据库登榜互联网周刊“2022中国软件150强”及“2022大数据服务TOP150”
    阿里专家精心整理分享的Java程序员面试笔试通关宝典PDF
    Mybatis的三种映射关系以及联表查询
    「Java开发指南」如何在MyEclipse中使用JPA和Spring管理事务?(一)
    如何检测和克服MLOps中的模型漂移
    2022IDEAMaven搭建MyBatis框架(标签和对象不理解的看一下初始那一期的基础部分)
  • 原文地址:https://blog.csdn.net/zxd1435513775/article/details/126551028
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号