在简要介绍什么是 Docker 以及为什么要使用它之后,您将能够使用 Docker 创建您的第一个应用程序。
Docker是 Docker Inc. 开发的一款免费软件。它于 2013 年 3 月 13 日面向公众推出,并从那天起成为 IT 开发领域的必备软件。
它允许用户创建独立和隔离的环境来启动和部署其应用程序。然后将这些环境称为容器。
这将使开发人员可以在任何机器上运行容器。
如您所见,使用 Docker,不再存在依赖或编译问题。您所要做的就是启动您的容器,您的应用程序将立即启动。
这是关于 Docker 的最常见问题之一。答案是:实际上,不完全是。
起初它可能看起来像一个虚拟机,但功能并不相同。
与 Docker 不同,虚拟机将包含完整的操作系统。它将独立工作并像计算机一样工作。
Docker 只会共享主机的资源以运行其环境。
Docker VS 虚拟机(版权归Docker 博客所有)
这个工具真的可以改变开发人员的日常生活。为了最好地回答这个问题,我写了一份您会发现的好处的非详尽清单:
Docker 很快。与虚拟机不同,您的应用程序可以在几秒钟内启动并快速停止。
Docker 是多平台的。您可以在任何系统上启动您的容器。
容器可以比虚拟机更快地构建和销毁。
设置工作环境不再困难。配置 Docker 后,您将永远不必再次手动重新安装依赖项。如果您更换计算机或有员工加入您的公司,您只需将您的配置提供给他们。
您保持工作空间清洁,因为您的每个环境都将被隔离,您可以随时删除它们而不会影响其余环境。
将项目部署到服务器上以便将其上线会更容易。
现在您已经知道 Docker 是什么,是时候创建您的第一个应用程序了!
本简短教程的目的是创建一个显示句子的 Python 程序。该程序必须通过 Dockerfile 启动。
你会看到,一旦你理解了这个过程,它并不是很复杂。
注意:您不需要在计算机上安装 Python。将由 Docker 环境来包含 Python 以执行您的代码。
对于Ubuntu:
首先,更新你的包:
$ sudo apt update
接下来,使用 apt-get 安装 docker:
$ sudo apt install docker.io
最后验证Docker是否安装正确:
$ sudo docker run hello-world
对于 MacOSX:您可以点击此链接。
对于 Windows:您可以点击此链接。
为了创建您的第一个 Docker 应用程序,我邀请您在您的计算机上创建一个文件夹。它必须包含以下两个文件:
一个“ main.py ”文件(将包含要执行的代码的 python 文件)。
一个“ Dockerfile ”文件(包含创建环境所需指令的 Docker 文件)。
通常你应该有这个文件夹架构:
.
├── Dockerfile
└── main.py
0 directories, 2 files
您可以将以下代码添加到“ main.py ”文件中:
#!/usr/bin/env python3print("Docker is magic!")
没什么特别的,但是一旦你看到“ Docker is magic!” 显示在您的终端中,您将知道您的 Docker 正在运行。
一些理论:当你想创建你的 Dockerfile 时,要做的第一件事就是问问自己你想做什么。我们的目标是启动 Python 代码。
为此,我们的 Docker 必须包含启动 Python 所需的所有依赖项。一个安装了 Python 的 linux (Ubuntu) 就足够了。
创建 Docker 文件时要执行的第一步是访问DockerHub网站。该站点包含许多预先设计的图像以节省您的时间(例如:所有图像用于 linux 或代码语言)。
在我们的例子中,我们将在搜索栏中输入“Python”。第一个结果是为执行 Python 而创建的官方镜像。完美,我们将使用它!
# 一个 dockerfile 必须始终从导入基础镜像开始。
# 我们使用关键字“FROM”来做到这一点。
# 在我们的示例中,我们要导入 python 图像。
# 所以我们为图像名称写'python',为版本写'latest'。
FROM python:latest
# 为了启动我们的 python 代码,我们必须将它导入到我们的图像中。
# 我们使用关键字“COPY”来做到这一点。
# 第一个参数'main.py'是主机上的文件名。
# 第二个参数'/'是将文件放在图像上的路径。
# 这里我们将文件放在图像根文件夹中。
COPY main.py /
# 我们需要定义运行图像时要启动的命令。
# 我们使用关键字“CMD”来做到这一点。
# 以下命令将执行“python ./main.py”。
CMD [ "python", "./main.py" ]
一旦您的代码准备就绪并编写了 Dockerfile,您所要做的就是创建包含您的应用程序的映像。
$ docker build -t python-test .
“ -t ”选项允许您定义图像的名称。在我们的例子中,我们选择了“ python-test ”,但您可以输入您想要的内容。
创建图像后,您的代码就可以启动了。
$ docker run python-test
您需要将图像名称放在“ docker run ”之后。
给你,就是这样。你通常应该看到“Docker is magic!” 显示在您的终端中。
如果您想检索完整代码以便轻松发现或执行它,可以在 GitHub 上供您使用。
-> GitHub:Docker First 应用示例
在离开您之前,我准备了一份可能对您在 Docker 上有用的命令列表。
列出你的镜像。
$ docker image ls
删除特定镜像。
$ docker image rm [image name]
删除所有现有镜像。
$ docker image rm $(docker images -a -q)
列出所有现有容器(正在运行和未运行)。
$ docker ps -a
停止特定容器。
$ docker stop [container name]
停止所有正在运行的容器。
$ docker stop $(docker ps -a -q)
删除特定容器(仅在停止时)。
$ docker rm [container name]
删除所有容器(仅当停止时)。
$ docker rm $(docker ps -a -q)
显示容器的日志。
$ docker logs [container name]
在初学者指南的下一部分。在本文中,您将了解如何使用 docker-compose 通过 Docker 创建您的第一个客户端/服务器端应用程序。
-> Docker 初学者指南 — 如何使用 docker-compose 创建客户端/服务器端
每当您需要一个关于如何创建您的第一个 Docker 应用程序的简单而具体的示例时,您都可以参考这篇文章。如果您有任何问题或反馈,请随时提出。