root@MTHRC0319N:/home/rouo# docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.75-ga75 docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:8080 -> 0.0.0.0:0: listen tcp 0.0.0.0:8080: bind: An attempt was made to access a socket in a way forbidden by its access permissions. ERRO[0000] error waiting for container: context canceled
时间: 2024-03-21 07:38:46 浏览: 16
这个错误提示是因为端口8080已经被占用了,无法绑定。可以尝试使用其他未被占用的端口,比如8888,然后将命令改为:
```
docker run -it -m 8g -p 8888:8080 liferay/portal:7.4.3.75-ga75
```
这样就可以将容器的8080端口映射到本地的8888端口上了。
相关问题
root@MTHRC0319N:/# docker network ls NETWORK ID NAME DRIVER SCOPE cb0f49845235 bridge bridge local bcedd84cf9c1 host host local 4152b7fcf112 none null local root@MTHRC0319N:/# sudo lsof -i -P -n | grep LISTEN wslconnec 345 rouo 6u IPv4 131357 0t0 TCP 127.0.0.1:6010 (LISTEN) root@MTHRC0319N:/# sudo docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.75-ga75 docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:8080 -> 0.0.0.0:0: listen tcp 0.0.0.0:8080: bind: An attempt was made to access a socket in a way forbidden by its access permissions. ERRO[0000] error waiting for container:
从你提供的信息来看,似乎是端口被占用导致的问题。在你运行 Docker 容器时,指定了将容器的 8080 端口映射到本地的 8080 端口。但是,操作系统可能已经在使用该端口,因此 Docker 无法绑定该端口。你可以使用以下命令检查端口占用情况:
```
sudo lsof -i :8080
```
如果已经有进程在使用该端口,你可以通过停止该进程或更改 Docker 映射端口来解决问题。例如,你可以将容器端口映射到本地的另一个可用端口,如 8081:
```
sudo docker run -it -m 8g -p 8081:8080 liferay/portal:7.4.3.75-ga75
```
root@MTHRC0319N:/# docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.75-ga75 docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:8080 -> 0.0.0.0:0: listen tcp 0.0.0.0:8080: bind: An attempt was made to access a socket in a way forbidden by its access permissions. ERRO[0000] error waiting for container:
这个错误提示和上一个类似,意味着端口 8080 已经被其他程序占用了,导致 Docker 无法将它绑定到容器中。
你可以参考上一个回答中的解决方法,尝试修改容器的端口或者查找并杀死占用端口的进程。如果还是无法解决,可以检查一下防火墙的配置,将需要的端口开放。
另外,你可以使用以下命令查看系统中已经被占用的端口:
```
sudo lsof -i -P -n | grep LISTEN
```
这个命令会列出所有正在监听的端口,你可以查找其中是否有占用了 8080 端口的进程。