如何建立一个Docker镜像并将其上传到Docker Hub?

352 阅读3分钟

在你刚刚起步的容器事业中,你将不得不建立一个镜像并将其推送到Docker Hub仓库。Jack Wallen告诉你如何做到这一点。

docker-new.jpg

图片:o_m/Shutterstock

如果你刚刚开始你的容器Docker 之旅, 你可能在你的内部数据中心内做一些工作,这是冒险进入这个新的容器化世界的许多地方之一。然而,在某些时候,你将走出数据中心,进入云托管容器的扩展世界。

在此之前,你会想知道如何建立你自己的Docker镜像并将其推送到Docker Hub。为什么?因为你可能想把这个镜像提供给你的队友,甚至是世界上的其他人。

但你如何做到这一点呢?

我将向你展示:

这很简单,你只需要知道如何建立一个Docker文件。

见:Kubernetes(免费PDF)(TechRepublic)

你将需要什么?

要实现这一目标,你需要以下条件:

  • 一个Docker Hub账户
  • 一个正在运行的Docker引擎实例
  • 一个属于docker组的用户(所以你可以在不使用sudo的情况下发布docker命令)

就这样了,让我们开始工作吧。

如何建立你的镜像

我们要构建的镜像是基于 python:3.8-buster 的,将包括以下库:

  • numpy 1.14.3
  • matplotlib 2.2.2
  • seaborn 0.8.1

这是很基本的,但它可以很好地说明这个任务。首先,让我们创建一个目录,以便在该命令下工作。

mkdir ~/DOCKER

改变到该目录:

cd ~/DOCKER

现在,我们将用命令创建我们的Docker文件:

nano Dockerfile

在该文件中,粘贴以下内容:

FROM python:3.8-buster
RUN pip install --upgrade pip
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY src/ .
CMD [ "python", "trtest.py"]

保存并关闭该文件。

上述命令将拉下python:3.8-buster镜像,使用pip来升级它,然后读取一个新文件(requirements.txt)的内容,并安装该文件中列出的所有内容。要创建requirements.txt文件,请发布命令:

nano requirements.txt

在该文件中,粘贴以下内容:

numpy==1.14.3
matplotlib==2.2.2
seaborn==0.8.1

保存并关闭该文件。

创建一个新的子目录,其中包括:

mkdir src

如何登录你的Docker Hub账户

我们必须登录我们的Docker Hub账户来推送新的镜像。要从命令行成功登录Docker Hub,你必须先创建一个访问令牌。登录到Docker Hub,点击你的个人资料图像。从弹出的菜单中,选择账户设置。在出现的页面上,点击左侧导航中的安全,然后点击新访问令牌**(图A**)。

图A

dockerbuilda.jpg

在Docker Hub中创建一个新的访问令牌。

一旦你生成了访问令牌,把它复制到你的剪贴板上。回到终端窗口,发出命令。

docker login -u NAME

其中NAME是你的Docker Hub用户名。你会被提示你的Docker Hub密码,在这里你将使用你刚刚生成的访问令牌。

如何建立你的镜像

现在是建立我们的镜像的时候了。我们将把这个镜像命名为rtest。要做到这一点,发出命令:

docker build -t trtest .

当构建完成后,你会有一个新的镜像,命名为rtest。

如何标记和推送镜像

最后,我们要给我们的新镜像打上标签,然后把它推送到Docker Hub。首先用命令给镜像打上:latest的标签。

docker image tag trtest USER/trtest:latest

其中USER是你的Docker Hub用户名。

现在镜像被标记了,我们可以用以下命令将其推送到Docker Hub。

docker image push USER/trtest:latest

其中USER是你的Docker Hub用户名。

推送完成后,你应该在你的Docker Hub仓库中找到rtest:最新的镜像。

这就是构建Docker镜像并将其推送到Docker Hub仓库的全部内容。

另请参见