📜  Docker 简介

📅  最后修改于: 2021-10-21 05:51:13             🧑  作者: Mango

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 中提取该图像(如果该图像在本地不存在)。