在 Debian9 上安装 Docker

安装docker

以下步骤描述了如何从 Docker 的存储库安装最新的稳定版本的过程。

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

sudo apt update
sudo apt upgrade

安装通过 HTTPS 添加新存储库所需的依赖项:

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

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

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 (Community Edition):

sudo apt updatesudo 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

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

要验证您是否可以在不添加 sudo 前缀情况下运行 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 Hub 上提供了大多数 Docker 镜像。

Docker Hub 是基于云的注册服务,用于将 Docker 镜像保存在公共或私有存储库中。

搜索 Docker 镜像

要从 Docker Hub 注册表中搜索镜像,请使用 search 子命令。
例如,要搜索 Debian 镜像,您可以键入:

docker search debian

输出应如下所示:

NAME                                  DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
ubuntu                                Ubuntu is a Debian-based Linux operating sys…   16032               [OK]                
debian                                Debian is a Linux distribution that's compos…   4686                [OK]                
neurodebian                           NeuroDebian provides neuroscience research s…   100                 [OK]                
pihole/debian-base                    Debian docker with a custom pam build           3                                       
bitnami/debian-base-buildpack         Debian base compilation image                   2                                       [OK]
dockette/debian                       My Debian Sid | Jessie | Wheezy Base Images     2                                       [OK]
ustclug/debian                        Official Debian Image with USTC Mirror          2                                       
treehouses/debian                                                                     2                                       
dokken/debian-11                      Debian 11 image for use with kitchen-dokken     1                                       
osrf/debian_arm64                     Debian arm64 Base Images                        1                                       
osrf/debian_armhf                     Debian Armhf Base Images                        1                                       
rancher/debianconsole                                                                 1                                       
mirantis/debian-build-ubuntu-trusty                                                   0                                       
datadog/debian-i386                                                                   0                                       
dokken/debian-9                       EOL: Debian 9 image for kitchen-dokken          0                                       
dokken/debian-8                       EOL: Debian 8 image for kitchen-dokken          0                                       
jitesoft/debian                       Debian base image.                              0                                       
mirantis/debian-build-ubuntu-xenial                                                   0                                       
corpusops/debian-bare                 https://github.com/corpusops/docker-images/     0                                       
corpusops/debian                      debian corpusops baseimage                      0                                       
dokken/debian-12                      Debian 12 image for use with Test Kitchen's …   0                                       
pihole/debian-debootstrap             fork of multiarch/debian-debootstrap            0                                       
homebrew/debian7                      Homebrew maintainer image for building patch…   0                                       
dokken/debian-10                      Debian 10 image for use with kitchen-dokken     0                                       
kasmweb/debian-bullseye-desktop       Debian Bullseye desktop for Kasm Workspaces     0    

正如你可以看到搜索结果打印的表格有 5 列,NAME,DESCRIPTION,STARS,OFFICIAL和AUTOMATED。

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

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

下载 Docker Image

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

docker image pull debian

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

由于我们没有指定标签,因此 docker 将提取最新的 Debian 9.5 镜像。如果你想拉取一些以前的 Debian 版本,比如说 Debian 8, 你需要使用 docker image pull debian:8

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

docker image ls

输出看起来像这样:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
homebrew/debian7    latest              692718cbe27e        11 months ago       1.21GB
dokken/debian-8     latest              d35bd54ccdcd        2 years ago         317MB

删除 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 (或 或多个 ID)并将其粘贴到 container rm 子命令之后:

docker container rm c55680af670c

你可能感兴趣的:(docker,linux,容器)