Docker是一种容器化技术,可让您快速构建,测试和部署应用程序,作为可在任何地方虚拟运行的可移植自给自足的容器。 Docker已成为事实上的容器部署标准,它是DevOps工程师及其持续集成和交付管道的重要工具。

在本教程中,我们将介绍如何在Ubuntu 18.04计算机上安装Docker并探索基本的Docker概念和命令。

先决条件

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

在Ubuntu上安装Docker

尽管Docker安装包在官方的Ubuntu 18.04存储库中可用,但它不一定总是最新版本。推荐的方法是从Docker的存储库中安装最新的Docker软件包。

启用Docker存储库

首先更新软件包列表并安装必要的依赖项,以通过HTTPS 添加新存储库

sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

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

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

将Docker APT存储库添加到您的系统中:

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

安装Docker CE

现在已启用Docker存储库,您可以安装所需的任何Docker版本。

要安装最新版本的Docker,请使用以下命令。如果要安装特定的Docker版本,请跳过此步骤并转到下一个版本。

sudo apt update
sudo apt install docker-ce

特定版本,首先列出Docker存储库中的可用版本:

apt list -a docker-ce

该命令在第二列中显示可用的Docker版本。

docker-ce/bionic 5:18.09.7~3-0~ubuntu-bionic amd64
docker-ce/bionic 5:18.09.6~3-0~ubuntu-bionic amd64
docker-ce/bionic 5:18.09.5~3-0~ubuntu-bionic amd64

例如,要安装版本18.09.6,请输入:

sudo apt install docker-ce=5:18.09.6~3-0~ubuntu-bionic

为防止Docker软件包自动更新,请将其标记为保留:

sudo apt-mark hold docker-ce

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

sudo systemctl status docker

输出将如下所示:

● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor p
   Active: active (running) since Tue 2019-07-02 11:28:40 UTC; 15min ago
     Docs: https://docs.docker.com
 Main PID: 11911 (dockerd)
    Tasks: 10
   CGroup: /system.slice/docker.service

不使用sudo执行docker命令

默认情况下,Docker需要管理员权限。

要以非root用户身份运行Docker命令而不添加 sudo ,您需要将用户添加到docker组。该组是在Docker CE软件包安装期间创建的。为此,请运行以下命令:

sudo usermod -aG docker $USER

$USER是保存您的用户名的环境变量

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

要验证Docker已成功安装,并且您可以在不添加sudo的情况下运行docker命令,请运行:

docker container run hello-world

该命令将下载测试映像,在容器中运行它,打印“ Hello from Docker”消息并退出。输出应如下所示:

升级Docker

发布新的Docker版本时,您可以使用标准升级过程来更新软件包:

sudo apt update
sudo apt upgrade

卸载Docker

在卸载Docker之前删除所有容器,映像,卷和网络

您可以像apt中安装的任何其他软件包一样卸载Docker:

sudo apt purge docker-ce
sudo apt autoremove

Docker命令行

Docker CLI命令采用以下形式:

docker [option] [subcommand] [arguments]

要列出所有可用的命令,请键入docker,不带参数:

docker

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

docker [subcommand] --help

Docker Images

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

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

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

搜索Docker映像

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

例如,要搜索Ubuntu映像,请输入:

docker search ubuntu

输出应如下所示:

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

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

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

下载Docker映像

例如,要下载Ubuntu 18.04映像的最新官方版本,请使用以下image pull命令:

docker image pull ubuntu

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

当不指定标签时,Docker提取最新的Ubuntu映像,在撰写本文时为18.04。

如果要下载以前的 Ubuntu版本,例如Ubuntu 16.04,则需要使用docker image pull ubuntu:16.04

要列出所有下载的图像,请输入:

docker image ls

输出看起来像这样:

删除Docker映像

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

docker image rm ubuntu

Docker

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

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

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

启动Docker容器

以下命令将基于Ubuntu映像启动Docker容器。如果您在本地没有图片,它将首先下载它:[27​​8]

docker container run ubuntu

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

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

docker container run -it ubuntu /bin/bash
[root@719ef9304412 /]#

从上面的输出中可以看到,一旦容器启动,命令提示符就会更改。这意味着您正在从容器内部工作。

列出Docker容器

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

docker container ls  如果您没有正在运行的容器,则输出为空。

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

docker container ls -a

删除Docker容器

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

docker container rm c55680af670c

结论

您已经了解了如何在Ubuntu 18.04计算机上安装Docker,以及如何下载Docker映像和管理Docker容器。您可能还需要阅读 Docker Compose ,它使您可以定义和运行多容器Docker应用程序。

本教程几乎没有涉及Docker生态系统的表面。在接下来的一些文章中,我们将继续深入探讨Docker的其他方面。要了解有关Docker的更多信息,请查看官方 Docker文档

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

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