Docker 是一组平台即服务 (PaaS) 产品,它们使用操作系统级别的可视化以称为容器的包形式交付软件。容器彼此隔离,并捆绑了自己的软件、库和配置文件;他们可以通过明确定义的渠道相互交流。所有容器都由单个操作系统内核运行,因此比虚拟机使用更少的资源。
Docker 容器和虚拟机的区别
1. Docker 容器
- Docker 容器包含二进制文件、库和配置文件以及应用程序本身。
- 它们不包含每个容器的来宾操作系统,而是依赖于底层操作系统内核,这使得容器变得轻量级。
- 容器与同一主机操作系统中的其他容器共享资源,并提供操作系统级别的进程隔离。
2. 虚拟机
- 虚拟机 (VM) 在管理程序上运行,允许多个虚拟机与其自己的操作系统一起在一台机器上运行。
- 每个 VM 都有自己的操作系统副本以及应用程序和必要的二进制文件,这使得它明显更大,并且需要更多资源。
- 它们提供硬件级进程隔离并且启动缓慢。
Docker 中的重要术语
1. Docker 镜像
- 它是一个由多层组成的文件,用于在 Docker 容器中执行代码。
- 它们是一组用于创建 docker 容器的指令。
2. Docker 容器
- 它是图像的运行时实例。
- 允许开发人员将应用程序与所需的所有部分(例如库和其他依赖项)打包在一起。
3. Docker 文件
- 它是一个包含必要命令的文本文档,这些命令在执行时有助于组装 Docker 映像。
- Docker 镜像是使用 Docker 文件创建的。
4. Docker 引擎
- 托管容器的软件名为 Docker Engine。
- Docker Engine 是一个基于客户端-服务器的应用程序
- docker 引擎有3 个主要组件:
- 服务器:负责在 Docker 上创建和管理 Docker 镜像、容器、网络和卷。它被称为守护进程。
- REST API :它指定应用程序如何与服务器交互并指示它做什么。
- 客户端:客户端是一个 docker 命令行界面 (CLI),它允许我们使用 docker 命令与 Docker 交互。
5. Docker 中心
- Docker Hub 是官方的在线存储库,您可以在其中找到其他可用的 Docker 镜像。
- 它使查找、管理和与他人共享容器映像变得容易。
在 Ubuntu 上安装 Docker
1.删除旧版本的Docker
$ sudo apt-get remove docker docker-engine docker.io containerd runc
2. 安装 Docker 引擎
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable nightly test"
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
检查 docker 是否成功安装在您的系统中
$ sudo docker run hello-world
在 Docker 中创建应用程序
1. 创建一个包含 2 个文件(Dockerfile 和 main.py 文件)的文件夹。
- 文件
- 主文件
2. 使用以下代码编辑 main.py。
Python3
#!/usr/bin/env python3
print("Docker and GFG rock!")
3. 使用以下命令编辑 Dockerfile。
FROM python:latest
COPY main.py /
CMD [ "python", "./main.py" ]
4. 创建一个 Docker 镜像。
创建并编辑 main.py 文件和 Dockerfile 后,创建映像以包含您的应用程序。
$ docker build -t python-test .
‘-t’ 选项允许定义图像的名称。 ‘python-test’ 是我们为图像选择的名称。
5.运行Docker镜像
创建图像后,您的代码就可以启动了。
$ docker run python-test
将镜像推送到 Docker Hub
1.在 Docker Hub 上创建一个帐户。
2.点击“Create Repository”按钮,输入文件名,点击“Create”。
3.现在将“标记我们的镜像”并“将其推送到我们刚刚创建的 Docker Hub 存储库”。
现在,运行以下命令列出 docker 镜像:
$ docker images
以上会给我们这个结果
REPOSITORY TAG IMAGE_ID CREATED SIZE afrozchakure/python-test latest c7857f97ebbd 2 hours ago 933MB
图像 ID 用于标记图像。标记图像的语法是:
docker tag /python-test:latest
$ docker tag c7857f97ebbd afrozchakure/python-test:latest
4.推送镜像到 Docker Hub 仓库
$ docker push afrozchakure/python-test
从 Docker Hub 获取并运行镜像
1.要从我们的本地系统中删除特定图像的所有版本,我们对其使用图像 ID。
$ docker rmi -f af939ee31fdc
2.现在运行镜像,如果本地机器上不存在镜像,它将从 docker hub 获取镜像。
$ docker run afrozchakure/python-test
结论:
因此,您已经了解了 Docker 的基础知识、虚拟机和 Docker 容器之间的区别以及 Docker 中的一些常见术语。此外,我们还完成了在系统上安装 Docker 的过程。我们使用 Docker 创建了一个应用程序并将我们的镜像推送到 Docker Hub。最后,我们学习了如何从本地系统中删除特定图像,然后从 Docker Hub 中提取该图像(如果该图像在本地不存在)。