📜  Docker简介

📅  最后修改于: 2021-04-16 08:25:06             🧑  作者: Mango

Docker是一组平台即服务(PaaS)产品,它们使用操作系统级别的可视化功能以称为容器的软件包交付软件。容器彼此隔离,并将它们自己的软件,库和配置文件捆绑在一起。他们可以通过定义明确的渠道相互交流。所有容器都由单个操作系统内核运行,因此使用的资源少于虚拟

Docker容器与虚拟机之间的区别

1. Docker容器

  • Docker容器包含二进制文件,库和配置文件以及应用程序本身。
  • 它们不为每个容器包含一个来宾OS,而是依赖于底层OS内核,这使容器轻巧。
  • 容器与同一主机OS中的其他容器共享资源,并提供OS级进程隔离。

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 Hub

  • Docker Hub是官方的在线存储库,您可以在其中找到其他可用的Docker映像。
  • 它使查找,管理和与他人共享容器映像变得很容易。

在Ubuntu上安装Docker

1.删除旧版本的Docker

$ sudo apt-get remove docker docker-engine docker.io containerd runc

2.安装Docker Engine

$ 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文件)的文件夹。

  • Docker文件
  • 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.单击“创建存储库”按钮,放置文件名,然后单击“创建”。

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集线器中获取该映像。

$ docker run afrozchakure/python-test

结论:

因此,您已经了解了Docker的基础知识,虚拟机和Docker容器之间的区别以及Docker中的一些常用术语。此外,我们还完成了在系统上安装Docker的工作。我们使用Docker创建了一个应用程序,并将我们的映像推送到Docker Hub。最后,我们学习了如何从本地系统中删除特定映像,然后在本地不存在的情况下从Docker Hub中提取该映像。