1 | # 添加镜像相关信息 |
1 | # 添加镜像相关信息 |
Docker Error: Error: Os { code: 6, kind: Uncategorized, message: "No such device or address" }
Error: Os { code: 6, kind: Uncategorized, message: "No such device or address" }
程序在开发环境中运行一切正常,排除了文件挂载问题,一直没有头绪。
排错过程中我忽略了一个问题,进行调试的时候使用的命令是 docker run -it
给容器分配了伪终端,其实问题就出现在这里。
程序运行时需要调用 tty 或访问标准输入输出(如 /dev/tty)设备。当没有分配伪终端时,这些设备根本不存在,因此就报出了 No such device or address 的错误。
使用 docker run -t
创建容器
1 | services: |
Dockerhub 在中国的访问速度不佳,我们通常需要使用代理来进行加速。
Windows Docker 是基于 WSL 运行的,并不是直接运行在我们的 Windows 系统之上。
通常我们设置代理会使用 127.0.0.1 作为代理的主机地址,但是在 WSL 中 127.0.0.1 已经成为了 WSL Linux 的回环地址,无法链接到运行在 Windows 上的代理服务。
安装 WSL 后,系统会生成一个虚拟的网卡:
打开 PowerShell (cmd), 输入 ipconfig
1 | PS C:\Users\program-03> ipconfig |
vEthernet (WSL) 就是 WSL 的默认地址,开启代理的局域网访问功能。
设置 Docker Proxy 为 http://172.22.144.1:10811