# 安装 Docker

# 在 Windows 系统上安装 Docker

# 0. 检查是否安装过 WSL

管理员模式 打开 PowerShell,执行以下命令:

wsl -l -v

image-20230129191822408

看到以下提示,说明没有安装过 WSL,继续往下执行即可。如果安装过并且是 WSL2 就不用重新安装了,否则需要把 1 升级到 2。

image-20230129192049250

如果安装完成,会显示以下提示。

PS C:\Windows\system32> wsl -l -v
Windows Subsystem for Linux has no installed distributions.
Distributions can be installed by visiting the Microsoft Store:
https://aka.ms/wslstore

有可能是这个。

PS C:\Windows\system32> wsl -l -v
NAME      STATE           VERSION
* Ubuntu    Stopped         2

# 1. 安装 WSL2

如果之前没有安装过 WSL,执行以下安装命令,安装 WSL2

wsl --install

等待命令执行完成,看到下面的结果说明执行完成了,重启电脑。

PS C:\Windows\system32> wsl --install
Installing: Virtual Machine Platform
Virtual Machine Platform has been installed.
Installing: Windows Subsystem for Linux
Windows Subsystem for Linux has been installed.
Downloading: WSL Kernel
Installing: WSL Kernel
WSL Kernel has been installed.
Downloading: Ubuntu
The requested operation is successful. Changes will not be effective until the system is rebooted.

重启完成后,会看到以下界面。

我们需要初始化一个 Ubuntu 用的账号和密码。

如果怕忘记,建议设置的简单点,反正就自己用:

账号:dev

密码:123456

image-20230129200145464

# 2. 安装 Docker

进入 Docker Windows Desktop 官网: https://docs.docker.com/desktop/install/windows-install (opens new window)

点击【Docker Desktop for Windows】下载安装文件

image-20230129200918059

安装完成后,双击【Docker Desktop Installer】进行安装。

image-20230129201043535

会自动下载所需要的文件,点击右下角的【Ok】即可。

image-20230129201128658

安装完成后,需要注销重新登陆才生效。

建议重启电脑,保险一点。

image-20230129201352990

# 3. 启动 Docker

在桌面上找到 Docker Desktop 的图标并双击启动。

image-20230129201445130

这里必须选【Accept】。

image-20230129201632363

新手教程,跳过即可。

image-20230129204329008

自此,看到此界面说明安装完成了。

image-20230129204405484

点击右上角的齿轮,进入设置,把【Send usage statistics】前面的勾去掉,然后点击【Apply & restart】。

image-20230129204726990

# 4. Docker 和 hyper-v 冲突问题

VMware、安卓模拟器、Docker 都用到了虚拟化技术,会相互冲突,很蛋疼,还没有什么好的解决方案。

安装新版的安卓模拟器(底层用的 VirtualBox,VB6 开始兼容 Hyper-V),VMware 从 15.5.5 开始兼容 Hyper-V,打开 Windows 功能,检查【Virtual Machine Platform】有没有打开,不然 Docker 会启动不起来。

去设置里改成下图的样子。

image-20230130070602539

参考文献:

Install on Windows | Docker Documentation (opens new window)

Install WSL | Microsoft Learn (opens new window)

Window10同时使用Docker Hyper-v和Android模拟器 - 简书.html (opens new window)

Windows10中,安卓模拟器与docker环境要求的虚拟技术冲突导致电脑蓝屏的解决办法_晓晓白的软件测试进阶之路的博客-CSDN博客_docker和模拟器冲突.html (opens new window)

# 在 Linux 系统上安装 Docker

# 安装整体流程

  1. 在安装新版 Docker 之前,需要先[卸载旧版 Docker 的依赖文件](#卸载旧版 Docker),以免安装的时候产生冲突。
  2. 选择其中一种安装方式进行安装。
  3. 安装完成后,根据需要[设置 Docker](#设置 Docker)。

# 卸载旧版 Docker

由于新版本 Docker 叫做 docker-ce,但是旧版本 Docker 的依赖叫做 docker 或者 docker-engine,如果安装了旧版的 Docker 需要先卸载再安装新的,以免发生冲突。

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

如果之前没有安装旧版 Docker,删除旧版 Docker 的时候看到下图为正常现象。

image-20220924075238053

# 【推荐】方式一:在线安装

该方法需要服务器可以访问互联网的情况下使用。

# 安装 yum-utils 包,该包提供了 yum-config-manager 工具用于设置 yum 源
sudo yum install -y yum-utils
# 添加 Docker 官方 yum 源
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
# 添加阿里云 Docker yum 源,提高国内下载速度
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新 yum 缓存
sudo yum makecache fast
# 安装 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# 方式二:离线安装

当服务器无法访问互联网时,或者网络不通时,可以使用此方法来完成 Docker 的安装。

# 下载 Docker 安装包

先在本地下载 Docker 安装包,然后再上传到服务器上完成安装。

这里以【20.10.18】版本为例:https://download.docker.com/linux/static/stable/x86_64/docker-20.10.18.tgz (opens new window)

如果需要下载其他版本可以到这里下载:https://download.docker.com/linux/static/stable/x86_64/ (opens new window)

# 下载安装脚本

下载【docker.bash】:https://github.com/Jrohy/docker-install/blob/master/docker.bash (opens new window) 下载【install.sh】:https://github.com/Jrohy/docker-install/blob/master/install.sh (opens new window)

找到【Raw】按钮,右键找到【链接另存为...】选项并点击,然后保存到桌面上。

仓库地址:https://github.com/Jrohy/docker-install (opens new window)

# 上传安装包和脚本,开始安装

把安装包【docker-20.10.18.tgz】和安装脚本【docker.bash】和【install.sh】上传到服务器的**同一个目录下**,并进入该目录,执行以下命令:

# 添加执行权限
chmod +x install.sh
# 安装 Docker
./install.sh -f docker-20.10.18.tgz

执行脚本后看到下面的界面说明安装成功了。

image-20220924120018825

# 【不推荐】方式三:脚本一键安装

官方的建议是在开发环境下使用,不建议在生产环境下使用。

这个脚本很方便,不需要用户去参与交互,所有步骤都是自动化完成的,用于快速安装 Docker 环境。

执行以下命令来完成自动化安装:

注意:执行之后可能需要等待几秒才有响应,但是脚本是在执行的。

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

安装成功后,会看到以下界面:

image-20220924121049934

# 设置 Docker

# 启动 Docker 服务

# 启动 Docker 服务
sudo systemctl start docker
# 查看 Docker 是否启动正常, 看到绿色的小红点 active (running) 则说明启动成功
sudo systemctl status docker

# 设置 Docker 开机自启

sudo systemctl enable docker

# 设置 Docker 镜像加速

直接使用官方的地址下载镜像的时候比较慢,可配置国内镜像源提高镜像下载速度。

使用下面命令直接生成配置文件并重启服务,如果你不是第一次安装 Docker,并且之前有自定义过配置文件,也可以直接使用命令 vi /etc/docker/daemon.json 进行修改。

cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ]
}
EOF
# 修改后需要重启 Docker 服务才能生效
systemctl restart docker
# 查看是否修改成功
docker info | grep mirror

# 查看 Docker 版本号

docker -v

# 查询 Docker 详细信息

docker info

参考文献:

Install Docker Engine on CentOS (opens new window)

安装Docker (opens new window)

02-Docker 安装实践 (opens new window)

03-Docker服务基本操作实践 (opens new window)

linux安装 Docker (opens new window)