debian10安装docker

使用root登录

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

apt update
apt upgrade

  1. 安装通过 HTTPS 添加新存储库所需的依赖项:
apt install apt-transport-https ca-certificates curl software-properties-common gnupg2

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

root@debiantest1:~# curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
OK
root@debiantest1:~# 

键入以下内容,将 Docker APT 存储库添加到系统的软件存储库列表中:

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

接下来,使用新添加的repo中的Docker包更新包数据库:

apt update

确保您要从Docker repo而不是默认的Debian repo安装:

root@debiantest1:~# apt-cache policy docker-ce
docker-ce:
  Installed: (none)
  Candidate: 5:19.03.4~3-0~debian-buster
  Version table:
     5:19.03.4~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:19.03.3~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:19.03.2~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:19.03.1~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:19.03.0~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.9~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.8~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.7~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.6~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.5~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.4~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.3~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.2~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.1~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.0~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     18.06.3~ce~3-0~debian 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     18.06.2~ce~3-0~debian 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     18.06.1~ce~3-0~debian 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     18.06.0~ce~3-0~debian 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     18.03.1~ce-0~debian 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     18.03.0~ce-0~debian 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     17.12.1~ce-0~debian 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     17.12.0~ce-0~debian 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
root@debiantest1:~#
 

现在已启用 Docker 存储库,更新 apt 软件包列表并安装最新版本的 Docker CE (Community Edition):

apt install docker-ce
  1. 安装完成后, Docker 服务将自动启动。您可以输入以下命令进行验证:
systemctl status docker

  1. 查看 Docker 版本:
root@debiantest1:~# docker -v
Docker version 19.03.4, build 9013bf583a
root@debiantest1:~#

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

docker

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

docker [subcommand] --help

第4步 - 使用Docker镜像

Docker容器是从Docker镜像构建的。默认情况下,Docker从Docker Hub中获取这些映像,Docker Hub是由Docker管理的Docker注册表,Docker项目背后的公司。任何人都可以在Docker Hub上托管他们的Docker镜像,因此您需要的大多数应用程序和Linux发行版都将在那里托管图像。

要检查您是否可以从Docker Hub访问和下载图像,请键入:

docker run hello-world

输出将指示Docker正常工作:

...

Docker最初无法在本地找到hello-world图像,因此它从Docker Hub下载了图像,Docker Hub是默认存储库。下载映像后,Docker从映像创建了一个容器,并在容器中执行了应用程序,显示了该消息。再次运行就比较快了。

要查看已下载到计算机的图像,请键入:

docker images

第6步 - 管理Docker容器

使用Docker一段时间后,您的计算机上将有许多活动(运行)和非活动容器。要查看活动的,请使用:

--查看活动的容器
docker ps

您将看到类似于以下内容的输出:

在本教程中,您启动了两个容器; 一个来自hello-world图像,另一个来自ubuntu图像。两个容器都不再运行,但它们仍然存在于您的系统上。

要查看所有容器 - 活动和非活动,请 使用-a开关运行docker ps:

--查看所有的容器,包含活动和非活动的
docker ps -a

您将看到类似于此的输出:

要查看您创建的最新容器,请将其传递给-l交换机:

--查看最新的容器
docker ps -l

要启动已停止的容器,请使用docker start,后跟容器ID或容器名称。让我们启动基于Ubuntu的容器,其ID为 d9b100f2f636:

--启动d9b100f2f636容器
docker start d9b100f2f636

容器将启动,您可以使用docker ps来查看其状态:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d9b100f2f636 ubuntu "/bin/bash" About an hour ago Up 8 seconds sharp_volhard

要停止正在运行的容器,请使用docker stop,后跟容器ID或名称。这次,我们将使用Docker分配容器的名称,即sharp_volhard:

--停止sharp_volhard容器
docker stop sharp_volhard

一旦您决定不再需要容器,请使用该docker rm命令将其删除,再次使用容器ID或名称。使用该docker ps -a命令查找与hello-world映像关联的容器的容器ID或名称,然后将其删除。

docker rm festive_williams

您可以使用--name开关启动一个新容器并为其命名。您还可以使用该--rm开关创建一个在停止时自行删除的容器。有关这些选项和其他选项的更多信息,请参阅该docker run help命令。

容器可以转换为可用于构建新容器的映像。让我们来看看它是如何工作的。

让我们使用Ubuntu的最新图像运行一个容器。-i和-t开关的组合为您提供了对容器的交互式shell访问:

docker run -it ubuntu

步骤7 - 将容器中的更改提交到Docker镜像

当您启动Docker镜像时,您可以像使用虚拟机一样创建,修改和删除文件。您所做的更改仅适用于该容器。您可以启动和停止它,但是一旦使用该docker rm命令销毁它,更改将永久丢失。

本节介绍如何将容器的状态保存为新的Docker镜像。

在Ubuntu容器中安装Node.js后,您现在有一个运行图像的容器,但容器与您用来创建它的图像不同。但是您可能希望稍后重新使用此Node.js容器作为新映像的基础。

然后使用以下命令将更改提交到新的Docker镜像实例。

docker commit -m "What you did to the image" -a "Author Name" container_id repository/new_image_name

该-m开关是提交信息,可以帮助你和其他人知道你所做的修改,而-a用于指定作者。当您启动交互式Docker会话时,container_id是您在本教程前面提到的那个。除非您在Docker Hub上创建了其他存储库,否则repository通常是您的Docker Hub用户名。

例如,对于用户sammy,使用容器ID d9b100f2f636,命令将是:

docker commit -m "added Node.js" -a "sammy" d9b100f2f636 sammy/ubuntu-nodejs

当你提交的图像,新的图像在您的计算机上本地保存。在本教程的后面,您将学习如何将映像推送到Docker Hub之类的Docker注册表,以便其他人可以访问它。

再次列出Docker图像将显示新图像以及从中派生的旧图像:

docker images

你会看到这样的输出:

REPOSITORY TAG IMAGE ID CREATED SIZE sammy/ubuntu-nodejs latest 7c1f35226ca6 7 seconds ago 179MB ubuntu latest 113a43faa138 4 weeks ago 81.2MB hello-world latest e38bc07ac18e 2 months ago 1.85kB

在此示例中,ubuntu-nodejs是新图像,它是从Docker Hub 的现有ubuntu图像派生的。尺寸差异反映了所做的变化。在此示例中,更改是NodeJS已安装。因此,下次需要使用预先安装了NodeJS的Ubuntu运行容器时,您可以使用新映像。

您还可以从Dockerfile构建映像,这样可以在新映像中自动安装软件。但是,这超出了本教程的范围。

现在让我们与他人分享新图像,以便他们可以从中创建容器。

遇到的问题

在下载images时遇到以下错误

root@debiantest1:~# docker pull ubuntu
Using default tag: latest
Error response from daemon: Get https://registry-1.docker.io/v2/library/ubuntu/manifests/latest: Get https://auth.docker.io/token?scope=repository%3Alibrary%2Fubuntu%3Apull&service=registry.docker.io: net/http: TLS handshake timeout

然后尝试使用

docker pull registry.docker-cn.com/library/ubuntu

仍然失败

root@debiantest1:/etc/docker# docker pull registry.docker-cn.com/library/ubuntu
Using default tag: latest
Error response from daemon: Get https://registry.docker-cn.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

最后

首先打开配置文件daemon.json,centos上安装后有此文件,但是ubuntu上需要自己创建文件:

nano /etc/docker/daemon.json

在文件中加入:

{
    "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}

然后重启守护进程:

sudo systemctl daemon-reload
sudo systemctl restart docker

此时重新下载就可以了。

发布了22 篇原创文章 · 获赞 15 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/zhupengfei/article/details/102739901