最近需要做一下springcloud研发,不想装一堆中间件在本地,想跑一下docker,docker desktop不太好用,想直接跑linux虚拟机,有不响装vmware,就像试用下unbuntu On windows。据说可以直接用cmd命令行跑。
方法如下:
- 打开windows应用商店。
-
搜索unbuntu并安装一个版本,我这里装了24.04.1最新版。
-
启动unbuntu on windows,会弹出一个cmd窗口,其实是连接了windows内置wsl的ubuntu系统。首次打开要等初始化。
之后就这个界面了。其实和连接到unbuntu控制台类似,但是使用还是有限制。例如不能使用sysctl做管理,需要用service。而且很多权限受限制,很多操作需要sudo。这里不再多说,自己试试吧。对了,需要确保是使用的wsl 2版本。
-
安装docker-ce
#更新包
sudo apt-get update#安装必要的依赖:
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common#添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg#添加 Docker APT 源
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null#更新包列表并安装 Docker CE
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io#启动 Docker 服务
sudo service docker status
注意,这里启动docker可能会有报错,提示iptables的错误。
failed to start daemon: Error initializing network controller: error obtaining
-
安装并修改iptables
#安装iptables
sudo apt-get update
sudo apt-get install -y iptables#重置iptables规则
sudo iptables -F
sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -X#将iptables用iptables-legacy替换
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy#开启ipv4转发功能
sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf`
完成后,退出重启ubuntu on windows的窗口即可。
-
启动docker sudo service docker start
-
检查docker状态