注意点:
1. 运行子系统要以管理员身份运行,否则无法启动docker
2. 安装的docker版本要根据本机系统的版本选择, 不能高于当前子系统版本,否则可以启动成功,但运行测试时会报错。
1. 本机子系统信息:
# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
2. 安装过程(Ubuntu 18.04 安装 Docker-ce 为准)
2.1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt update
2.2.安装需要的包
sudo apt install apt-transport-https ca-certificates software-properties-common curl
2.3.添加 GPG 密钥,并添加 Docker-ce 软件源,这里还是以中国科技大学的 Docker-ce 源为例
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable"
2.4.添加成功后更新软件包缓存
sudo apt update
2.5.安装 Docker-ce
推荐:
apt-cache madison docker-ce (查找目前稳定的版本, 然后选择一个小于等于当前系统版本的安装)
apt-get install docker-ce=18.03.1~ce~3-0~ubuntu (目前我安装的版本)
sudo apt install docker-ce (此处若直接执行该命令的话,默认安装最新版本的docker)
由于一开始我是默认安装的,导致执行run hello-world的时候报错:docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:303: getting the final child's pid from pipe caused \"EOF\"": unknown.
原因:
可能是由于在WSL的环境下,WSL目前应该属于WSL1,这并不是真正的Linux(大部分发行版带的东西,可能WSL不带,还要systemctl命令也不能用),大概到年底能发布的WSL2才是真正的把Linux内核整合到WIndows10中。目前看到的问题大部分都是WSL + Ubuntu + docker 18.x
6.设置开机自启动并启动 Docker-ce(安装成功后默认已设置并启动,可忽略)
sudo systemctl enable docker(此句不知是否生效了)
sudo systemctl start docker (启动应替换成 sudo service docker start)
检查是否启动:sudo service docker status
7.测试运行
sudo docker run hello-world
8.添加当前用户到 docker 用户组,可以不用 sudo 运行 docker(可选)
sudo groupadd docker
sudo usermod -aG docker $USER
9.测试添加用户组(可选)
docker run hello-world
安装参考:
https://www.runoob.com/docker/ubuntu-docker-install.html
解决问题参考: