如何在Debian 10上安装Docker?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上,运行这个容器,程序在这个容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。启扬 ARM 嵌入式开发

Docker 的主要用途,目前有三大类。

(1)提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。

(2)提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。

(3)组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

安装前检查和准备

Docker 安装依赖于 iptables,首先确保开发板中的 iptables 命令正常可用。

在使用过程中可能会碰到 iptables 报错,由于 docker 是用 iptables 初始化 NAT 网络,而 Debian buster 使用 nftables 而不是 iptables,导致 dockerd 不能正常完成 NAT 初始化,出错退出。

处理方法是调用 update-alternatives 强制 Debian 用 iptables 而不是 nftables。

# for ipv4sudo update-alternatives --set iptables /usr/sbin/iptables-legacy# for ipv6sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

此外开发板可能已经安装有 docker,所以在安装过程中会报错,这个时候就需要将旧版本的 docker 先卸载再安装。

卸载旧版本 docker 命令:

sudo apt-get remove docker docker-ce docker-engine docker.io containerd runc

安装步骤

1、安装依赖环境

安装 docker 之前需要先安装 docker 所依赖的环境,这样安装 docker 的时候才不会报错。

 sudo apt-get update sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

2、添加 Docker 的官方 GPG 密钥

在 docker 下载的过程中,需要使用到 GPG 密钥,使用 curl 命令来添加 GPG 密钥。

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

注意:  

在这个过程中可能会碰到 curl 报错,需要下载 curl 证书,

从这个地址:https://curl.se/docs/caextract.html 下载 cacert.pem,再将这个文件添加至环境变量(注意路径),就可以执行上述命令了。

wget https://curl.se/ca/cacert.pemexport CURL_CA_BUNDLE=/root/cacert.pem

3、设置官方源

在 debian 中是通过源来管理软件包的,通过如下命令可以添加官方源,以便于下载的 docker 和开发板的 debian 版本相对应。

 echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4、安装 docker-ce

通过下面命令就可以安装 docker-ce 了。

sudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

或者出于稳定性的要求,需要安装特定版本的 docker-ce。

首先使用命令检查存储库内可用的旧版本

apt-cache madison docker-ce

通过下面命令可以安装旧版本,将 修改为特定版本名,例如:5:18.09.1~3-0~debian-stretch。

sudo apt-get install docker-ce= docker-ce-cli= containerd.io docker-compose-plugin

5、安装完成后检查

最后使用下面命令检查 docker 是否安装成功。

docker version

当安装成功之后可以看到 client 和 server 两条信息,如果没有 Server: Docker Engine - Community 信息则表示安装失败。

 这样,开发板的 docker 就安装成功了,接下来就可以就可以使用容器来运行你想要的程序啦。


请使用浏览器的分享功能分享到微信等