Docker Install 在 Windows 子系统中的 Ubuntu 里的环境
Windows 10 开启子系统后,在应用商店安装 Ubuntu。
bash
# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
# 官方源太慢了,这里使用 aliyun 的源来安装
sudo apt-get update
# apt-get 可以使用https库
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
# 添加docker的使用的公钥
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 添加docker的远程库
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
# 安装docker-ce
sudo apt-get install -y docker-ce
# 启动 docker(检查 docker 安装成功:docker version)
sudo service docker start
# 设置 docker 开机自动启动 (启动之前先安装 sysv-rc-conf)
sudo sysv-rc-conf docker on
sudo sysv-rc-conf containerd.service on
这个 Ubuntu 中没有 systemctl 命令来启动 docker, 取而代之的是 经典的 SysV init(sysvinit)系统。
Systemd command | Sysvinit command |
---|---|
systemctl start ServiceName | service ServiceName start |
systemctl stop ServiceName | service ServiceName stop |
systemctl restart ServiceName | service ServiceName restart |
systemctl status ServiceName | service ServiceName status |
systemctl enable ServiceName | chkconfig ServiceName on |
systemctl disable ServiceName | chkconfig ServiceName off |
安装 sysv-rc-conf
在这个 ubuntu 版本中,使用 sysv-rc-conf 来代替 chkconfig,所以使用之前需要先安装 sysv-rc-config。 对应上面的命令就变成了:
bash
sysv-rc-conf ServiceName on
sysv-rc-conf ServiceName off
在 ubuntu-18.04.3 版本,安装 sysv-rc-conf 时,报了如下的错:E: Unable to locate package sysv-rc-conf(无法定位 sysv-rc-conf 包)。解决方法如下:
bash
# 打开sources.list文件
sudo vi /etc/apt/sources.list
# 在sources.list文件最后一行中添加如下一列文本
deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse
sudo apt-get update
sudo apt-get install sysv-rc-conf
以非 root 用户管理 Docker
安装到上面的步骤后,就已经完成了安装,但是,此时启动,停止 docker 都只能在命令前面添加 sudo 或者使用 root 用户,太麻烦了,所以有以下步骤可选:
bash
# 创建docker组。
sudo groupadd docker
# 将您的用户添加到docker组中。
sudo usermod -aG docker $USER
# 注销并重新登录,以便重新评估您的组成员身份。
# 如果在虚拟机上进行测试,可能需要重新启动虚拟机以使更改生效。
# 在桌面 Linux 环境(如 X Windows)上,完全注销会话,然后重新登录。
# 在 Linux 上,您还可以运行以下命令来激活对组的更改:
newgrp docker
# 验证您是否可以在docker没有sudo(命令前面不要加 sudo)
docker run hello-world
# 此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条消息并退出。
# 如果您sudo在将用户添加到docker组之前最初运行 Docker CLI 命令,您可能会看到以下错误,这表明您的~/.docker/目录由于sudo命令而使用不正确的权限创建。
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
# 要解决此问题,请删除~/.docker/目录(它会自动重新创建,但所有自定义设置都将丢失),或使用以下命令更改其所有权和权限:
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
配置 aliyun 镜像加速器
参考在 CentOS 环境下的安装教程