一、listen tcp 0.0.0.0:9001: bind
重启docker 提示: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:9001: bind
解决方法如下:
net stop winnat
net start winnat
二、Pulling invalid reference format
这个错误是镜像名称错误导致的,常见原因包括:
- 在图像名称的末尾使用了冒号
- 在图像名称的末尾使用了破折号
- 使用了类似
ubuntu:$VERSION的定义,但是没有在.env中设置$VERSION变量 - 使用了多个冒号
- 混淆了命令行参数的顺序
三、启动mysql失败
相关提示信息如下:
ERROR: for mysql Cannot start service mysql: Ports are not available: listen tcp 0.0.0.0:3100: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
Encountered errors while bringing up the project.
使用环境是WIN10的 docker桌面版,应该是docker没有操作相关端口的权限。可以按以下步骤进行查询:
-
查询保留端口范围
netsh int ipv4 show excludedportrange protocol=tcp -
重置(管理员)
netsh int ipv4 set dynamic tcp start=49152 num=1638 -
(可选)添加一个注册表项来防止Windows容器主机网络服务(HNS)保留端口
reg add HKLM\SYSTEM\CurrentControlSet\Services\hns\State /v EnableExcludedPortRange /d 0 /f -
重启
四、Window 下 wsl 无法使用 docker-compose
- 配置
wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 1
docker-desktop Running 2
kali-linux Stopped 1
docker-desktop-data Running 2
wsl --set-version Ubuntu-20.04 2
- 在docker中为 ubuntu启用wsl: