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中提取该映像。