Docker 安装:Linux 与 Windows
Docker 安装:Linux 与 Windows
把 Docker CE 装到各种环境的记录,Linux 上分 apt 系和 yum 系,Windows 上分 Linux 容器和 Windows 容器两套模式,再加上 docker-compose 和离线导入镜像。命令都按实际跑过的来。
Ubuntu 安装 Docker CE
先配软件源,再装 docker-ce(社区版引擎)、docker-ce-cli(命令行)、containerd.io(运行时守护进程)。
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
装完服务会自动起来,验证:
sudo systemctl status docker
正常的话能看到 Active: active (running)。
CentOS / Rocky Linux 安装 Docker CE
先卸掉系统里旧的 docker 包,再装依赖。device mapper 存储驱动需要 device-mapper-persistent-data 和 lvm2。
sudo yum -y update
sudo yum remove docker docker-client docker-client-latest docker-common \
docker-latest docker-latest-logrotate docker-logrotate docker-engine
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
加 yum 源。官方源在国内慢,可以换阿里源:
# 官方源
sudo yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
# 阿里源(更快)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
装最新版:
sudo yum install -y docker-ce docker-ce-cli containerd.io
要装指定版本,先看可用版本列表,版本字符串取第二列从第一个冒号到第一个连字符之间的部分,例如 24.0.7:
sudo yum list docker-ce --showduplicates | sort -r
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
启动并设开机自启:
sudo systemctl start docker
sudo systemctl status docker
sudo systemctl enable docker
sudo docker version
Windows 安装 Docker Desktop
Windows 上 Docker Desktop 能跑 Linux 容器和 Windows 容器两套模式,装法不同。
Linux 容器模式(基于 WSL 2)
系统要求:Windows 11 21H2 及以上,或 Windows 10 21H1(build 19043)及以上。先把 WSL 2 装好,这是前提,WSL 2 没装好 Docker 会直接报错。
硬件要求:
- 64 位处理器,带二级地址转换(SLAT)
- 4GB 以上内存
- BIOS 里开启硬件虚拟化
步骤:
- 在 Windows 上启用 WSL 2 功能,参考 Microsoft 官方文档。
- 下载并安装 Linux 内核更新包。
- 下载 Docker Desktop,安装时按默认选项一路 next,装完重启。
Windows 容器模式
Windows 容器需要单独准备环境,参考 Windows 容器系统要求,并确保 BIOS 里开启了虚拟化。
装完 Docker Desktop 后,在托盘图标右键里选 "Switch to Windows containers" 切到 Windows 容器模式。
Windows 上常见报错
| 报错 | 解决 |
|---|---|
| Hardware assisted virtualization and data execution protection must be enabled in the BIOS | 进 BIOS 开启虚拟化 |
| The Windows Subsystem for Linux optional component is not enabled | 控制面板 → 程序 → 启用或关闭 Windows 功能 → 勾选 "适用于 Linux 的 Windows 子系统" 和 "虚拟机平台" → 重启 |
| Error response from daemon: open \.\pipe\docker_engine_windows: The system cannot find the file specified | 运行 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V,Containers -All 后重启 |
Linux 安装 docker-compose
docker-compose 用一个配置文件管理多个容器,通过 docker-compose.yml 启停、重启、编排一组容器。它本身不做负载均衡,要负载均衡得另配工具。
# 下载二进制
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证
sudo docker-compose -version
如果提示 docker-compose: command not found,建个软链接:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
离线导入镜像
内网机器拉不到镜像时,用 docker save / docker load 走 tar 包搬运。
# 在能联网的机器上导出
docker pull metabase/metabase:latest
docker save -o metabase_latest.tar metabase/metabase:latest
# 把 tar 包传到离线服务器后导入
docker load -i metabase_latest.tar
# 正常运行(本地 3001 映射容器内 3000)
docker run -d -p 3001:3000 --name metabase --restart unless-stopped metabase/metabase