GVKun编程网logo

docker-compose up时出现“地址已在使用中”错误(docker address already in use)

15

如果您想了解docker-composeup时出现“地址已在使用中”错误的相关知识,那么本文是一篇不可错过的文章,我们将对dockeraddressalreadyinuse进行全面详尽的解释,并且为您

如果您想了解docker-compose up时出现“地址已在使用中”错误的相关知识,那么本文是一篇不可错过的文章,我们将对docker address already in use进行全面详尽的解释,并且为您提供关于docker restart容器失败:“已在使用中”,但是没有更多的docker image、docker-compose up 和 docker-compose start 有什么区别?、docker-compose up和docker-compose start有什么区别?、Docker-compose up时报错:的有价值的信息。

本文目录一览:

docker-compose up时出现“地址已在使用中”错误(docker address already in use)

docker-compose up时出现“地址已在使用中”错误(docker address already in use)

我正在尝试使用启动多个docker容器docker-compose up,但出现以下(部分)错误消息:

Recreating 1faf02f5d67e_1faf02f5d67e_1faf02f5d67e_1faf02f5d67e_1faf02f5d67e_ipercroncompose_rabbitmq_1ERROR: for rabbitmq  Cannot start service rabbitmq: driver failed programming external connectivity on endpoint ipercroncompose_rabbitmq_1 (a8ded956e30b922289614bbbc4e4fb773c58688d395895b575a88b638592df94): Error starting userland proxy: listen tcp 0.0.0.0:5672: bind: address already in useERROR: Encountered errors while bringing up the project.

按照https://github.com/docker/docker/issues/8714的建议,我尝试了命令

netstat -pna | grep 5672

导致

(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.)tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      -               tcp6       0      0 :::5672                 :::*                    LISTEN      -               unix  2      [ ]         DGRAM                    15672    -

但是,我在这里看不到任何可以杀死的进程ID。任何想法是什么导致此错误?

答案1

小编典典

以下https://unix.stackexchange.com/questions/106561/finding-the-pid-of-the-
process-using-a-specific-
port,而不是netstat我使用的lsof -i

kurt@kurt-ThinkPad:~$ sudo lsof -i :5672 | grep LISTEN[sudo] password for kurt: beam.smp 953 rabbitmq   52u  IPv6  33026      0t0  TCP *:amqp (LISTEN)

运行后sudo kill 953,我能够运行docker-compose up

docker restart容器失败:“已在使用中”,但是没有更多的docker image

docker restart容器失败:“已在使用中”,但是没有更多的docker image

我首先得到了我的nginx码头工人形象:

docker pull nginx

然后我开始了:

docker run -d -p 80:80 --name webserver nginx

然后我停止了它:

docker stop webserver

然后我尝试重新启动它:

$docker run -d -p 80:80 --name webserver nginxdocker: Error response from daemon: Conflict. The container name "/webserver" is already in use by container 036a0bcd196c5b23431dcd9876cac62082063bf62a492145dd8a55141f4dfd74. You have to remove (or rename) that container to be able to reuse that name..See ''docker run --help''.

好吧,这是一个错误。但实际上,现在容器列表中没有任何内容:

docker container listCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

为什么重启nginx镜像失败?如何解决?

答案1

小编典典

这是因为

  • 您已使用--name开关。
  • 容器已停止且未移除

你发现它停止了

docker ps -a

您可以使用以下命令简单地启动它:

docker start webserver

编辑:替代方法 如果您想每次使用以下命令启动容器,

docker run -d -p 80:80 --name webserver nginx

然后使用以下之一:

方法1: 使用--rm开关,即容器一旦停止就会自动销毁

docker run -d -p 80:80 --rm --name webserver nginx

方法2: 在停止容器之后,在启动当前使用的命令之前,将其显式删除。

docker stop <container name>docker rm <container name>

docker-compose up 和 docker-compose start 有什么区别?

docker-compose up 和 docker-compose start 有什么区别?

每当我执行

docker-compose start 
docker-compose ps

我看到状态为“UP”的容器。如果我做

docker-compose up -d

我会看到更多详细信息,但它会具有相同的状态。这两个命令有什么区别吗?

docker-compose up和docker-compose start有什么区别?

docker-compose up和docker-compose start有什么区别?

如何解决docker-compose up和docker-compose start有什么区别??

(https://docs.docker.com/compose/reference/start/)

启动服务的现有容器。

(https://docs.docker.com/compose/reference/up/)

构建,(重新)创建,启动并附加到服务的容器。

除非它们已经在运行,否则此命令还将启动所有链接的服务。

docker-compose up命令汇总每个容器的输出(本质上是docker-compose logs -f)。当命令退出时,所有容器都将停止。运行docker-compose up -d将在后台启动容器并使它们继续运行。

如果已有用于服务的容器,并且在创建容器后更改了服务的配置或映像,请 docker-compose up通过停止并重新创建容器(保留装入的卷)来获取更改。为防止Compose获取更改,请使用该--no-recreate标志。

有关完整的CLI参考:https ://docs.docker.com/compose/reference/

解决方法

每当我执行

docker-compose start 
docker-compose ps

我看到状态为“ UP”的容器。如果我做

docker-compose up -d

我将看到更多详细信息,但状态相同。这两个命令之间有什么区别吗?

Docker-compose up时报错:

Docker-compose up时报错:

Docker-compose up时报错:

ERROR: yaml.scanner.ScannerError: mapping values are not allowed here
in "./docker-compose.yml", line 2, column 9

解决

出现这个错误的是因为yaml格式不正确,谷歌定义的yaml格式太严格了,每个冒号后面都必须带有空格

错误

version:"3"
services:
  web:   
    image: licerlee/friendlyhello:v1
    deploy:
      replicas:5
      resources:
        limits:
          cpus:"0.1"
          memory:50M
      restart_policy:
        condition: on-failure
    ports:
      - "80:80"
    networks:
      - webnet
networks:
  webnet:

正确

version: "3"
services:
  web:
   
    image: licerlee/friendlyhello:v1
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "80:80"
    networks:
      - webnet
networks:
  webnet:

今天关于docker-compose up时出现“地址已在使用中”错误docker address already in use的讲解已经结束,谢谢您的阅读,如果想了解更多关于docker restart容器失败:“已在使用中”,但是没有更多的docker image、docker-compose up 和 docker-compose start 有什么区别?、docker-compose up和docker-compose start有什么区别?、Docker-compose up时报错:的相关知识,请在本站搜索。

本文标签: