如何使用 DockerHub
创始人
2024-03-01 22:39:18
0

在这个 Docker 系列的最后一篇文章中,我们将讲述在 DockerHub 上使用和发布镜像。

在前面的文章中,我们了解到了基本的 Docker 术语,在 Linux 桌面、MacOS 和 Windows上 如何安装 Docker如何创建容器镜像 并且在系统上运行它们。在本系列的最后一篇文章中,我们将讨论如何使用 DockerHub 中的镜像以及将自己的镜像发布到 DockerHub。

首先:什么是 DockerHub 以及为什么它很重要?DockerHub 是一个由 Docker 公司运行和管理的基于云的存储库。它是一个在线存储库,Docker 镜像可以由其他用户发布和使用。有两种库:公共存储库和私有存储库。如果你是一家公司,你可以在你自己的组织内拥有一个私有存储库,而公共镜像可以被任何人使用。

你也可以使用公开发布的官方 Docker 镜像。我使用了很多这样的镜像,包括我的试验 WordPress 环境、KDE plasma 应用程序等等。虽然我们上次学习了如何创建自己的 Docker 镜像,但你不必这样做。DockerHub 上发布了数千镜像供你使用。DockerHub 作为默认存储库硬编码到 Docker 中,所以当你对任何镜像运行 docker pull 命令时,它将从 DockerHub 下载。

从 Docker Hub 下载镜像并在本地运行

开始请查看本系列的前几篇文章,以便继续。然后,一旦 Docker 在你的系统上运行,你就可以打开终端并运行:

$ docker images

该命令将显示当前系统上所有的 docker 镜像。假设你想在本地机器上部署 Ubuntu,你可能会:

$ docker pull ubuntu

如果你的系统上已经存在 Ubuntu 镜像,那么该命令会自动将该系统更新到最新版本。因此,如果你想要更新现有的镜像,只需运行 docker pull 命令,易如反掌。这就像 apt-get update 一样,没有任何的混乱和麻烦。

你已经知道了如何运行镜像:

$ docker run -it 
$ docker run -it ubuntu

命令提示符应该变为如下内容:

root@1b3ec4621737:/#

现在你可以运行任何属于 Ubuntu 的命令和实用程序,这些都被包含在内而且安全。你可以在 Ubuntu 上运行你想要的所有实验和测试。一旦你完成了测试,你就可以销毁镜像并下载一个新的。在虚拟机中不存在系统开销。

你可以通过运行 exit 命令退出该容器:

$ exit

现在假设你想在系统上安装 Nginx,运行 search 命令来找到需要的镜像:

$ docker search nginx

正如你所看到的,DockerHub 上有很多 Nginx 镜像。为什么?因为任何人都可以发布镜像,各种镜像针对不同的项目进行了优化,因此你可以选择合适的镜像。你只需要为你的需求安装合适的镜像。

假设你想要拉取 Bitnami 的 Nginx 镜像:

$ docker pull bitnami/nginx

现在运行:

$ docker run -it bitnami/nginx

如何发布镜像到 Docker Hub?

在此之前,我们学习了如何创建 Docker 镜像,我们可以轻松地将该镜像发布到 DockerHub 中。首先,你需要登录 DockerHub,如果没有账户,请 创建账户。然后,你可以打开终端应用,登录:

$ docker login --username=

将 “” 替换为你自己的 Docker Hub 用户名。我这里是 arnieswap:

$ docker login --username=arnieswap

输入密码,你就登录了。现在运行 docker images 命令来获取你上次创建的镜像的 ID。

$ docker images

现在,假设你希望将镜像 ng 推送到 DockerHub,首先,我们需要标记该镜像(了解更多关于标记的信息):

$ docker tag e7083fd898c7 arnieswap/my_repo:testing

现在推送镜像:

$ docker push arnieswap/my_repo

推送指向的是 docker.io/arnieswap/my_repo 仓库:

12628b20827e: Pushed
8600ee70176b: Mounted from library/ubuntu
2bbb3cec611d: Mounted from library/ubuntu
d2bb1fc88136: Mounted from library/ubuntu
a6a01ad8b53f: Mounted from library/ubuntu
833649a3e04c: Mounted from library/ubuntu
testing: digest: sha256:286cb866f34a2aa85c9fd810ac2cedd87699c02731db1b8ca1cfad16ef17c146 size: 1569

哦耶!你的镜像正在上传。一旦完成,打开 DockerHub,登录到你的账户,你就能看到你的第一个 Docker 镜像。现在任何人都可以部署你的镜像。这是开发软件和发布软件最简单,最快速的方式。无论你何时更新镜像,用户都可以简单地运行:

$ docker run arnieswap/my_repo

现在你知道为什么人们喜欢 Docker 容器了。它解决了传统工作负载所面临的许多问题,并允许你在任何时候开发、测试和部署应用程序。通过遵循本系列中的步骤,你自己可以尝试以下。


via: https://www.linux.com/blog/learn/intro-to-linux/2018/1/how-use-dockerhub

作者:Swapnil Bhartiya 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

绿联NAS搭建macOS最...
作为NAS玩家,平时我还是蛮爱折腾虚拟机、Docker啥的。 最近...
2025-02-25 12:49:18
不指定端口运行docker...
可以使用“EXPOSE”命令在Dockerfile中指定所需的端口...
2025-01-12 11:30:32
不支持具有相同组名称的sp...
在Spring Boot中,可以通过使用不同的配置文件来支持具有相...
2025-01-11 22:31:25
不支持交换限制 - Doc...
在Docker引擎中,如果你遇到“不支持交换限制”错误,可以考虑以...
2025-01-11 22:30:26
不支持的驱动程序[]错误在...
问题是出现在Docker的构建过程中,因为Docker使用不支持的...
2025-01-11 21:01:18
不支持的地址族 gRPC ...
在处理过程中出现"不支持的地址族 gRPC Docker"错误时,...
2025-01-11 20:04:09

热门资讯

使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
Bazzite:专为 Stea... 为 Linux 桌面或者 Steam Deck 做好游戏准备,听起来都很刺激!对于一个专为 Linu...
Motrix:一个漂亮的跨平台... 一个开源的下载管理器,提供了一个简洁的用户界面,同时提供了跨平台操作的所有基本功能。在这里了解关于它...
Bash 脚本中如何使用 he... here 文档 here document (LCTT 译注:here 文档又称作 heredoc ...
使用 dialog 和 jq ... 为何选择文字用户界面(TUI)?许多人每日都在使用终端,因此, 文字用户界面 Text User I...