广告
返回顶部
首页 > 资讯 > 精选 >Docker在线制作和离线制作镜像的方法是什么
  • 460
分享到

Docker在线制作和离线制作镜像的方法是什么

2023-07-05 18:07:21 460人浏览 独家记忆
摘要

这篇文章主要介绍了Docker在线制作和离线制作镜像的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Docker在线制作和离线制作镜像的方法是什么文章都会有所收获,下面我们一起来看看吧。一、背景系统有

这篇文章主要介绍了Docker在线制作和离线制作镜像的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Docker在线制作和离线制作镜像的方法是什么文章都会有所收获,下面我们一起来看看吧。

    一、背景

    系统有个功能需要依赖chrome和chromedriver,利用无头浏览器实现截图功能,在虚拟机上能够正常运行,但切换到容器化的环境,因为基础镜像我们依赖的是openjdk,缺少相关驱动,同时翻了一下dockerhub,并没有找到现有的官方镜像能够支撑功能的实现,所以需要自己去制作Docker镜像。

    二、依赖环境

    制作镜像首先需要明确镜像所需要依赖的环境和作用范围。在这个场景中,需要安装chrome和chromedriver,同时还得有jdk的环境以支撑模块的运行,安装过程中需要解压缩包,所以还需要unzip、tar工具,同时还需要下载依赖,所以得有yum环境。

    一般我们制作镜像都是依赖于某个镜像做为基础镜像在其上面来完成的,基础镜像这里我选择的是Centos7.9.2009,大小204M,因为本身该镜像已经包含了tar和yum等基础运行环境,对于我们来说操作起来会比较方便。镜像制作分两中模式,这里我分为在线制作和离线制作,推荐采用离线制作的方式。

    三、在线制作

    3.1 chromedriver

    在线制作就是依赖于某个基础镜像,在其运行的基础上安装号环境再重新打包成一个镜像。所以首先是拉取centos7.9.2009基础镜像到本地。

    docker pull centos:centos7.9.2009

    运行基础镜像,数据卷挂载本地目录/home/centos/到容器内部目录/home/env/,方便我们上传一些文件到容器内部

    docker run -itd --name centos -v /home/centos/:/home/env/ centos:centos7.9.2009

    chrome、chromedriver和jdk采用离线安装的方式,上传相关文件到宿主机/home/centos/,进入容器可以看到挂载的目录下也有上传的文件。

    Docker在线制作和离线制作镜像的方法是什么

    centos7.9.2009基础镜像没有unzip工具,使用 yum install -y unzip zip 安装工具,unzip chrome_rpm.zip 解压chrome_rpm,使用 rpm -Uvh *.rpm --nodeps --force 进行安装。

    Docker在线制作和离线制作镜像的方法是什么

    安装后会报找不到 xdg-icon-resource,这个不影响,安装完后继续处理 chromedriver,将 chromedriver 加压到指定目录,同时授予可执行权限。

    unzip chromedriver_linux64.zipmv chromedriver /usr/bin/# 设置权限chmod +x /usr/bin/chromedriver

    使用 yum 安装 libxcb

    yum install libxcb

    libxcb 安装完后使用 /usr/bin/chromedriver 可以看到谷歌驱动安装成功了

    Docker在线制作和离线制作镜像的方法是什么

    3.2 中文包安装

    使用chrome的过程中发现截图后很多中文显示不了,是因为服务器缺少了中文包。检查容器内部是否有中文包,命令不存在说明没有。

    Docker在线制作和离线制作镜像的方法是什么

    yum安装中文包和字体配置

    yum install fontconfigyum groupinstall "fonts"

    安装之后重新验证,如果出现以下内容则说明安装成功

    Docker在线制作和离线制作镜像的方法是什么

    3.3 jdk1.8安装

    jdk的安装比较简单,将 jdk 解压同时拷贝到 /usr/local/ 下就可以了

    tar -zxvf jdk-8u251-linux-x64.tar.gzmv jdk1.8.0_251 /usr/local/

    上面只是移动了jdk文件的目录,但是还没有配置环境变量,试过直接在容器内部配置jdk的环境变量,但是打包后的镜像每次拉取都需要手动执行 source /etc/profile 环境变量才会生效。网上有的说可以把环境变量放到 ~/.bashrc 中,但是试了并不生效。想了下,可以依赖docker传递环境变量参数,所以先把安装了环境的构建成一个基础镜像,通过dockerfile携带环境变量,最终构建成一个完整的基础镜像。

    把安装了环境的docker容器制作成镜像,同时推送到远程harbor仓库

    # docker容器构建成镜像docker commit -a "icc" -m "base images centos7.9.2009, include java、chrome and chromedriver" 671d33884ee6 127.0.0.1:10000/icc/openjdk:8-jdk-env# 推送到远程仓库docker push 127.0.0.1:10000/icc/openjdk:8-jdk-env

    通过 dockerfile 的方式构建基础镜像,其中传递 JDK 的环境变量

    FROM 127.0.0.1:10000/icc/openjdk:8-jdk-envENV JAVA_HOME=/usr/local/jdk1.8.0_251ENV PATH=$PATH:$JAVA_HOME/binENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarWORKDIR /home/icc/

    构建镜像并推送到远程harbor仓库

    docker build --tag 127.0.0.1:10000/icc/openjdk:8-jdk-icc ./docker push 127.0.0.1:10000/icc/openjdk:8-jdk-icc

    Docker在线制作和离线制作镜像的方法是什么

    四、离线制作

    离线制作,就是把依赖的环境都下载,依赖Dockerfile帮我们完成环境的安装的镜像的制作。

    编写Dockerfile文件

    FROM centos:7# 安装chromeADD Google-chrome-stable.rpm /usr/localRUN yum -y localinstall /usr/local/google-chrome-stable.rpm# 安装chromedriverADD chromedriver.tar.gz /usr/bin# 安装中文字体RUN yum -y groupinstall "fonts"# 安装JDKADD jdk-8u251-linux-x64.tar.gz /usr/local/ENV JAVA_HOME=/usr/local/jdk1.8.0_251ENV PATH=$PATH:$JAVA_HOME/binENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarWORKDIR /home/icc/

    五、验证

    对于模块的编排文件来说,只需要把基础镜像换一下便可以了

    Docker在线制作和离线制作镜像的方法是什么

    k8s集群上可以看到也已经有相应的环境

    Docker在线制作和离线制作镜像的方法是什么

    关于“Docker在线制作和离线制作镜像的方法是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Docker在线制作和离线制作镜像的方法是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

    --结束END--

    本文标题: Docker在线制作和离线制作镜像的方法是什么

    本文链接: https://www.lsjlt.com/news/354267.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Docker在线制作和离线制作镜像的方法是什么
      这篇文章主要介绍了Docker在线制作和离线制作镜像的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Docker在线制作和离线制作镜像的方法是什么文章都会有所收获,下面我们一起来看看吧。一、背景系统有...
      99+
      2023-07-05
    • Docker镜像制作方法是什么
      Docker镜像制作方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Docker Image 的制作两种方法方法 1:docker commit&n...
      99+
      2023-06-28
    • docker离线安装镜像的方法是什么
      要在没有网络连接的环境中安装Docker镜像,可以使用以下方法:1. 在有网络连接的环境中下载所需的Docker镜像文件(通常以.t...
      99+
      2023-10-10
      docker
    • Docker中Dockerfile制作镜像的方法步骤
      目录1.基于容器制作2. 基于Dockerfile制作镜像2.1 Dockerfile命令2.2 简单示例docker 镜像的制作,可以基于容器创建镜像,也可基于 dockerfil...
      99+
      2022-11-13
    • Docker镜像的基本操作方法是什么
      今天小编给大家分享一下Docker镜像的基本操作方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、获取镜像之前我们...
      99+
      2023-07-02
    • linux离线安装docker的方法是什么
      要在Linux上离线安装Docker,可以按照以下步骤进行操作: 找到适用于你的Linux发行版的Docker安装包,并将其下载...
      99+
      2023-10-23
      docker linux
    • java强制结束线程的方法是什么
      在Java中,强制结束线程的方法有以下几种:1. 使用volatile变量:可以设置一个volatile类型的boolean变量,当...
      99+
      2023-08-24
      java
    • Java多线程断点复制的方法是什么
      这篇文章主要介绍了Java多线程断点复制的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java多线程断点复制的方法是什么文章都会有所收获,下面我们一起来看看吧。细节介绍我这里是使用一个Timer类(...
      99+
      2023-07-06
    • Python绘制点然后连线的方法是什么
      Python绘制点然后连线的方法可以通过使用matplotlib库来实现。下面是一个基本的示例代码:```pythonimport ...
      99+
      2023-08-24
      Python
    • HTML表单制作的方法是什么
      HTML表单制作的方法有以下几个步骤:1. 创建表单元素:使用``标签创建表单元素,并设置`action`属性指定数据提交的URL地...
      99+
      2023-09-22
      HTML
    • joomla模板制作的方法是什么
      1. 确定设计风格和布局2. 使用HTML和CSS创建基本的模板框架3. 添加Joomla模板标签和语法4. 创建模板文件和文件夹5...
      99+
      2023-06-04
      joomla模板 joomla
    • ubuntu在线服务器python Package安装到离线服务器的方法是什么
      1、在线服务器导出requirement.txt pip freeze > requirement.txt该文件生成完毕后,需要做些修改,去掉不需要的库,否则下载的时候会出错。2、下载whl文件 -> packagespip d...
      99+
      2023-05-14
      Python Ubuntu
    • html导航条制作的方法是什么
      制作HTML导航条的方法如下:1. 创建HTML文件并打开编辑器,如Sublime Text、Notepad++等。2. 在HTML...
      99+
      2023-06-12
      导航条制作
    • Java线程池工作原理和使用方法是什么
      这篇文章主要介绍“Java线程池工作原理和使用方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java线程池工作原理和使用方法是什么”文章能帮助大家解决问题。1. 为什么要使用线程池使用线程...
      99+
      2023-07-04
    • Android开机动画制作的方法是什么
      Android开机动画通常是通过修改系统文件来实现的。具体方法如下: 获取Root权限:首先需要获取Root权限,以便能够修改系...
      99+
      2023-10-26
      Android
    • 企业网站制作建设的方法是什么
      企业网站制作建设的方法包括以下步骤:1.需求分析:确定企业网站的目标、功能、内容和设计风格等。2.策划设计:制定网站的结构、导航、页...
      99+
      2023-06-06
      网站制作建设
    • 宁波网站制作推广的方法是什么
      宁波网站制作推广的方法包括:1. 搜索引擎优化(SEO):通过优化网站内容、关键词和链接结构等,提高网站在搜索引擎中的排名。2. 搜...
      99+
      2023-06-17
      宁波网站制作
    • 江门网站制作设计的方法是什么
      江门网站制作设计的方法包括以下步骤:1. 确定网站目标和定位:确定网站的目标、目标受众、网站类型和主题。2. 确定网站结构和内容:设...
      99+
      2023-06-12
      江门网站制作
    • 厦门网站制作维护的方法是什么
      我无法提供具体的技术步骤,但以下是一些一般的建议:1.选择合适的网站制作工具或平台,如WordPress、Wix、Squarespa...
      99+
      2023-06-12
      厦门网站制作
    • 香港服务器网站制作的方法是什么
      香港服务器网站制作的方法与其他地区的网站制作方法基本相同,以下是一般的制作步骤:1. 确定网站目标和需求,制定网站规划和设计方案。2...
      99+
      2023-06-04
      香港服务器网站 香港服务器 服务器
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作