Réponses:
La manière spécifique de l'exécuter dépend de si vous avez donné à l'image un tag / nom ou non.
$ docker images
REPOSITORY TAG ID CREATED SIZE
ubuntu 12.04 8dbd9e392a96 4 months ago 131.5 MB (virtual 131.5 MB)
Avec un nom (utilisons Ubuntu ):
$ docker run -i -t ubuntu:12.04 /bin/bash
Sans nom, il suffit d'utiliser l'ID:
$ docker run -i -t 8dbd9e392a96 /bin/bash
Veuillez consulter Docker run reference pour plus d'informations.
docker ps
répertorie les conteneurs, pas les images. Si vous souhaitez créer une image à partir d'un conteneur, vous devez docker commit
. Vous pouvez utiliser le NOM dans le commit (par exemple docker commit _NAME_ _imagename_
)
Procédez comme suit:
$ docker images
Vous obtiendrez une liste de toutes les images Docker locales avec les balises spécifiées.
$ docker run image_name:tag_name
Si vous n'avez pas précisé tag_name
il exécutera automatiquement une image avec la dernière balise.
Au lieu de image_name
, vous pouvez également spécifier un ID d'image (pas de tag_name).
Pour répertorier les images Docker
$ docker images
Si votre application souhaite s'exécuter avec le port 80 et que vous pouvez exposer un autre port à lier localement, par exemple 8080:
$ docker run -d --restart=always -p 8080:80 image_name:version
Vous pouvez voir vos images disponibles en utilisant:
docker images
Ensuite, vous pouvez exécuter en mode détaché afin que votre terminal soit toujours utilisable. Vous avez plusieurs options pour l'exécuter en utilisant un nom de référentiel (avec ou sans balise) ou un ID d'image:
docker run -d repository
docker run -d repository:tag
docker run -d image_id
Ensuite, vous pouvez vérifier que votre conteneur fonctionne en utilisant
docker ps
docker ps
vous donne un ID de conteneur. Vous pouvez l'utiliser ou simplement les 2/3 premiers caractères pour aller dans votre conteneur en utilisant:
docker exec -it container_id /bin/bash
Et vous pouvez l'arrêter en utilisant docker stop container_id
et docker rm container_id
.
Vous pouvez également exécuter votre conteneur avec des -rm
arguments, donc si vous arrêtez votre conteneur, il sera automatiquement supprimé.
Obtenez le nom ou l'id de l'image que vous souhaitez exécuter, avec cette commande:
docker images
La commande Docker run est utilisée de la manière suivante:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Ci-dessous, j'ai inclus les options de répartition, de nom, de publication, de volume et de redémarrage avant de spécifier le nom ou l'identifiant de l'image:
docker run -d --name container-name -p localhost:80:80 -v $HOME/myContainer/configDir:/myImage/configDir --restart=always image-name
Où:
--detach , -d Run container in background and print container ID
--name Assign a name to the container
--publish , -p Publish a container’s port(s) to the host
--volume , -v Bind mount a volume
--restart Restart policy to apply when a container exits
Pour plus d'informations, veuillez consulter la référence officielle de l' exécution Docker .
Voici un exemple pour exécuter un service webdev dans Docker. Le nom de l'image est morrisjobke / webdav . Vous pouvez le retirer de Docker Hub .
Après avoir exécuté ces images, vous pouvez ensuite accéder à l' instance WebDAV à l' adressehttp://localhost:8888/webdav
. En interne, le dossier /var/webdav
est utilisé comme racine WebDAV.
Vous pouvez exécuter ce conteneur de la manière suivante:
$ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav
J'ai eu le même problème. J'ai exécuté mon image Docker et elle a créé un conteneur avec un CONTAINER_ID spécifique. Je voulais travailler avec le même conteneur:
Exécutez d'abord votre image Docker:
docker run -it -p 8888:8888 -p 6006:6006 -v ~/:/host waleedka/modern-deep-learning
Listez ensuite tous les conteneurs que vous avez fabriqués:
sudo docker ps -a
Et sélectionnez le conteneur avec lequel vous souhaitez travailler (le mien est 167ddd6d7f15):
sudo docker start -ai 167ddd6d7f15
Puisque vous avez créé une image à partir du Dockerfile, l'image n'est actuellement pas en état actif. Pour fonctionner, vous devez exécuter cette image dans un conteneur.
La $ docker images
commande décrit le nombre d'images actuellement disponibles dans le référentiel local. et
docker ps -a
indique le nombre de conteneurs actuellement disponibles, c'est-à-dire la liste des conteneurs actifs et sortis.
Il existe deux façons d'exécuter l'image dans le conteneur:
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
En mode détaché:
-d=false: Detached mode: Run container in the background, print new container id
En mode interactif:
-i :Keep STDIN open even if not attached
Voici la commande Docker run
$ docker run image_name:tag_name
Pour plus de précisions sur l'exécution de Docker, vous pouvez visiter la référence de l'exécution de Docker .
C'est le meilleur matériel pour comprendre Docker.
Pour afficher une liste de toutes les images sur votre hôte Docker, exécutez:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
apache_snapshot latest 13037686eac3 22 seconds ago 249MB
ubuntu latest 00fd29ccc6f1 3 weeks ago 111MB
Vous pouvez maintenant exécuter l'image Docker en tant que conteneur en mode interactif:
$ docker run -it apache_snapshot /bin/bash
OU si vous n'avez pas d'images localement, recherchez Docker Hub pour une image à télécharger:
$ docker search ubuntu
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian... 6759 [OK]
dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openss... 141 [OK]
rastasheep/ubuntu-sshd Dockerized SSH ser... 114 [OK]
ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS w... 88 [OK]
ubuntu-upstart Upstart is an even... 80 [OK]
Tirez l'image Docker d'un référentiel avec la commande puller docker:
$ docker pull ubuntu
Exécutez l'image Docker en tant que conteneur:
$ docker run -it ubuntu /bin/bash
$ docker images
REPOSITORY TAG IMAGE ID CREATED
jamesmedice/marketplace latest e78c49b5f380 2 days ago
jamesmedice/marketplace v1.0.0 *e78c49b5f380* 2 days ago
$ docker run -p 6001:8585 *e78c49b5f380*
Pour ceux qui ont eu le même problème, mais qui ont rencontré une erreur comme
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"bash\": executable file not found in $PATH"
J'ai ajouté un point d'entrée qui a fonctionné pour moi:
docker run -it --entrypoint /bin/sh
pour les images sans Bash.
Exemple (tiré de l'exemple approuvé):
run -it --entrypoint /bin/sh ubuntu:12.04
Référence: https://gist.github.com/mitchwongho/11266726
docker ps -a
ne sont pas utiles ici?