如何在Docker构build之后testing容器或图像?

我有以下的Dockerfile

############################################################ # Purpose : Dockerize Django App to be used in AWS EC2 # Django : 1.8.1 # OS : Ubuntu 14.04 # WebServer : nginx # Database : Postgres inside RDS # Python : 2.7 # VERSION : 0.1 ############################################################ from ubuntu:14.04 maintainer Kim Stacks, kimcity@gmail.com # make sure package repository is up to date run echo "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe" > /etc/apt/sources.list run apt-get update # install python # install nginx 

在我的虚拟机内部,我做了以下工作:

 docker build -t ubuntu1404/djangoapp . 

这是成功的。

我该怎么做运行docker图像? 图像或容器在哪里?

我已经试过跑步了

 docker run ubuntu1404/djangoapp 

什么都没发生。

我运行docker images时看到的内容

 root@vagrant-ubuntu-trusty-64:/var/virtual/Apps/DockerFiles/Django27InUbuntu# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu1404/djangoapp latest cfb161605c8e 10 minutes ago 198.3 MB ubuntu 14.04 07f8e8c5e660 10 days ago 188.3 MB hello-world latest 91c95931e552 3 weeks ago 910 B 

当我运行docker ps ,什么也没有显示出来

你必须给你的容器必须处理的命令。

例如: sh

你可以尝试:

 docker run -ti yourimage sh 

(-ti用于保持terminal打开)

如果你想启动一个守护进程(如服务器),你将不得不input如下所示:

 docker run -d yourimage daemontolaunch 

使用docker help run更多的选项。

你也可以在你的Dockerfile中用CMD指令设置一个默认的行为,所以你不必在每次运行它的时候都把这个命令给你的容器。

编辑 – 关于容器移除:

容器和图像是不同的。 容器是图像的一个实例。 您可以从相同的图像运行多个容器。

当它运行的进程终止时,容器自动停止。 但容器不会被删除(只是停下来,所以你可以重新启动它)。 但是,如果你想删除它(删除容器不会删除图像),你必须做的事情:

  • 通过向--rm docker run添加--rm选项,在进程结束时自动删除它。

  • 通过使用docker rm命令手动删除它,并为其提供容器标识或名称(容器必须在被移除之前停止,使用docker stop来执行此操作)。

有用的命令:

使用docker ps列出容器。 -q仅显示容器ID,-a显示甚至停止的容器。

更多在这里 。

编辑2:

这也可以帮助你发现docker,如果你没有尝试。

如何在Docker构build之后testing容器或图像?

为了testing你可以添加写作bash脚本,将做这个工作http://docker-blog.jevsejev.io/2016/06/09/docker-image-tests/

顺便说一句,从post中我发现它不符合标题的问题。

所以,给那些根据标题来到这里的灵魂添加了链接…