3

最后docker因于不知道的某些原因被屏蔽了,这使得我们无论在拉取官方镜像方面还是在进行安装方面都需要一点点技巧。

既然docker不能够直接访问,所以如果想安装docker engine成功的前提是:有个可以连通外网的代理。在本文中,假设代理的地址为:http://192.168.20.3:7890。同时,由于我们参考官方的文档来进行安装,所以我们还需要一台可以在浏览器中打开docker官方的计算机。

在满足了网络环境后,安装步骤如下:

打开官网

截止到本文发布,在debian中安装docker的官方地址为:https://docs.docker.com/engine/install/debian/ ,如果我们是全新的主机,则只需要参考以下3步即可。

image.png

image.png

接下来,我们按上述官网指引进行安装:

安装通用包

首先按指导安装通用包:

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings

添加官方GPG key

此时官方的指引为:sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc

在这我们先为curl设置个代理,该上述命令修改为:

sudo curl -fsSL -x http://192.168.20.3:7890 https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc

最后执行指引中的如下命令来修改下载文件的权限:

sudo chmod a+r /etc/apt/keyrings/docker.asc

添加仓库地址

同样按官方指引将docker的仓库地址添加到debain中:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

然后在执行更新操作时,将sudo apt-get update修改为:

sudo apt-get -o Acquire::http::Proxy="http://192.168.20.3:7890" update

需要注意的,此时在进行仓库时,默认将使用ipv6网络,如果我们当前环境不支持ipv6,则需要执行:

sudo apt-get -o Acquire::ForceIPv4=true -o Acquire::http::Proxy="http://192.168.20.3:7890" update

即在原来的基础上加入Acquire::ForceIPv4=true以强制其走ipv4。

安装docker

在进行docker安装时,由于需要下载docker官方提供的文件,所以也需要代理,在官方指引:sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin的基础上,加入代理设置:

sudo apt-get -o Acquire::http::Proxy="http://192.168.20.3:7890" install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

设置docker代理

安装完成后,继续设置docker的代理,以使其能够在执行docker pull时成功获取到官方仓库:

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf

然后加入以下配置:

[Service]
Environment="HTTP_PROXY=http://192.168.20.3:7890/"
Environment="HTTPS_PROXY=http://192.168.20.3:7890/"
Environment="NO_PROXY=localhost,127.0.0.1"

最后重启docker

sudo systemctl daemon-reload
sudo systemctl restart docker

验证

使用官方指引进行验证:

sudo docker run hello-world

正确的拉取镜像后成功创建容器并显示了 Hello from Docker!

Good Luck!

参考:

  1. Install Docker Engine on Debian
  2. 解决阿里云ECS服务器拉取不下镜像的问题
  3. chatGPT

潘杰
3.1k 声望238 粉丝