Docker学习路线6:使用第三方镜像

小万哥
• 阅读 87

第三方镜像是在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腾讯开发者社区阿里开发者社区

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

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
1年前
ubuntu18 Docker 安装 mysql
2\.Docker安装mysqlDocker查找mysql1.在docker中搜索mysqldockersearchmysql上述操作相当于访问hub.docker.com.搜索mysqlOFFICIAL表示官方镜像  AUTOMATED自动构建Tags表示构建的版本安装mysql镜
Stella981 Stella981
1年前
Docker 系列:打包新镜像到阿里云镜像仓库
一、.JibJava应用构建容器镜像1.Jib介绍Jib是Google开发的可以直接构建Java应用的Docker和OCI镜像的类库,以 Maven 和 Gradle 插件形式提供。通过Jib,Java开发者可以使用他们熟悉的Java工具来构建容器。Jib是一个快速而简单的容器镜像构建工具,它负责处理
Stella981 Stella981
1年前
Docker面试题
1\.docker如何查看镜像支持的环境变量?   dockerrunIMAFGEenv2\.在使用dockercreate命令创建容器或使用dockerrun创建并运行容器的时候。可以使用m|memory参数来调整容器使用内存的大小。   正确3\.docker需要查询日志应该使用什么命令?   docker
Stella981 Stella981
1年前
Docker 镜像 容器 仓库
Docker包括三个基本概念镜像(Image)容器(Container)仓库(Repository)Docker镜像Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其
Stella981 Stella981
1年前
Docker 最常用的镜像命令和容器命令
  本文列出了Docker使用过程中最常用的镜像命令和容器命令,以及教大家如何操作容器数据卷,实现容器数据的备份。熟练练习这些命令以后,再来一些简单的应用部署练习,大家就可以学习Docker的镜像构建、备份恢复迁移、镜像仓库、网络、集群等等更多的内容。镜像相关命令  官方文档:https://docs.docker.com/r
Stella981 Stella981
1年前
28项容器镜像的检查清单(Checklist)
容器镜像是云原生环境中各类应用的标准交付格式。由于容器镜像需要大量分发和部署,因此,需要确保容器镜像在构建、分发和运行全生命周期内的安全。镜像扫描是检查操作系统和安装包中是否存在已知漏洞的一项基本措施。除此之外,还有很多措施可以加强容器镜像的安全。如下表所示,基于镜像安全4个阶段,11个要求,28项检查点,全面检测容器生命周期各个阶段的镜像风险,确保容器镜像
Stella981 Stella981
1年前
Docker镜像优化:从1.16GB到22.4MB
Docker是一个供软件开发人员和系统管理员使用容器构建、运行和与分享应用程序的平台。容器是在独立环境中运行的进程,它运行在自己的文件系统上,该文件系统是使用docker镜像构建的。镜像中包含运行应用程序所需的一切(编译后的代码、依赖项、库等等)。镜像使用Dockerfile文件定义。术语dockerization或containeriz
serverless与容器优缺点
本文分享自天翼云开发者社区@《》,作者:我是小朋友容器优势1、可移植性:使用容器,开发人员可以确保他们的应用程序可以在任何云平台或本地服务器上运行。2、轻量化:容器镜像以层叠加,在本地拥有镜像层缓存;计算资源使用方面,容器也比虚拟机更高效。3、快速启动:容
小万哥 小万哥
2个月前
Docker学习路线7:构建容器镜像
容器镜像是可执行的软件包,包括运行应用程序所需的所有内容:代码、运行时、系统工具、库和设置。通过构建自定义镜像,您可以在任何支持Docker的平台上无缝地部署应用程序及其所有依赖项。Dockerfile构建容器镜像的关键组件是Dockerfile。它本质上
小万哥 小万哥
2个月前
Docker学习路线8:容器注册表
容器注册表是Docker容器镜像的集中存储和分发系统。它允许开发人员以这些镜像的形式轻松共享和部署应用程序。容器注册表在容器化应用程序的部署中发挥着关键作用,因为它们提供了一种快速、可靠和安全的方式,在各种生产环境中分发容器镜像。以下是当今流行的容器注册表