web-dev-qa-db-fra.com

Comment tester le conteneur ou l'image après la construction du docker?

J'ai le Dockerfile suivant

############################################################
# 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

Dans ma machine virtuelle, j'ai fait ce qui suit:

docker build -t ubuntu1404/djangoapp .

C'est réussi.

Que dois-je faire pour exécuter l'image docker?Où est l'image ou le conteneur?

J'ai déjà essayé de courir

docker run ubuntu1404/djangoapp

Rien ne se passe.

Ce que je vois quand je lance 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

Quand je lance docker ps, rien n'apparaît

24
Kim Stacks

Vous devez donner une commande que votre conteneur devra traiter.

Exemple: sh

tu pourrais essayer :

docker run -ti yourimage sh

(-ti est utilisé pour garder un terminal ouvert)

Si vous voulez lancer un démon (comme un serveur), vous devrez entrer quelque chose comme:

docker run -d yourimage daemontolaunch

Utilisation docker help run pour plus d'options.

Vous pouvez également définir un comportement par défaut avec instruction CMD dans votre Dockerfile afin que vous n'ayez pas à donner cette commande à votre conteneur chaque fois que vous souhaitez l'exécuter.

EDIT - sur la suppression des conteneurs:

Les conteneurs et les images sont différents. Un conteneur est une instance d'une image. Vous pouvez exécuter plusieurs conteneurs à partir de la même image.

Le conteneur s'arrête automatiquement à la fin du processus qu'il exécute. Mais le conteneur n'est pas supprimé (juste arrêté, vous pouvez donc le redémarrer). Mais si vous souhaitez le supprimer (la suppression d'un conteneur ne supprime pas l'image), vous avez deux façons de procéder:

  • le supprimer automatiquement à la fin du processus en ajoutant --rm option pour docker run.

  • Supprimez-le manuellement en utilisant le docker rm commande et en lui donnant l'ID du conteneur ou son nom (un conteneur doit être arrêté avant d'être supprimé, utilisez docker stop pour ça).

Une commande utile:

Utilisation docker ps pour répertorier les conteneurs. -q pour afficher uniquement les ID des conteneurs, -a pour afficher même les conteneurs arrêtés.

Plus ici .

EDIT 2:

This pourrait également vous aider à découvrir Docker si vous ne l'avez pas essayé.

18
vmonteco

Comment tester le conteneur ou l'image après la construction du docker?

Afin de tester, vous pouvez ajouter un script bash d'écriture qui fera le travail http://docker-blog.jevsejev.io/2016/06/09/docker-image-tests/

Btw, du post, je vois que cela ne correspond pas à la question du titre.

Donc, Ajout d'un lien pour les âmes qui sont arrivées ici en fonction du titre ...

5
Sergej Jevsejev