Docker 是一种容器化技术,可让您快速构建、测试应用程序并将其部署为几乎可以在任何地方运行的可移植、自给自足的容器。 Docker 已经成为容器部署事实上的标准,它是 DevOps 工程师及其持续集成和交付管道的必备工具。
在本教程中,我们将介绍如何在 Ubuntu 18.04 计算机上安装 Docker 并探索基本的 Docker 概念和命令。
先决条件#
在继续本教程之前,请确保您以以下身份登录具有 sudo 权限的用户。本教程中的所有命令都应以非 root 用户身份运行。
在 Ubuntu 上安装 Docker#
虽然官方 Ubuntu 18.04 存储库中提供了 Docker 安装包,但它可能并不总是最新版本。推荐的方法是从 Docker 存储库安装最新的 Docker 包。
启用 Docker 存储库#
-
首先更新包列表并安装通过 HTTPS 添加新存储库所需的依赖项:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
-
使用以下命令导入存储库的 GPG 密钥curl命令:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-
添加 DockerAPT 存储库到您的系统:
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
is an 环境变量保存您的用户名。
注销并重新登录以刷新组成员身份。
验证 Docker 是否已成功安装并且您可以运行 docker 命令而无需添加前缀sudo
, run:
docker container run hello-world
该命令将下载测试映像,在容器中运行它,打印“Hello from Docker”消息并退出。输出应如下所示:
升级Docker#
当新的 Docker 版本发布时,您可以使用标准升级流程更新软件包:
sudo apt update
sudo apt upgrade
卸载 Docker#
卸载 Docker 之前删除所有容器、镜像、卷和网络
.
您可以像卸载任何其他安装的软件包一样卸载 Dockerapt
:
sudo apt purge docker-ce
sudo apt autoremove
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
子命令。
例如,要搜索 Ubuntu 映像,您可以输入:
docker search ubuntu
输出应如下所示:
正如您所看到的,搜索打印了一个包含五列的表格,NAME
, DESCRIPTION
, STARS
, OFFICIAL
and AUTOMATED
.
官方镜像是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 容器#
以下命令将启动一个 Docker 容器基于Ubuntu镜像。如果本地没有该镜像,它会先下载:
docker container run ubuntu
乍一看,你可能觉得什么都没发生。嗯,事实并非如此。 Ubuntu容器在启动后立即停止,因为它没有长时间运行的进程,而且我们没有提供任何命令。容器启动,运行一个空命令,然后退出。
开关-it
允许我们通过命令行与容器交互。要启动交互式容器类型:
docker container run -it ubuntu /bin/bash
[root@719ef9304412 /]#
从上面的输出中可以看到,一旦容器启动,命令提示符就会更改。这意味着您现在正在工作从容器内部
.
列出 Docker 容器#
要列出活动容器,请键入:
docker container ls
要查看活动和非活动容器,请将其传递给-a
switch:
docker container ls -a
删除 Docker 容器#
要删除一个或多个容器,请复制容器 ID(或多个 ID)并将其粘贴到container rm
子命令:
docker container rm c55680af670c
结论#
您已经学习了如何在 Ubuntu 18.04 计算机上安装 Docker 以及如何下载 Docker 映像和管理 Docker 容器。您可能还想阅读Docker 组合,它允许您定义和运行多容器 Docker 应用程序。
本教程仅涉及 Docker 生态系统的皮毛。在接下来的一些文章中,我们将继续深入探讨 Docker 的其他方面。要了解更多关于 Docker 的信息,请查看官方Docker 文档
.
如果您有任何疑问,请在下面留言。