web-dev-qa-db-ja.com

Dockerビルド後にコンテナまたはイメージをテストする方法は?

私は次の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, [email protected]

# 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イメージを実行するにはどうすればよいですか?イメージまたはコンテナーはどこですか?

私はすでに実行しようとしました

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を実行すると、何も表示されません

24
Kim Stacks

コンテナで処理する必要があるコマンドを指定する必要があります。

例:sh

あなたが試すことができます:

docker run -ti yourimage sh

(-tiは端末を開いたままにするために使用されます)

デーモン(サーバーなど)を起動する場合は、次のように入力する必要があります。

docker run -d yourimage daemontolaunch

その他のオプションについては、docker help runを使用してください。

また、Dockerfileで CMD命令 を使用してデフォルトの動作を設定できるため、実行するたびにコンテナにこのコマンドを与える必要がありません。

EDIT-コンテナの削除について:

コンテナとイメージは異なります。コンテナは、イメージのインスタンスです。同じイメージから複数のコンテナを実行できます。

コンテナは、実行中のプロセスが終了すると自動的に停止します。ただし、コンテナは削除されません(停止しただけなので、再起動できます)。ただし、削除したい場合(コンテナを削除しても画像は削除されません)、次の2つの方法があります。

  • --rmオプションをdocker runに追加して、プロセスの最後に自動的に削除します。

  • docker rmコマンドを使用して手動で削除し、コンテナIDまたはその名前を指定します(削除する前にコンテナを停止する必要があります。これにはdocker stopを使用します)。

便利なコマンド:

docker psを使用して、コンテナーをリストします。 -qはコンテナIDのみを表示し、-aは停止したコンテナも表示します。

もっと こちら

編集2:

This は、試していない場合にdockerを発見するのにも役立ちます。

18
vmonteco

Dockerビルド後にコンテナまたはイメージをテストする方法は?

テストするために、仕事をする書き込みbashスクリプトを追加できます http://docker-blog.jevsejev.io/2016/06/09/docker-image-tests/

ところで、投稿から私はそれがタイトルからの質問と一致しないことがわかります。

だから、タイトルに基づいてここに到着した魂のリンクを追加しました...

5
Sergej Jevsejev