创建您的第一个Docker容器 - 初学者指南
#python #docker #containers

想象一下,您为网站构建了一个很酷的主页,并且它正与您在机器上的需求完全合作。您与其他人分享以获取他们的反馈,但它不会以相同的方式工作。信不信由你,这一直在软件开发世界中发生。 Docker是一种帮助您解决此问题的工具。

什么是Docker?

Docker是在容器中创建,部署和管理软件应用程序的强大工具。 A 容器是一个轻巧,独立和可执行的软件包,其中包含运行软件所需的所有内容,例如代码,库和依赖项。将其视为一个完整的捆绑包,所有内部工作都隐藏在外部世界中。 Docker可用于创建独立于主机环境的这些容器,从而在系统中提供相同的体验。

这是如何运作的?

由于图像,容器具有独立的文件系统。图像是容器的构建块,因此包含容器运行所需的所有内容 - 代码,文件系统,依赖关系。
Docker将所有图像包装在一个图像中,然后可以用来创建容器。

在本教程中,我们将简单的Python应用程序化。请注意,可以使用相同的过程来创建任何大小的容器。

项目结构

继续并在系统上创建一个新文件夹。我们称此docker-test。创建一个称为pydock.py的Python文件。将以下示例代码添加到Python文件或随时使用您自己的代码。

from faker import Faker
from tabulate import tabulate
fake = Faker()

# print 10 fake names and addresses
table = [['name','address']]
# generating the names and addresses
for _ in range(10):
    name = fake.name()
    address = fake.address()
    table.append([name,address])

# print in tabular format
print(tabulate(table,headers='firstrow',tablefmt='fancy_grid'))

这是一个简单的应用程序,它以表格格式生成假名和地址。请注意,我们正在使用外部库-fakertabulate用于同一。

现在在项目的根部创建一个.dockerignore文件。使用它在创建图像时添加要忽略的文件。您的文件夹结构应该看起来像这样:

docker-test
-- pydock.py
-- .dockerignore

Docker设置

继续安装 docker桌面 for here的系统。当您使用时,还可以在dockerhub上创建一个帐户。

安装了Docker桌面后,您可以打开应用程序。这将在后台自动启动docker daemon

Dockerfile-魔术所在的地方

接下来,在项目根部创建一个名为Dockerfile的文件。这定义了如何创建图像以及将用于创建图像的内容。现在,项目结构应该看起来像这样:

docker-test
-- pydock.py
-- .dockerignore
-- Dockerfile

编辑Dockerfile的内容如下:

FROM python:3.8-slim-buster

WORKDIR /app

COPY . .

RUN pip install Faker tabulate

CMD [ "python3","pydock.py"]

让我们从上到下浏览此Dockerfile的内容。

  • FROM指令指定我们要创建的图像。我们可以从 dockerhub 中获取预构建的图像,包括全尺度操作系统。但是,在这种情况下,我们只需要构建一个Python图像,因此我们使用的是python:3.8-slim-buster。您可以选择任何提到的python图像here
  • WORKDIR指令指定容器文件系统中的工作目录。将其视为您的图像将坐在容器中并运行的路径。在这种情况下,它是/app
  • COPY指令使您可以将文件从计算机复制到图像。语法是COPY <source> <target>,其中<source>是您本地计算机上的文件路径,而<target>是从工作目录开始的容器上的文件路径。
  • RUN指令用于在Docker映像的构建过程中执行命令。在这里,我们使用它来安装我们的依赖项-Fakertabulate
  • CMD指令用于指定从图像启动容器时要执行的默认命令。请注意,CMD使用数组格式来定义命令,而RUN使用简单的字符串格式

重要: docker图像是一组层。 Dockerfile中的每个指令都会创建一层。这些层是在内部缓存的,以构建更快的图像。

构建Docker图像

完成Dockerfile后,我们可以继续创建您的第一个Docker映像。项目根源的开放终端。您可以检查Docker是否正在使用
运行

docker --version

要构建图像,请运行以下内容:

docker build  -t <username>/<image-name>:<tag> .

您可以随心所欲地调用图像,但通常使用以下惯例。

  • -t选项可让您为图像创建标签。
  • <username>是您的Docker Hub用户名。
  • <image-name>是您要给图像的名称。
  • <tag>就像图像的版本号。
  • .是存在Dockerfile的路径,在这里我们将其放在项目的根源
  • 的根源

Docker开始从Dockerfile中提到的说明创建图像层。完成后,您可以在Docker Desktop中查看您的构建图像。

运行容器

要在容器内运行图像,我们将使用以下内容:

docker run <username>/<image-name>:<tag>

这将从我们在上述过程中构建的图像中运行一个容器。运行上述命令后,您应该看到类似的输出。

Output

恭喜!您已经成功地创建了第一个Docker容器。您可以在Docker桌面中检查容器,甚至将其发布给Docker Hub。您可以与他人共享此图像,他们可以简单地将其作为独立应用程序运行。没有安装大惊小怪,没有依赖性问题,什么也没有!他们甚至都不知道容器内部的内容,但是容器可根据需要工作!

积分
Venti上的封面照片Unsplash