给国内用户的Docker安装、使用指南

发布于 20 天前  61 次阅读


引子

众所周知国内的网络环境,对于docker的安装和使用有许多困难,在这里,面向在国内使用docker的linux用户写一篇安装指南。

这篇文章适用于systemd的Linux系统(大部分主流发行版)

安装

对于安装docker,官网给出了几个不同的方式,为了后续升级docker以及维护方便,在这里我们选择添加一个更新源的方式。

如果你是Arch用户,你可以跳过这个步骤。

Debian系

如果安装过docker,先把它们移除

sudo apt remove docker docker-engine docker.io

获取公钥

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - #Debian

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - #Ubuntu

如果你的网络压根无法连接到docker.com,具体体现为curl的报错。你可以使用-x选项来指定代理,例如

curl -x http://127.0.0.1:8888 -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - 
#Debian

curl -x http://127.0.0.1:8888 -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#Ubuntu

如果你的系统是amd64的,那么使用下面的命令来添加合适的源。以清华源为例,如果你想更改只需要把第二行的url换成你想要用的

sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
$(lsb_release -cs) \
stable"
#Debian

sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
#Ubuntu

对于树莓派等其它armhf架构的系统以及arm64系统来说:首先确定自己系统的是基于Debian还是Ubuntu,其次将

[arch=amd64]替换为[arch=armhf]或者[arch=arm64]

RHEL系

如果安装过docker,先把它们移除

sudo dnf remove docker docker-common docker-selinux docker-engine
#如果你没有dnf,如CentOS 6,使用yum即可
sudo yum remove docker docker-common docker-selinux docker-engine

下载repo

wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
#RHEL/CentOS

wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/fedora/docker-ce.repo
#Fedora

如果你的网络压根无法连接到docker.com,具体体现为wget的报错。你可以设置环境变量来临时指定代理,例如

export http_proxy=http://127.0.0.1:8888
export https_proxy=http://127.0.0.1:8888

将官方源替换为国内源

sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

安装docker

sudo dnf makecache fast
sudo dnf install docker-ce

通过上述操作,我们把docker安装到了本地,并且更换了国内的源,这样我们可以使用国内源来升级、维护docker。

使用

安装后docker镜像的拉取也是一个问题。由于直连dockerhub非常慢且不稳定,对于国内用户有两种解决方法

国内镜像

由于国内镜像越来越难用(原因主要是dockerhub的拉取限制),这个方法针对没有代理的用户,目前可用的也就只有阿里云提供的镜像了。

即使使用镜像也时常出现错误,因为这只是缓存,而非完整镜像。

打开阿里云首页,找到容器镜像服务然后点击镜像加速器就可以看到当前账号对应的地址。

修改 /etc/docker/daemon.json 为

{
  "registry-mirrors": ["https://你的镜像地址"]
}

注意,如果有其它配置,应该按照json语法编辑。

代理

sudo mkdir -p /etc/systemd/system/docker.service.d

在上面这个目录下创建http-proxy.conf,并将其修改为

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80"
Environment="HTTPS_PROXY=https://proxy.example.com:443"

接下来,尽情使用吧!


长风破浪会有时,直挂云帆济沧海。在这条路上一直走下去!