如何在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中我发现它不符合标题的问题。
所以,给那些根据标题来到这里的灵魂添加了链接…