0 前言

本文参考以下链接:

记录一下 wsl2 原生 linux 方式安装 docker 的过程

1 安装

安装过程中会提示建议使用 docker desktop, 等待 20s 即可

curl https://get.docker.com -o get-docker.sh
sudo bash get-docker.sh

sudo docker info

安装完之后 docker 会默认开机自启, 之后管理 docker 使用 systemctl 即可

sudo systemctl stop|start|restart docker

2 配置

2.1 修改镜像源

proxies 部分可以不用配置, 因为我这里环境特殊, 必须走代理才能访问互联网

sudo vim /etc/docker/daemon.json
# 添加如下内容
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://jc0srqak.mirror.aliyuncs.com",
    "http://hub-mirror.c.163.com"
  ],
  "proxies": {
    "http-proxy": "http://proxy1.bj.petrochina:8080",
    "https-proxy": "http://proxy1.bj.petrochina:8080",
    "no-proxy": "localhost,127.0.0.0/8"
  }
}

sudo systemctl daemon-reload
sudo systemctl restart docker
sudo docker info # 应看到镜像仓库信息和代理信息

2.2 docker-compose

使用安装脚本完后会默认安装 docker-compose-plugin, 可以使用 docker compose 调用, 如果你更习惯使用 docker-compose, 可以手动添加一下软连接

sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/sbin/docker-compose
sudo docker-compose --version

3 测试

最后简单测试一下

mkdir docker; cd docker
cat > docker-compose.yml <<-'EOF'
version: '3.1'

services:

  nginx:
    image: superng6/nginx:debian-stable-1.18.0
    container_name: nginx
    restart: always
    ports:
      - 80:80
EOF

sudo docker-compose up -d

由于 wsl2 解决了和 windows 使用相同的网络 (镜像网络), 所以可以直接通过 windows 端浏览器访问 http://localhost 即可跳转到 docker 中运行的 nginx 容器

以上