将Docker镜像作为容器运行

dockerfile构建Docker映像后,我看到映像已成功构建,但我该怎么办?我不应该将其作为容器运行吗?

1095597 次浏览

运行它的具体方式取决于您是否为图像提供了标签/名称。

$ 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运行参考了解更多信息。

执行以下步骤:

  1. $ docker images

    您将获得带有指定标签的所有本地Docker映像的列表。

  2. $ docker run image_name:tag_name

    如果您没有指定tag_name,它将自动运行带有“最新”标签的图像。

    除了image_name,您还可以指定图像ID(无tag_name)。

这是一个在Docker中运行webdev服务的示例。 图像的名称是应用程序/webdav。您可以从Docker Hub中提取它。

运行这些映像后,您可以在http://localhost:8888/webdav访问WebDAV实例。在内部,文件夹/var/webdav用作WebDAV根目录。

您可以通过以下方式运行此容器:

$ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav
  • 列出Docker镜像

    $ docker images
    
  • If your application wants to run in with port 80, and you can expose a different port to bind locally, say 8080:

    $ docker run -d --restart=always -p 8080:80 image_name:version
    

您可以使用以下方式查看可用图像:

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_iddocker rm container_id停止它。

您还可以使用-rm参数运行容器,因此如果您停止容器,它将自动被删除。

使用以下命令获取您要运行的图像的名称或ID:

docker images

Docker run命令的使用方式如下:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

下面我在指定图像名称或id之前包含了调度、名称、发布、卷和重新启动选项:

docker run -d --name  container-name -p localhost:80:80 -v $HOME/myContainer/configDir:/myImage/configDir --restart=always image-name

在哪里:

--detach , -d        Run container in background and print container ID
--name                Assign a name to the container
--publish , -p        Publish a container’s port(s) to the host
--volume , -v        Bind mount a volume
--restart            Restart policy to apply when a container exits

欲了解更多信息,请查看官方Docker运行参考

我也遇到了同样的问题。我运行了我的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

由于您已经从Dockerfile创建了一个映像,因此该映像当前不处于活动状态。为了工作,您需要在容器中运行此映像。

$ docker images命令描述了本地存储库中当前可用的图像数量。 和

docker ps -a

显示当前可用的容器数量,即活动和退出的容器列表。

在容器中运行映像有两种方法:

$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]

在分离模式下:

-d=false: Detached mode: Run container in the background, print new container id

交互模式下:

-i :Keep STDIN open even if not attached

这是Docker run命令

$ docker run image_name:tag_name

有关Docker运行的更多说明,您可以访问Docker运行参考

这是了解Docker的最好材料。

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

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 run -it --entrypoint /bin/sh用于没有Bash的图像。

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

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

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

$ docker images
REPOSITORY                TAG                 IMAGE ID            CREATED
jamesmedice/marketplace   latest              e78c49b5f380        2 days ago
jamesmedice/marketplace   v1.0.0              *e78c49b5f380*        2 days ago




$ docker run -p 6001:8585 *e78c49b5f380*

要查看Docker主机上所有映像的列表,请运行:

  $ docker images
REPOSITORY          TAG           IMAGE ID            CREATED             SIZE
apache_snapshot     latest        13037686eac3        22 seconds ago      249MB
ubuntu              latest        00fd29ccc6f1        3 weeks ago         111MB

现在你可以在交互模式下将Docker镜像作为容器运行:

   $ docker run -it apache_snapshot /bin/bash

或者,如果您在本地没有任何图像,请在Docker Hub中搜索要下载的图像:

    $ docker search ubuntu
NAME                            DESCRIPTION             STARS  OFFICIAL  AUTOMATED
ubuntu                          Ubuntu is a Debian...   6759   [OK]
dorowu/ubuntu-desktop-lxde-vnc  Ubuntu with openss...   141              [OK]
rastasheep/ubuntu-sshd          Dockerized SSH ser...   114              [OK]
ansible/ubuntu14.04-ansible     Ubuntu 14.04 LTS w...   88               [OK]
ubuntu-upstart                  Upstart is an even...   80     [OK]

使用docker ull命令从存储库中提取Docker映像:

     $ docker pull ubuntu

将Docker镜像作为容器运行:

     $ docker run -it ubuntu /bin/bash

嘿,

只需遵循5个步骤即可将docker镜像作为容器运行

  1. docker build-t dockerImageName.

  2. docker run-t-d-p 3030:3000--name容器名称dockerImageName

您可以指定自己的新容器名称

  1. 检查容器是否正在运行类型

docker ps-all 4.最后打开你的谷歌浏览器,输入localhost:3030

您已经成功地将docker镜像作为容器运行 恭喜:)

  1. 如果docker容器处于退出状态,则键入以下命令以运行

启动Docker容器的名字。