Windows安装Linux子系统
Windows中Linux子系统(Ubuntu)使用问题
问题记录
安装Ubuntu后启动docker服务报错
报错:
Cannot connect to the Docker daemon at tcp://0.0.0.0:2375. Is the docker daemon running?
启动docker,如启动失败查看失败原因
# 启动docker
service docker start
# 查看失败原因
systemctl status docker.service
# docker客户端连接HOST取消设置
unset DOCKER_HOST
常见失败原因:
docker启动配置文件路径:/lib/systemd/system/docker.service
docker启动配置daemon.json路径:/etc/docker/daemon.json(可能不存在,可直接创建,与docker.service配置搭配使用)
- Service has no ExecStart=, ExecStop=, or SuccessAction=. Refusing.
- 查看上面具体问题说明,这个只是通用语
- is running问题
- 设置了客户端连接daemon的地址,导致docker服务地址与连接地址不一致
- 取消HOST设置:unset DOCKER_HOST
- 或者修改daemon服务地址比如tcp协议地址(可以远程访问),注意需要确认端口号开放
- 下图为一些不当的瞎几把操作(unset,export DOCKER_HOST......)
systemctl start docker服务报错
报错:
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
问题原因:未安装systemctl导致
解决方案:安装systemctl,以下安装方式在Ubuntu子系统使用成功
执行以下2条命令:
sudo daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
exec sudo nsenter -t $(pidof systemd) -a su - $LOGNAME
安装ssh服务无法使用外部客户端连接
解决方案:
使用127.0.0.1:22登录
修改ssh配置/etc/ssh/sshd_config
# 修改允许root连接
PermitRootLogin yes
# 修改允许通过密码连接
PasswordAuthentication yes
然后重启服务即可:service ssh --full-restart
安装docker启动MySQL等服务局域网无法访问
原因及解决方案:
- docker使用的网络默认为桥接模式:bridge,简单起见可使用host模式(使用宿主机的网络)
- Windows访问子系统的服务需进行端口转发,将子系统的ip及端口在Windows系统上做一次转发
# 将本地6379端口转发到子系统的对应端口(示例172.17.192.103为子系统IP地址)
netsh interface portproxy add v4tov4 listenport=6379 listenaddress=* connectport=6379 connectaddress=172.17.192.103 protocol=tcp
# 查询端口转发配置
netsh interface portproxy show all
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2021-03-13 MySQL调优参数配置
2021-03-13 InnoDB存储引擎