从dockerfile构建Docker映像后,我看到映像已成功构建,但我该如何处理它呢?我不应该能够运行它作为一个容器吗?


当前回答

列出Docker映像 $ docker图像 如果你的应用程序想在80端口上运行,你可以暴露一个不同的端口来本地绑定,比如8080: $ docker run -d——restart=always -p 8080:80 image_name:version

其他回答

我也有同样的问题。我运行Docker映像,它创建了一个带有特定CONTAINER_ID的容器。我想使用相同的容器:

首先运行Docker映像:

docker run -it -p 8888:8888 -p 6006:6006 -v ~/:/host waleedka/modern-deep-learning

然后列出你做过的所有容器:

sudo docker ps -a

然后选择你想要使用的容器(我的是167ddd6d7f15):

sudo docker start -ai 167ddd6d7f15

具体的运行方式取决于你是否给图像一个标签/名称。

$ docker images
REPOSITORY          TAG                 ID                  CREATED             SIZE
ubuntu              12.04               8dbd9e392a96        4 months ago        131.5 MB (virtual 131.5 MB)

有一个名字(让我们使用Ubuntu):

$ docker run -i -t ubuntu:12.04 /bin/bash

没有名字,只使用ID:

$ docker run -i -t 8dbd9e392a96 /bin/bash

更多信息请参见Docker运行参考。

您可以使用以下命令查看可用的图像:

docker images

然后您可以以分离模式运行,这样您的终端仍然可用。你有几个选项可以使用存储库名称(带或不带标签)或映像ID来运行它:

docker run -d repository
docker run -d repository:tag
docker run -d image_id

然后你可以检查你的容器正在使用

docker ps

docker ps给你一个容器ID。你可以使用它或只使用前2/3个字符进入你的容器使用:

docker exec -it container_id /bin/bash

你可以使用docker stop container_id和docker rm container_id来停止它。

你也可以使用-rm参数运行你的容器,这样如果你停止你的容器,它就会自动被删除。

对于那些有同样的问题,但遇到错误的人

rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"bash\": executable file not found in $PATH"

我添加了一个对我有用的切入点:

docker运行-it——entrypoint /bin/sh来查看没有Bash的图片。

示例(来自已批准的示例):

run -it --entrypoint /bin/sh ubuntu:12.04

参考:https://gist.github.com/mitchwongho/11266726

列出Docker映像 $ docker图像 如果你的应用程序想在80端口上运行,你可以暴露一个不同的端口来本地绑定,比如8080: $ docker run -d——restart=always -p 8080:80 image_name:version