docker - docker build 后如何测试容器或镜像?

标签 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

在我的虚拟机中,我执行了以下操作:

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 用于保持终端打开)

如果你想启动一个守护进程(比如一个服务器),你必须输入类似的内容:

docker run -d yourimage daemontolaunch

使用 docker help run 获得更多选项。

您还可以使用 CMD instruction 设置默认行为在你的 Dockerfile 中,这样你就不必每次运行它时都向你的容器提供这个命令。

编辑 - 关于移除容器:

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

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

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

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

一个有用的命令:

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

更多 here .

编辑 2:

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

关于docker - docker build 后如何测试容器或镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30159783/

相关文章:

go - 推荐的 Docker 项目结构

django - Kubernetes:Django 和 Postgres 容器不通信

Docker Compose : deploying different services from docker-compose. yml 到不同的主机集

Docker 复制命令失败

python - docker中的 flask : different relative import in Dockerfile build and docker-compose

linux -/lib64/ld-linux-x86-64.so.2 : No such file or directory error

docker - 为在 Docker 中运行的 Graylog2 服务器自动创建 UDP 输入?

docker将文件从一个容器复制到另一个容器?

docker - Mattermost 凭证在哪里设置?

bash - 无法从Docker容器退出