使用Debian(WSL2)和Docker进行环境设置

这是在WSL 2上安装Debian时的冷静记录。

安装应用程序

$ sudo apt update && sudo apt dist-upgrade
$ sudo apt install wget curl make git vim
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$ echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.profile
$ curl https://get.volta.sh | bash
$ source ~/.profile
$ brew install tfenv
$ tfenv install latest
$ tfenv use latest
$ volta install node@lts
$ volta install pnpm

与Windows的Docker桌面版协同工作

    1. 设置 | 资源 | WSL集成

 

    启用与其他发行版的集成:在想要使用的发行版上开启。

在WSL上使用Docker Desktop for Windows这个我非常渴望尝试的功能调用。

如果只有一个发行版存在,WSL集成系统将自动启动默认的发行版。

然而,如果有两个以上的情况,必须指定并启用才能与Docker Desktop进行协作。

如果进行此设置,就可以在WSL2上使用docker命令。

WSL2 上的 Docker

由于Docker Desktop收费,选择将Docker安装到WSL2的Debian上。

首先按照官方指示进行操作。Docker Compose可以从这里获取。但是,不能直接在WSL2中运行docker run命令。因此,需要在WSL2中进行以下额外的步骤。

$ touch /etc/fstab
$ update-alternatives --set iptables /usr/sbin/iptables-legacy
$ service docker start

将WSL2上的Docker与PhpStorm连接。

虽然感觉可以通过TCP连接到Docker,但即使进行了配置,仍无法连接。因此,我选择了使用SSH快速连接。

$ sudo apt install openss-server
$ sudo vim /etc/ssh/sshd_config
# 適当にポートやセキュリティ設定を変える
$ sudo service ssh start

似乎有一些潜在的开销,但特别是连接速度慢之类的问题似乎没有感受到,所以应该没问题。

在PhpStorm中,打开“文件”-“设置”-“构建、执行、部署”-“Docker”,选择SSH以连接到Docker。

Docker在WSL2上与PhpStorm的TCP连接。

我之前写过无法联系上的,但经过追踪调查后,我们联系上了。

$ mkdir /etc/systemd/system/docker.service.d
$ sudo vim /etc/systemd/system/docker.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
$ sudo vim /etc/docker/daemon.json
{"hosts": ["tcp://127.0.0.1:2375", "unix:///var/run/docker.sock"]}
$ sudo service docker restart

最后,选择PhpStorm的File | Settings | Build, Execution, Deployment | Docker,然后在引擎API URL中设置http://localhost:2375。

我完全搞不清楚他在做什么……。暂时用SSH应该可以。

以上

如果将来有任何变化,将随时更新。

广告
将在 10 秒后关闭
bannerAds