近期我发现我的手机上空间都已经占满了。128G内存根本不够用,光相片、视频就占了20多个G,加上微信也有40多个G,现在一个手机动辄就4K,5K,我一台电脑也就4K,5K。所以诞生了想把相片存在电脑上的想法,手机上有小米自带的相册,可以显示地图、显示人脸等。电脑上的新版照片和旧版照片也都不是很好使用。于是开始使用单机版的程序,功能有限,而且不支持AI识别等。想到以后相片会越来越多,不光我的手机,家里人的手机也一样,是个时候考虑买一台家用存储NAS了。看过很多NAS自带的相册管理程序,也各有各的不足。最后想到了第三方。我使用过很多第三方的相册系统,MT-Photos、PhotoPrism、immich,对比下来最终选择了immich。三款系统最终对比以后有时间再进行测评。
我是使用的Docker Desktop安装的(我想的先用自己电脑测试,等买了NAS以后直接到NAS上进行布置)。
跟平时一样,打开电脑,然后打开Docker Desktop,然后等一会儿系统启动后就可以正常使用了。但是今天等待了10多分钟还打不开,而且以前打开内存占用都在800M以上,今天却只有600多M。网页一直打不开。使用telnet 127.0.0.1 2283发现2283端口未打开。
随后,使用重启Docker Desktop、重启电脑,还未解决。更严重的是,原来容器中的4个服务,只启动了3个。immich_server服务没有启动。
重启电脑,Docker Desktop中immich容器启动后,使用docker compose logs -f实时监视:发现immich_server没有启动,日志中只有其他3个的日志。
使用docker compose down删除immich容器。
使用docker compose up -d重新启动immich容器,发现immich_server无法启动,并提示Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:2283 -> 0.0.0.0:0: listen tcp 0.0.0.0:2283: bind: An attempt was made to access a socket in a way forbidden by its access permissions.错误。
显示immich_server的端口号被占用了?我刚打开电脑,怎么会自动启动immich_server呢。况且我也没有设置docker容器自动启动。然后我又Win+R打开cmd使用netstat -aon|findstr 2283查找了一下immich_server的端口号。
发现并没有服务占用2283这个端口。如果执行以上命令发现2283端口号被占用了,可以查看(「链接」)删除占用端口号,查询端口改为2283即可。要是端口号没有被其他服务占用,恭喜你和我遇到的是一个错误。
解决方案:
重新启动NAT网络。首先以管理员身份运行CMD。输入以下命令重新启动:
停止NAT网络:
net stop winnat
启动NAT网络:
net start winnat
重新启动成功:
然后再重新输入docker compose up -d重新启动容器
可以发现,容器正常启动了。
打开Docker Desktop查看,发现一切恢复正常,内存也增加到了800M左右。
打开http://localhost:2283/,发现业务也可以正常打开。
Tags:docker 查看容器状态