win10 linux子系统(WSL 2)ubuntu18.04安装docker18.06步骤

环境
操作系统:win10 linux子系统(WSL 2)Ubuntu 18.04.5 LTS
操作用户:安装WSL 2时创建的有sudo权限的普通用户

这种在windows子系统(WSL 2)中安装docker的方式对比window for docker有一个突出优点:不需要启动Hyper-v。这也就意味着linux子系统可以和VMware 15.5.5+、VirtralBox 6+之类的虚拟机一起使用(WSL 2 will work with VMware 15.5.5+ and VirtualBox 6+)。这对一直在VMware、VirtralBox虚拟机中使用linux的用户很友好。当切换到linux子系统后,再也不用忍受虚拟机漫长的开机启动时间了。

1、添加docker源和对应的GPG密钥

中科大源镜像(推荐):

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

这句命令会在/etc/apt/sources.list 源文件中新增docker源地址,类似deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ bionic stable的语句
中科大源对应的GPG密钥安装命令:

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

这句命令会在/etc/apt/目录下创建trusted.gpg文件和trusted.gpg.d目录,目录中包含ubuntu-keyring-2012-archive.gpg、ubuntu-keyring-2012-cdimage.gpg、ubuntu-keyring-2018-archive.gpg三个密钥文件。

2、安装docker-ce

# 更新本地软件列表
sudo apt-get update
# 查询可安装的docker版本
sudo apt-cache show docker-ce|grep Version
# 当前(2021-02-19)最新版本为18.06.3~ce~3-0~ubuntu,指定安装该版本,需要40.4MB大小磁盘空间
sudo apt-get install docker-ce=18.06.3~ce~3-0~ubuntu

3、启动docker进程

windows子系统ubuntu18不支持systemctl,但可以使用service管理启动项。使用命令 sudo service docker start即可启动docker进程。如需免sudo访问docker可使用以下命令

# 查看docker用户组是否存在
sudo cat /etc/group | grep docker
# 把当前用户加入到docker用户组中
sudo usermod -aG docker $USER
# 查看当前用户是否在docker用户组中
cat /etc/group|grep docker
# 文件/var/run/docker.sock 新增docker用户组读写权限
sudo chmod a+rw /var/run/docker.sock

4、拉取测试镜像

sudo docker run hello-world

5、修改docker默认数据目录Docker Root Dir

参考这里

6、错误处理

1)错误:invoke-rc.d: could not determine current runlevel
解决:注释掉以下几行/var/lib/dpkg/info/docker-ce.prerm,然后重试。

if [ -x "/etc/init.d/docker" ]; then
       invoke-rc.d docker stop || exit 1
fi

2)错误:docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. See 'docker run --help'.
原因:docker进程未启动
解决:
a、用命令service --status-all 查看已注册的启动服务,找到docker。保证docker已注册到service中
b、用命令sudo service docker start启动

3)错误:Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.38/containers/json: dial unix /var/run/docker.sock: connect: permission denied
解决:docker命令需使用管理员权限执行,普通用户命令前添加sudo。也可以把当前用户添加到docker用户组中,参考【3、启动docker进程】中的命令。

4)错误:docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout.
解决:替换国内docker源和重新安装对应的GPG密钥

附1:Docker官方镜像和GPG密钥

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

附2:Windows10开启linux子系统(WSL 2)相关文档:

https://docs.microsoft.com/zh-cn/windows/wsl/install-win10#manual-installation-steps
https://my.oschina.net/somereasons/blog/3022420
https://docs.microsoft.com/en-us/windows/wsl/install-manual#download-using-powershell

参考:

1、https://www.cnblogs.com/wt7018/p/11880666.html
2、https://github.com/Microsoft/WSL/issues/2702
3、https://github.com/microsoft/WSL/issues/2288
4、https://www.cnblogs.com/forward/archive/2012/01/10/2318483.html
5、https://www.runoob.com/docker/ubuntu-docker-install.html

你可能感兴趣的:(docker,linux子系统,windows子系统,ubuntu)