我有以下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
在我的VM中,我执行了以下操作:
docker build -t ubuntu1404/djangoapp .
成功。
如何运行泊坞窗图像? 图片或容器在哪里?
我已经尝试过运行
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
时,没有任何内容显示
答案 0 :(得分:14)
您必须提供容器必须处理的命令。
示例: sh
你可以尝试:docker run -ti yourimage sh
( - ti用于保持终端打开)
如果要启动守护程序(如服务器),则必须输入以下内容:
docker run -d yourimage daemontolaunch
使用docker help run
获取更多选项。
您还可以在Dockerfile中使用CMD instruction设置默认行为,这样您就不必在每次要运行它时都将此命令提供给容器。
编辑 - 关于容器移除:
容器和图像不同。 容器是图像的实例。 您可以从同一图像中运行多个容器。
当运行的进程终止时,容器会自动停止。 但是容器没有被删除(只是停止了,所以你可以重新启动它)。 但是如果你想删除它(删除容器不会删除图像),你有两种方法可以做:
通过向--rm
添加docker run
选项,在流程结束时自动将其删除。
使用docker rm
命令手动删除它,并为其提供容器ID或其名称(在删除容器之前必须先停止容器,为此使用docker stop
。
有用的命令:
使用docker ps
列出容器。 -q仅显示容器ID,-a显示甚至已停止的容器。
更多here。
编辑2:
如果您没有尝试,This也可以帮助您发现码头工具。
答案 1 :(得分:5)
如何在建立泊坞窗后测试容器或图像?
为了测试你可以添加写bash脚本来完成工作http://docker-blog.jevsejev.io/2016/06/09/docker-image-tests/
顺便说一句,从帖子中我发现它与标题中的问题不符。
所以,为根据标题来到这里的灵魂添加链接......
答案 2 :(得分:0)
从https://github.com/dgroup/docker-unittests/releases下载最新的阴影距离:
wget https://github.com/dgroup/docker-unittests/releases/download/s1.1.1/docker-unittests-app-1.1.1.jar
使用测试定义* .yml文件。
version: 1.1
setup:
- apt-get update
- apt-get install -y tree
tests:
- assume: java version is 1.9, Debian build
cmd: java -version
output:
contains:
- openjdk version "9.0.1"
- build 9.0.1+11-Debian
- assume: curl version is 7.xxx
cmd: curl --version
output:
startsWith: curl 7.
matches:
- "^curl\\s7.*\\n.*\\nProtocols.+ftps.+https.+telnet.*\\n.*\\n$"
contains:
- AsynchDNS IDN IPv6 Largefile GSS-API
- assume: Setup section installed `tree`
cmd: tree --version
output:
contains: ["Steve Baker", "Florian Sesser"]
java -jar docker-unittests.jar -f image-tests.yml -i openjdk:9.0.1-11
https://i.stack.imgur.com/DSv72.png