第三方镜像是在Docker Hub或其他容器注册表上提供的预构建Docker容器镜像。这些镜像由个人或组织创建和维护,可以作为您容器化应用程序的起点。

查找第三方镜像

Docker Hub 是最大和最受欢迎的容器镜像注册表,包含官方和社区维护的镜像。您可以根据名称或要使用的技术搜索镜像。

例如:如果您正在寻找一个 Node.js 镜像,您可以在Docker Hub上搜索“node”,您将找到官方Node.js镜像以及许多其他社区维护的镜像。

在Dockerfile中使用镜像

要在Dockerfile中使用第三方镜像,只需要使用 FROM 指令将镜像名称设置为基本镜像。以下是使用官方Node.js镜像的示例:

FROM node:14# The rest of your Dockerfile...

注意安全问题

请注意,第三方镜像可能存在安全漏洞或配置错误。在将其用于生产之前,始终验证镜像的来源并检查其声誉。最好使用官方镜像或维护良好的社区镜像。

维护您的镜像

使用第三方镜像时,保持其更新以包括最新的安全更新和依赖项更改至关重要。定期检查基本镜像的更新并相应地重建您的应用程序容器。

使用 Docker 创建交互式测试环境

Docker 允许您创建隔离、一次性的环境,测试完成后可以删除。这样可以更轻松地使用第三方软件、测试不同的依赖项或版本,以及快速实验,而不会损坏本地设置。

使用 Docker 创建交互式测试环境

为了演示如何设置交互式测试环境,让我们以 Python 编程语言为例。我们将使用在 Docker Hub 上可用的公共 Python 镜像。

  • 要使用 Python 镜像启动交互式测试环境,只需运行以下命令:
docker run -it --rm python

这里,-it 标志确保您在交互模式下使用 tty 运行容器,而 --rm 标志将在停止容器后删除容器。

  • 现在,您应该在容器内部的交互式 Python shell 中。您可以执行任何 Python 命令或使用 pip 安装其他软件包。
print("Hello, Docker!")

  • 完成交互式会话后,只需键入 exit() 或按 CTRL+D 退出容器即可。容器将按 rm 标志指定的方式自动删除。

更多交互式测试环境的示例

您可以使用 Docker Hub 上提供的多个第三方镜像,并创建各种交互式环境,例如:

  • Node.js:要启动交互式 Node.js shell,可以使用以下命令:
docker run -it --rm node

  • Ruby:要启动交互式 Ruby shell,可以使用以下命令:
docker run -it --rm ruby

  • MySQL:要启动临时 MySQL 实例,可以使用以下命令:
docker run -it --rm --name temp-mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -p 3306:3306 mysql

这将启动一个临时 MySQL 服务器,可以通过主机端口 3306 访问。容器在停止后将被删除。

使用 Docker 来创建交互式测试环境,可以让您更高效、更干净地处理各种第三方软件,而不必担心损坏本地机器或安装不必要的依赖项。

命令行工具

Docker映像可以包含命令行实用程序或独立应用程序,我们可以在容器内运行它们。当使用第三方映像时,这样做非常有用,因为我们要使用的工具已经打包并可供运行,无需任何安装或配置。

BusyBox

BusyBox是一个小巧(1-2 Mb)且简单的命令行应用程序,提供了许多常用的Unix实用程序,例如 awkgrepvi等。要在Docker容器内运行BusyBox,您只需要拉取映像并使用Docker运行它:

docker pull busyboxdocker run -it busybox /bin/sh

进入容器后,您可以像在常规命令行上一样开始运行各种BusyBox实用程序。

cURL

cURL是一个众所周知的命令行工具,可用于使用各种网络协议传输数据。它经常用于测试API或从互联网下载文件。要在Docker容器内使用cURL,您可以使用Docker Hub上提供的官方cURL映像:

docker pull curlimages/curldocker run --rm curlimages/curl <https://example.com>

在此示例中,使用 --rm 标志在命令完成后删除容器。当您只需要运行单个命令然后清理容器时,这非常有用。

其他命令行实用程序

Docker映像中有许多命令行实用程序可用,包括但不限于:

  • wget:用于从Web下载文件的免费实用程序。
  • imagemagick:用于图像处理和转换的功能强大的软件套件。
  • jq:轻量级且灵活的命令行JSON处理器。

要使用其中任何一种工具,您可以在Docker Hub上搜索它们,然后按照其各自存储库中提供的说明进行操作。

总之,使用第三方Docker映像进行命令行实用程序可以节省时间,简化开发设置,并有助于确保在不同计算机上具有一致的环境。随着您扩展Docker的知识和使用,您可以尝试不同的工具和实用程序。

最后

为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:

公众号 Let us Coding牛客知乎开源中国CSDN思否掘金InfoQ简书博客园慕课51CTOhelloworld腾讯开发者社区阿里开发者社区

看完如果觉得有帮助,欢迎点赞、收藏关注

Docker学习路线6:使用第三方镜像的更多相关文章

  1. 优秀的云计算工程师需要学什么?云计算Docker学习路线

    云计算工程师要学什么?随着互联网的快速发展,云计算这个词大家并不陌生,但是云计算究竟是做什么的,想要从事云计算要学习什么,很多都不知道,那么今天就给大家讲一下云计算. 云计算是基于互联网的相关服务的增 ...

  2. docker 学习路线

    docker 学习路线 参考资料 知乎 docker 的学习路线 Docker - 从入门到实践 Docker 核心技术与实现原理 Docker 入门 <Kubernetes in Action ...

  3. docker学习笔记(3)- 镜像

    简介 在docker学习笔记(1)- 架构概述一节中可以看到镜像是docker三大组件之一,可以将Docker镜像类比为虚拟机的模版. 镜像由多个层组成,每层叠加之后从外部看就像一个独立的对象,镜像的 ...

  4. Docker学习笔记 - 创建私有的镜像仓库

    一.查找镜像仓库 https://hub.docker.com/ 二.下载镜像仓库 docker pull registry:2.6.2 三.安装镜像仓库 docker run -d -p 6000: ...

  5. Docker学习总结(二)—— 镜像,容器

    1.Docker镜像  1.1相关概念:registry :用于保存Docker镜像,包括镜像层次结构和镜像元数据,类似于git仓库之类的实体. repository:某个Docker镜像所有迭代版本 ...

  6. docker学习之使用 DockerFile 构建镜像并搭建 swarm+compose 集群

    题目要求 (1)将springboot应用程序打成jar包:Hot.jar (2)利用dockerfile将Hot.jar构建成镜像 (3)构建 Swarm 集群 (4)在 Swarm 集群中使用 c ...

  7. docker学习笔记7:发布镜像到docker hub上

    镜像创建好后,很重要的一个操作就是共享和发布.可以将自己创建的镜像发布到docker hub上,也可以发布到自己的私有docker hub上. 要想发布镜像到dokcer hub上,首先要在dokce ...

  8. Docker学习之4——构建NGINX镜像

    Nginx是一个高性能的Web和反向代理服务器,它具有很多非常优越的特性:1.作为Web服务器.2.作为负载均衡服务器.3.作为邮件代理服务器.4.安装及配置简单.接下来我们介绍在docker构建ng ...

  9. Docker学习笔记_删除某个镜像

    实验:删除某个镜像 sudo docker rmi [Image ID] 1.查看镜像的ID                  sudo docker images 2.删除镜像            ...

  10. docker学习7-Dockerfile制作自己的镜像文件

    前言 如果你是一个python自动化测试人员,某天你在公司终于完成了一个项目的接口自动化脚本工作,在你自己常用的本机或者服务器上调试完成了脚本,稳稳地没问题. 可是晚上下班回家,你自己找了个linux ...

随机推荐

  1. 云原生 on nLive:云上 Nebula Graph

    本文首发于 Nebula Graph Community 公众号 在 #云原生# 主题分享中,来自 Nebula 云组的 Cloud 专家乔雷同大家分享云的相关知识,本文整理自该次主题直播. 云原生是 ...

  2. 影刀rpa:第二个项目学习心得

    教程有说到元素的关联操作,教程说自上而下的html路径,一时之间没弄清楚,索性就去看了下网页的html源码,才弄清楚到底是咋回事: 我是先选中了列表子元素的价格字段,选择两次以后就能选择到所有列表子元 ...

  3. Codeforces Round 345 (Div. 1)A. Watchmen(容斥原理)

    A. Watchmen 当欧几里得距离和曼哈顿距离相等时,\(x1==x2||y1==y2\) 这两个条件满足其一.这和容斥原理一样,至少选择一个的条件. 我们可以计算xi,以及小于i之前的这些,这样 ...

  4. Learning by teaching --- 费曼学习法

    世界上存在成千上万种学习法,如果上天只让我掌握一种,那一定就是"费曼学习法". 介绍 费曼学习法是由诺贝尔物理学奖获得者理查德·费曼提出的一种学习方法,其核心思想是将所学内容用自己 ...

  5. 新增、修改校验逻辑使用-Validation-的group分组校验完成-2022新项目

    一.业务场景 一般在项目开发中少不了新增.修改操作,这两个操作中传递的参数中也仅仅只有一个参数是不一致的,新增操作时没有ID, 修改时有ID,其校验逻辑也只有这一个ID校验的差别.最开始自己在写代码时 ...

  6. vscode 切换项目快捷键 Alt + Shift + P 插件 Project Manager

    vscode 切换项目快捷键 Alt + Shift + P 插件 Project Manager 需求 快速切换同时打开的项目 解决方案 Alt + Shift + P 话说这个插件很早就用了,但是 ...

  7. vite + vue3 打包后 本地直接运行 type="module" crossorigin 替换为defer - 多个vue文件就不好使了

    vite + vue3 打包后 本地直接运行 type="module" crossorigin 替换为defer 需求: 想打包后,双击运行,不启动服务 修改 vite.conf ...

  8. 基于可穿戴的GPS定位存储模块方案特色解析

    前记   GPS作为一个位置定位手段,在日常生活中扮演着非常重要的角色.在研发动物可穿戴产品的同时.团队一直在做产品和模块标准化的事情,尽量把研发出来的东西标准化.按照任老板的说法,在追求理想主义的路 ...

  9. stm32 文件系统数据读写源码解析

    一 概念 fatfs文件系统在文件读写中不可或却.熟悉和深入理解是一个不可或缺的前提. 这里面需要先明确几个概念:文件open的属性,这个非常重要.可以并列使用. 二  源码解析 A  写入数据: i ...

  10. python处理txt文件常用方法总结

    一 打开txt的正确方式 一般人会用到怎么快速打开txt,下面分享两种方式: f = open("data.txt","r") #设置文件对象 f.close( ...