当我在Docker项目中运行Docker -compose up时,它失败了,并显示以下消息:

启动userland代理时错误:监听tcp 0.0.0.0:3000:绑定:地址已在使用

netstat -pna | grep 3000

显示了这个:

tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      -  

我已经试过docker-compose down了,但没用。


当前回答

在运行之前:docker运行-d——name oracle -p 1521:1521 -p 5500:5500 qa/oracle 我只是把端口改为docker run -d——name oracle -p 1522:1522 -p 5500:5500 qa/oracle

这对我来说很有效!

其他回答

当我试图启动一个新的容器时,我得到了下面的错误

监听TCP 0.0.0.0:8080: bind:地址已被使用。

查看8080端口上运行的进程:

Netstat -tulnp |握把 8080

我得到了下面的输出

[root@ip-112-x6x-2x-xxx.xxxxx.compute.internal (aws_main) ~]# netstat -tulnp | grep 8080 tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN **12749**/java [root@ip-112-x6x-2x-xxx.xxxxx.compute.internal (aws_main) ~]#

run

击杀-9 12749

然后尝试重新启动容器,它应该可以工作

改变network_mode:“bridge”到“host”。

这与

version: '2.2'
services:
  bind:
    image: sameersbn/bind:latest
    dns: 127.0.0.1
    ports:
      - 172.17.42.1:53:53/udp
      - 172.17.42.1:10000:10000
    volumes:
        - "/srv/docker/bind:/data"
    environment:
      - 'ROOT_PASSWORD=secret'
    network_mode: "host"

我已经用另一个端口运行了集装箱,比如……8082: -)

如果redis服务器作为一个服务启动,当你使用kill -9 <process_id>或sudo kill -9 ' sudo lsof -t -i:<port_number> '时,它会自动重启。在这种情况下,您需要使用以下命令停止redis服务。

Sudo服务redis-server停止

在您的情况下,是其他进程正在使用端口,正如评论中所指出的,sudo netstat -pna | grep 3000帮助您解决了这个问题。

而在其他情况下(我自己遇到过很多次),大多数情况下是相同的容器在其他实例中运行。在这种情况下,docker ps非常有用,因为我经常让相同的容器在其他目录中运行,然后在其他地方再次尝试运行,在那里使用相同的容器名称。

docker ps如何帮助我:

docker rm -f $(docker ps -aq)是我用来删除所有容器的简短命令。

编辑:增加如何docker ps帮助我。