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


当前回答

要查看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 Pull命令从存储库中拉出Docker映像:

     $ docker pull ubuntu

将Docker镜像作为容器运行:

     $ docker run -it ubuntu /bin/bash

其他回答

由于您已经从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的最好材料。

使用下面的命令获取您想要运行的映像的名称或id:

docker images

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

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

下面在指定映像名称或id之前,我已经包括了dispatch、name、publish、volume和restart选项:

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 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图像 如果你的应用程序想在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