当我在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服务本身

sudo service docker restart

希望它也适用于你!

其他回答

如果你有同样的问题,并且是在Windows上,只是一个旁注:

在我的情况下,进程在我的方式只是grafana-server.exe。因为我首先下载了二进制版本并双击可执行文件,现在它作为一个服务由用户SYSTEM启动,我不能taskkill(没有权限)

我必须进入Windows的“服务管理器”,搜索“Grafana”服务,并停止它。此后,端口3000不再被占用。

希望这能有所帮助。

我今天下午升级了我的码头机,遇到了同样的问题。我尝试重新启动docker,但没有运气。

最后,我不得不重新启动我的电脑,它工作了。绝对是个bug。

改变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"

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

Sudo服务redis-server停止

@DmitrySandalov的回答:我在8080上运行tomcat/java,它需要继续运行。看看船坞。Yml文件并将8080的条目更改为我选择的另一个条目。

nginx:
  build: nginx
  ports:
    #- '8080:80' <-- original entry
    - '8880:80'
    - '8443:443'

完美的工作。(唯一的问题是,如果我更新项目,更改将被删除,因为它来自外部回购。)