我有以下 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/