web-dev-qa-db-fra.com

Comment exécuter une instance de menu fixe à partir d'un fichier Docker?

J'ai enfin compris comment faire fonctionner Docker.

docker run --name my-forum-nodebb --link my-forum-redis:redis -p 80:80 -p 443:443 -p 4567:4567 -P -t -i nodebb/docker:ubuntu

Je l'ai lié à une instance de Redis, cool.

Ceci est à partir de zéro et je suppose que lorsque j'ai créé l'instance Redis

docker run --name my-forum-redis -d -p 6379:6379 nodebb/docker:ubuntu-redis

il tire l'image d'un repo distant?

NodeBB propose un Dockerfilehttps://github.com/NodeBB/NodeBB/blob/master/Dockerfile Je ne suis pas tout à fait sûr de l'utiliser. Je suppose que je peux en quelque sorte créer un environnement local en appelant ce fichier Dockerfile sur ma télécommande.

Est-ce correct? Si oui, comment puis-je créer l'instance locale pointant vers la télécommande?

39

Téléchargez le fichier et à partir du même répertoire, lancez docker build -t <nodebb> .

Cela vous donnera une image sur votre machine locale nommée nodebb à partir de laquelle vous pourrez lancer un conteneur avec docker run -d nodebb

51
Andreas Wederbrand

Vous ne pouvez pas démarrer un conteneur à partir d'un fichier Docker.

Le processus se déroule comme suit:

Dockerfile = = docker build] => Image Docker = [docker run] => Conteneur Docker

Pour démarrer (ou exécuter) un conteneur, vous avez besoin d'une image. Pour créer une image, vous devez créer le fichier Dockerfile [1].

[1]: vous pouvez aussi docker import une image d'une archive ou encore docker load.

26
Auzias

Alors que les réponses ci-dessus étaient utilisables, cela m'a vraiment aidé, alors je le mets aussi ici.

De la documentation :

Au lieu de spécifier un contexte, vous pouvez transmettre un seul fichier Docker dans l'URL ou diriger le fichier via STDIN. Pour diriger un fichier Docker à partir de STDIN:

$ docker build - < Dockerfile

Avec Powershell sous Windows, vous pouvez exécuter:

Get-Content Dockerfile | docker build -

Lorsque la construction est terminée, exécutez la commande:

docker image ls

Vous verrez quelque chose comme ça:

REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
<none>                     <none>              123456789        39 seconds ago      422MB

Copiez votre identifiant IMAGE actuel, puis exécutez

docker run 123456789

Où le numéro à la fin est l'ID d'image réel de l'étape précédente

Si vous ne voulez pas vous souvenir de l’identifiant de l’image, vous pouvez marquer votre image par

docker tag 123456789 pavel/pavel-build

Qui marquera votre image comme pavel/pavel-build

8
Pavel Janicek