Docker是一个容器化平台,可让您快速构建,测试和部署应用程序,作为可在任何地方虚拟运行的可移植自足容器。

Docker实际上是容器技术的标准,它是DevOps工程师及其持续集成和交付管道的重要工具。

在本教程中,我们将指导您完成在Debian 9机器上安装Docker的过程,并探索基本的Docker概念和命令。

先决条件

在继续本教程之前,请确保您以位具有sudo权限的用户身份登录。本教程中的所有命令均应以非root用户身份运行。

在Debian上安装Docker

以下步骤介绍了如何从Docker的存储库中安装最新的稳定Docker版本。

将安装的软件包更新为最新版本:

sudo apt update
sudo apt upgrade

安装必要的依赖项通过HTTPS添加新存储库

sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg2

使用以下导入存储库的GPG密钥] curl命令

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

通过输入:将Docker APT存储库添加到系统的软件存储库列表中]

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

$(lsb_release -cs)将返回Debian发行版的名称,在这种情况下,它将返回stretch  

现在已启用Docker存储库,更新apt软件包列表并安装具有以下版本的Docker CE(社区版)的最新版本:

sudo apt update
sudo apt install docker-ce

安装完成后,Docker服务将自动启动。您可以输入以下内容进行验证:

sudo systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-07-27 17:02:07 UTC; 1min 14s ago
    Docs: https://docs.docker.com
Main PID: 16929 (dockerd)
CGroup: /system.slice/docker.service

在撰写本文时,可用于Debian 9的Docker的当前版本为18.06.0-ce。使用以下命令检查Docker版本:

docker -v
Docker version 18.06.0-ce, build 0ffa825

在不使用Sudo的情况下执行Docker命令

默认情况下,只有具有管理员权限的用户才能执行Docker命令。

如果您想以非root用户身份运行Docker命令而不加 sudo ,则需要将用户添加到在Docker CE软件包安装过程中创建的Docker组中。您可以输入以下内容:

sudo usermod -aG docker $USER

$USER是包含您的用户名的环境变量

注销并重新登录,以便刷新组成员身份。

要验证您是否可以在不添加Docker命令的情况下运行docker命令,请运行以下命令,该命令将下载测试映像,将其运行在容器中,打印“ Hello from Docker”消息并退出:

docker container run hello-world

输出应如下所示:

Docker命令行

现在,我们已经安装了Docker,让我们回顾一下Docker CLI的基本语法:

docker [option] [subcommand] [arguments]

要列出所有可用命令,请运行docker,不带参数:

docker

如果您需要有关[subcommand]的更多帮助,可以使用--help开关,如下所示:

docker [subcommand] --help

Docker映像

Docker映像由一系列文件系统层组成,这些文件系统层表示映像的 Dockerfile 中的指令,这些指令构成了可执行的软件应用程序。图像是一个不可变的二进制文件,包括应用程序和所有其他依赖项,例如库,二进制文件和运行该应用程序所需的指令。

您可以将Docker映像视为Docker容器的快照。

大多数Docker镜像在Docker Hub上都可用。

Docker Hub是基于云的注册服务,除其他功能外,还用于将Docker映像保存在公共或私有存储库中。

搜索Docker映像

要从Docker Hub注册表中搜索映像,请使用search子命令。

例如,要搜索Debian图像,您可以输入:

docker search debian

输出应如下所示:

如您所见,搜索结果将打印一个包含五列的表格:NAMEDESCRIPTIONSTARSOFFICIALAUTOMATED

官方映像是Docker与上游合作伙伴共同开发的映像。

Docker Hub上的大多数Docker映像都带有版本号标记。如果未指定标签,则Docker将提取最新映像。

下载Docker映像

如果我们想下载Debian映像的官方版本,可以使用image pull子命令来完成:

docker image pull debian

根据您的互联网速度,下载可能需要几秒钟或几分钟。

由于我们尚未指定标签,因此docker将拉出最新的Debian映像9.5。如果您想提取某些 Debian以前的版本,比如说Debian 8,那么您需要使用docker image pull debian:8

下载图像后,我们可以通过输入以下内容列出图像:

docker image ls

输出将如下所示:

删除Docker映像

如果出于某些原因要删除图像,则可以使用image rm [image_name]子命令来完成:

docker image rm debian

Docker容器

映像的实例称为容器。容器代表单个应用程序,进程或服务的运行时。

这可能不是最合适的比较,但是如果您是程序员,则可以将Docker映像视为类,而将Docker容器视为类的实例。

我们可以使用docker container子命令来启动,停止,移除和管理容器。

启动Docker容器

以下命令将基于Debian映像启动Docker容器。如果您在本地没有该图片,则将首先下载该图片:

docker container run debian

乍一看,您似乎什么也没有发生。好吧,那是不对的。 Debian容器在启动后立即停止,因为它没有长时间运行的过程,并且我们未提供任何命令,因此该容器在启动后运行了空命令,然后退出。

开关-it允许我们通过命令行与容器进行交互。要启动交互式容器,请输入:

docker container run -it debian /bin/bash
root@ee86c8c81b3b:/#

正如您从上方的输出中看到的那样,一旦容器启动,命令提示符就会更改,这意味着您现在正在容器内部

列出Docker容器

要列出活动容器,请输入:

docker container ls

如果您没有正在运行的容器,输出将为空。

要查看活动和不活动的容器,请将-a 选项传递给它:

docker container ls -a

删除Docker容器

要删除一个或多个容器,只需复制一个或多个容器ID,然后将其粘贴到container rm子命令之后:

docker container rm c55680af670c

结论

您已经了解了如何在Debian 9计算机上安装Docker,以及如何下载Docker映像和管理Docker容器。本教程几乎没有涉及Docker生态系统的表面。在接下来的一些文章中,我们将继续深入探讨Docker的其他方面。

您还应该查看官方 Docker文档

如有任何疑问,请在下面发表评论。

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持