Ошибка Docker: такого контейнера нет: friendlyhello - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь остановить и удалить докер-контейнер.

Я начал с докурской части 1, теперь часть 2 отсюда: https://docs.docker.com/get-started/part2/#run-the-app

Я скопировал souce оттуда.и его также можно найти здесь: https://gist.github.com/sl5net/8b510bc0d3e00c474575e010003406c1

Здесь вы можете увидеть, как выглядит моя консоль:

Microsoft Windows [Version 10.0.16299.431]
C:\fre\private\docker\test18-05-14_05-27>docker build -t friendlyhello .
Sending build context to Docker daemon   5.12kB
no matching manifest for windows/amd64 in the manifest list entries

BTW решение: я перешел на контейнер linux (щелкните правой кнопкой мыши> contextmenu)на иконке докера)

C:\fre\private\docker\test18-05-14_05-27>docker build -t friendlyhello .
... Successfully built itsdangerous MarkupSafe
Successfully tagged friendlyhello:latest

C:\fre\private\docker\test18-05-14_05-27>docker run -p 4000:80 friendlyhello
 * Running on http://0.0.0.0:80/ (Press CTRL+C to quit)

C:\fre\private\docker\test18-05-14_05-27>docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED    SIZE
friendlyhello       latest              7d4d1e0f78e6        8 minutes ago    151MB
python              2.7-slim            46ba956c5967        9 days ago    140MB

C:\fre\private\docker\test18-05-14_05-27>docker container stop friendlyhello
Error response from daemon: No such container: friendlyhello

C:\fre\private\docker\test18-05-14_05-27>docker rm -f friendlyhello
Error: No such container: friendlyhello

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Контейнер с именем friendlyhello недоступен, поскольку вы просто запускаете контейнер с помощью docker run -p 4000:80 friendlyhello, здесь friendlyhello - это имя изображения, а не имя контейнера.

Либо запустите этот контейнер, дав ему имя, как показано ниже: -

docker run -p 4000:80 --name SOMENAME friendlyhello

В этом случае вы сможете остановить и удалить этот контейнер с помощью приведенной ниже команды

# container stop
docker container stop SOMENAME

# container removal
docker rm -f SOMENAME

или , если не работает без указания имени контейнера, вам придется использовать ID контейнера в командах для остановки и удалениядаже в различных других командах вы будете использовать идентификатор для обозначения того, что con

0 голосов
/ 14 мая 2018

В учебнике показано:

$ docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED
1fa4ab2cf395        friendlyhello       "python app.py"     28 seconds ago

Вы не добавили имя (тег) в свой контейнер, поэтому для его остановки необходимо использовать его идентификатор:

docker container stop 1fa4ab2cf395

friendlyhello - это имя изображения , а не контейнера.

См. docker run --name, чтобы дать ему имя.

Если у вас нет имени, вы получите идентификатор с docker ps -a

ОП добавляет:

с помощью docker stop 8e008ebf3ad7 его нет в списке с помощью: docker container ls buts остается в списке с помощью: docker ps -a

docker stop 8e008ebf3ad7
8e008ebf3ad7
docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS
               NAMES
5227976cb9bb        friendlyhello       "python app.py"     About an hour ago   Up About an hour    0.0.0.0:4001->80/tcp   SOMENAME

docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS
     PORTS                  NAMES
5227976cb9bb        friendlyhello       "python app.py"     About an hour ago   Up About an hour
     0.0.0.0:4001->80/tcp   SOMENAME
8e008ebf3ad7 friendlyhello "python app.py" 6 hours ago Exited (137) About an hour ago 

Ожидается: остановка переведет контейнер в состояние «Exited», что удобно, когда вы хотите отладить контейнер, который остановился без вашего согласия!

Затем вы можете сделать docker container rm <ID>, чтобы извлечь его из списка docker ps -a.

Обратите внимание, что если бы вы запустили свой контейнер с docker run --rm ..., остановка остановила бы , а удалил (удалил) контейнер напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...