网站搜索

如何在 Ubuntu 20.04 上安装和使用 Docker


Docker 是最流行的开源平台,供开发人员和系统管理员使用容器构建、运行和共享应用程序。容器化(使用容器来部署应用程序)变得越来越流行,因为容器灵活、轻量、可移植、松散耦合、可扩展且更安全。

本文是初学者学习如何通过一些基本命令在 Ubuntu 20.04 Linux 系统上安装和使用 Docker 的良好起点。在本指南中,我们将安装Docker Community Edition (CE)。

先决条件:

  • Ubuntu 20.04 服务器的安装。
  • 具有运行 sudo 命令权限的用户。

在 Ubuntu 20.04 上安装 Docker

要使用最新版本的Docker,我们将从官方Docker存储库安装它。因此,首先将官方 Docker 存储库的 GPG 密钥添加到您的系统中,然后使用以下命令将存储库配置添加到 APT 源:以下命令。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

现在,使用以下命令更新 APT 软件包缓存,以将新的 Docker 软件包包含到系统中。

sudo apt update

接下来,安装 Docker 软件包,如图所示。

sudo apt install docker-ce

Docker软件包安装过程中,软件包安装程序会触发systemd(系统和服务管理器)自动启动并启用docker服务。使用以下命令确认 docker 服务处于活动状态并启用在系统启动时自动启动。另外,检查其状态:

sudo systemctl is-active docker
sudo systemctl is-enabled docker
sudo systemctl status docker

还有其他几个 systemctl 命令可以管理和控制 docker 服务,其中包括:

sudo systemctl stop docker			#stop the docker service
sudo systemctl start docker			#start the docker service
sudo systemctl  restart docker		#restart the docker service

要检查系统上安装的 Docker CE 版本,请运行以下命令:

docker version

您可以通过运行不带任何选项或参数的 docker 命令来查看可用的 docker 使用命令:

 
docker

使用 sudo 命令以非 root 用户身份管理 Docker

默认情况下,Docker 守护进程绑定到由用户 root 拥有的 UNIX 套接字(而不是 TCP 端口)。因此,Docker 守护进程始终以 root 用户身份运行,并且要运行 docker 命令,您需要使用 sudo。

此外,在Docker软件包安装过程中,会创建一个名为docker的组。当Docker守护进程启动时,它会创建一个可供docker组成员访问的UNIX套接字(该组授予相当于root用户的权限)。

要在不使用 sudo 的情况下运行 docker 命令,请将所有应该访问 docker 的非 root 用户添加到 docker 组中,如下所示。在此示例中,该命令将当前登录的用户 ($USER) 或用户名添加到 docker 组:

sudo usermod -aG docker $USER
OR
sudo usermod -aG docker username

要激活对组的更改,请运行以下命令:

newgrp docker 
groups

接下来,验证您是否可以在没有 sudo 的情况下运行 docker 命令。以下命令下载测试映像并在容器中运行它。容器运行后,它会打印一条信息性消息并退出。这也是交叉检查您的安装是否正常工作的另一种方法。

docker run hello-world

使用 Docker 镜像

Docker 映像是一个只读模板文件,其中包含创建 Docker 容器的说明。您可以创建自定义映像,也可以仅使用其他人创建并在 Docker Hub(世界上最大的容器映像库和社区)中发布的映像。

您可以使用以下命令在 Docker Hub 中搜索 centos 镜像:

docker search centos 

要在本地下载映像,请使用pull 命令。此示例演示如何下载官方 centos 镜像。

docker pull centos

下载完成后,您可以列出本地系统上的可用图像。

docker images

如果您不再需要某个映像,可以将其从系统中删除。

docker rmi centos
OR
docker rmi centos:latest    #where latest is the tag

运行和管理 Docker 容器

Docker容器是一个在Linux上本机运行并与其他容器共享主机内核的进程。对于 Docker 镜像来说,容器只是一个正在运行的镜像。

要启动基于新 centos 映像的容器,请运行以下命令,其中 “centos ” 是本地映像名称,“cat /etc/centos-release ”是在容器中运行的命令:

docker run centos cat /etc/centos-release

容器运行一个独立的进程,该进程是隔离的,因为它有自己的:文件系统、网络和与主机分离的隔离进程树。请注意,您可以使用容器的ID、ID 前缀或名称来操作容器,如下所示。上述容器进程在命令运行后退出。

要列出 Docker 容器,请使用 docker ps 命令,如下所示。使用 -l 标志显示所有状态下最新创建的容器:

docker ps
OR
docker ps -l

要显示所有容器(包括已退出的容器),请使用 -a 标志。

docker ps -a

您还可以在容器退出后使用其容器 ID 来启动容器。例如,在前面的命令中,我们的容器 ID 是 94c35e616b91。我们可以如图所示启动容器(注意它将运行命令并退出):

docker start 94c35e616b91

要使用其 ID 停止正在运行的容器,请使用停止命令,如图所示。

docker stop 94c35e616b91

Docker 还允许您在运行容器时使用 --name 选项为容器分配名称。

docker run --name my_test centos cat /etc/centos-release
docker ps -l

现在您可以使用容器名称来管理(启动、停止、统计、删除等)容器:

docker stop my_test
docker start my_test
docker stats my_test
docker rm my_test

在 Docker 容器中运行交互式会话

要在容器中启动交互式 shell 会话以使您能够在容器中运行命令,请运行以下命令:

docker run --name my_test -it centos

在上面的命令中,-it 开关告诉 Docker 分配一个连接到容器的 stdin 的伪 TTY,从而在容器中创建一个交互式 bash shell。

您可以通过发出 exit 命令退出,如图所示。

exit

如果您不想退出,可以与容器分离并使其保持运行。为此,请使用 CTRL+p 然后使用 CTRL+q 按键序列。

您可以使用 attach 命令连接回容器,该命令会将本地标准输入、输出和错误流附加到正在运行的容器:

docker attach my_test

此外,您可以使用 -d 标志以分离模式启动容器。然后使用 attach 命令将终端的标准输入、输出和错误流附加到正在运行的容器:

docker run --name my_test -d -it centos
docker attach my_test

最后但并非最不重要的一点是,您可以通过运行以下命令从主机会话停止正在运行的容器:

docker kill my_test

就这样!在本指南中,我们介绍了如何在 Ubuntu 20.04 Linux 中安装和使用 Docker CE。如果您有任何疑问,请使用下面的反馈表询问我们。