Docker错误:没有这样的容器:friendlyhello

SL5*_*net 13 docker

我正试图停下来并移除一个码头工人 - 容器.

我从docker turorial part1开始,现在是第2部分:https://docs.docker.com/get-started/part2/#run-the-app

我从那里复制了源.它也可以在这里找到: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
Run Code Online (Sandbox Code Playgroud)

BTW解决方案:我转到linux容器(在docker图标上右击> 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
Run Code Online (Sandbox Code Playgroud)

kak*_*ali 11

名称是没有可用friendlyhello的容器docker run -p 4000:80 friendlyhello,因为您只是使用运行容器,这friendlyhello是映像的名称,而不是容器的名称。

要么给它象下面这样的名字运行容器: -

docker run -p 4000:80 --name SOMENAME friendlyhello
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以使用以下命令停止并删除该容器

# container stop
docker container stop SOMENAME

# container removal
docker rm -f SOMENAME
Run Code Online (Sandbox Code Playgroud)

或者,如果没有在未给容器命名的情况下运行,则必须在命令中使用容器ID来停止和删除,即使在其他各种命令中,您也将使用ID来引用该容器


Von*_*onC 8

教程显示:

$ docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED
1fa4ab2cf395        friendlyhello       "python app.py"     28 seconds ago
Run Code Online (Sandbox Code Playgroud)

您尚未向容器添加名称(标记),因此必须使用其ID来阻止它:

docker container stop 1fa4ab2cf395
Run Code Online (Sandbox Code Playgroud)

friendlyhello图像的名称,而不是容器.

看到docker run --name给它起个名字.

如果您没有姓名,您将获得身份证 docker ps -a

OP增加:

使用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 
Run Code Online (Sandbox Code Playgroud)

这是预期的:停止会使容器处于"退出"状态,当您想要调试未经您同意而停止的容器时这很方便!

然后,您可以执行操作以docker container rm <ID>docker ps -a列表中重新进行操作.

请注意,如果您已启动容器docker run --rm ...,则停止将停止直接删除(删除)容器.

  • @kakabali在这里查看所有其他`docker container xxx`命令:https://docs.docker.com/engine/reference/commandline/container/ (2认同)