如何在docker build之后测试容器或图像?

Kim*_*cks 24 docker dockerfile

我有以下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
Run Code Online (Sandbox Code Playgroud)

在我的VM中,我做了以下事情:

docker build -t ubuntu1404/djangoapp .
Run Code Online (Sandbox Code Playgroud)

它很成功.

如何运行docker镜像? 图像或容器在哪里?

我已经尝试过跑了

docker run ubuntu1404/djangoapp
Run Code Online (Sandbox Code Playgroud)

什么都没发生.

我跑的时候看到的 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
Run Code Online (Sandbox Code Playgroud)

当我跑步时docker ps,没有任何东西出现

vmo*_*eco 18

您必须提供容器必须处理的命令.

示例:sh

你可以尝试:

docker run -ti yourimage sh
Run Code Online (Sandbox Code Playgroud)

(-ti用于保持终端打开)

如果要启动守护程序(如服务器),则必须输入以下内容:

docker run -d yourimage daemontolaunch
Run Code Online (Sandbox Code Playgroud)

使用docker help run了更多的选择.

您还可以在Dockerfile中使用CMD指令设置默认行为,这样您每次要运行它时都不必将此命令提供给容器.

编辑 - 关于容器移除:

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

容器在运行的进程终止时自动停止.但是容器没有被删除(只是停止了,所以你可以重新启动它).但是,如果要删除它(删除容器不会删除图像),您有两种方法:

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

  • 通过使用docker rm命令手动删除它并为其提供容器ID或其名称(容器必须在被删除之前停止,docker stop用于此).

一个有用的命令:

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

更多这里.

编辑2:

如果您没有尝试,也可以帮助您发现docker.

  • 如果要运行apache网络服务器(例如,上面装有django应用),则可以运行** docker run -d ubuntu1404 / djangoapp / usr / sbin / httpd -DFOREGROUND **。(这是我的一个Dockerfile中的文件,我无法提供更实际的实例)。 (2认同)

Ser*_*jev 5

Docker构建后如何测试容器或映像?

为了进行测试,您可以添加write bash脚本来完成工作 http://docker-blog.jevsejev.io/2016/06/09/docker-image-tests/

顺便说一句,从帖子中我看到它与标题中的问题不匹配。

因此,根据标题添加了到达这里的灵魂的链接...