Partager votre applicationShare your app

Maintenant que nous avons créé une image, nous allons la partager !Now that we've built an image, let's share it! Pour partager des images de station d’accueil, vous devez utiliser un registre d’ancrage.To share Docker images, you have to use a Docker registry. Le registre par défaut est le Hub Dockr et c’est là que sont issues toutes les images que nous avons utilisées.The default registry is Docker Hub and is where all of the images we've used have come from.

Créer un référentielCreate a repo

Pour envoyer une image, vous devez d’abord créer un référentiel sur le hub d’ancrage.To push an image, first, you need to create a repo on Docker Hub.

  1. Accédez au Hub de l’ancreur et connectez-vous si nécessaire.Go to Docker Hub and log in if you need to.

  2. Cliquez sur le bouton créer un référentiel .Click the Create Repository button.

  3. Pour le nom de référentiel, utilisez getting-started .For the repo name, use getting-started. Assurez-vous que la visibilité est Public .Make sure the Visibility is Public.

  4. Cliquez sur le bouton créer .Click the Create button!

Si vous regardez sur le côté droit de la page, vous verrez une section intitulée commandes de l' ancrage.If you look on the right-side of the page, you'll see a section named Docker commands. Cela donne un exemple de commande que vous devrez exécuter pour effectuer une transmission Push à ce référentiel.This gives an example command that you will need to run to push to this repo.

Commande de l’arrimeur avec l’exemple Push

Envoyer l’imagePush the image

  1. Dans la ligne de commande, essayez d’exécuter la commande Push que vous voyez sur le hub d’ancrage.In the command line, try running the push command you see on Docker Hub. Notez que votre commande utilise votre espace de noms, et non « dockr ».Note that your command will be using your namespace, not "docker".

    $ docker push docker/getting-started
    The push refers to repository [docker.io/docker/getting-started]
    An image does not exist locally with the tag: docker/getting-started
    

    Pourquoi a-t-il échoué ?Why did it fail? La commande Push a cherché une image nommée dockr/Getting Started, mais n’en a pas trouvé une.The push command was looking for an image named docker/getting-started, but didn't find one. Si vous exécutez docker image ls , vous ne verrez pas l’un ni l’autre.If you run docker image ls, you won't see one either.

    Pour résoudre ce problème, vous devez « baliser » votre image existante que nous avons créée pour lui attribuer un autre nom.To fix this, you need to "tag" your existing image we've built to give it another name.

  2. Connectez-vous au hub de l’Ancreur à l’aide de la commande docker login -u <username> .Sign in to the Docker Hub using the command docker login -u <username>.

  3. Utilisez la docker tag commande pour attribuer getting-started un nouveau nom à l’image.Use the docker tag command to give the getting-started image a new name. Veillez à effectuer une permutation <username> avec votre ID d’ancrage.Be sure to swap out <username> with your Docker ID.

    docker tag getting-started <username>/getting-started
    
  4. Essayez à présent d’exécuter à nouveau votre commande Push.Now try your push command again. Si vous copiez la valeur à partir du Hub de l’Ancreur, vous pouvez supprimer la tagname partie, car vous n’avez pas ajouté de balise au nom de l’image.If you're copying the value from Docker Hub, you can drop the tagname portion, as you didn't add a tag to the image name. Si vous ne spécifiez pas de balise, l’ancrage utilise une balise appelée latest .If you don't specify a tag, Docker will use a tag called latest.

    docker push <username>/getting-started
    

    Au lieu de la ligne de commande, vous pouvez également cliquer avec le bouton droit sur la balise image dans la section images de la vue dockr, puis choisir Envoyer..., puis connecter le registre... , puis ancrer Hub.Instead of the command line, you can also right-click on the image tag in the Images section of the Docker view, and choose Push..., then choose Connect registry... and then Docker Hub.

Exécuter l’image sur une nouvelle instanceRun the image on a new instance

Maintenant que votre image a été générée et envoyée dans un registre, essayez d’exécuter l’application sur une toute nouvelle instance qui n’a jamais vu cette image de conteneur !Now that your image has been built and pushed into a registry, try running the app on a brand new instance that has never seen this container image! Pour ce faire, vous allez utiliser la fonction lire avec l’ancrage.To do this, you will use Play with Docker.

  1. Ouvrez votre navigateur pour jouer avec l’ancrage.Open your browser to Play with Docker.

  2. Connectez-vous avec votre compte d’ancrage Hub.Sign in with your Docker Hub account.

  3. Une fois que vous êtes connecté, cliquez sur le lien « + ajouter une nouvelle INSTANCE » dans la barre latérale gauche.Once you're logged in, click on the "+ ADD NEW INSTANCE" link in the left side bar. (Si vous ne le voyez pas, rendez votre navigateur un peu plus grand.) Après quelques secondes, une fenêtre de terminal s’ouvre dans votre navigateur.(If you don't see it, make your browser a little wider.) After a few seconds, a terminal window will be opened in your browser.

    Lire avec l’arrimeur ajouter une nouvelle instance

  4. Dans le terminal, démarrez votre application récemment envoyée.In the terminal, start your freshly pushed app.

    docker run -dp 3000:3000 <username>/getting-started
    

    Vous devriez voir que l’image est extraite et finalement démarrer !You should see the image get pulled down and eventually start up!

  5. Cliquez sur le badge 3000 lorsqu’il apparaît et vous devriez voir l’application avec vos modifications.Click on the 3000 badge when it comes up and you should see the app with your modifications! Hourra!Hooray! Si le badge 3000 ne s’affiche pas, vous pouvez cliquer sur le bouton ouvrir le port et taper 3000.If the 3000 badge doesn't show up, you can click on the Open Port button and type in 3000.

RécapitulatifRecap

Dans cette section, vous avez appris à partager des images en les envoyant à un registre.In this section, you learned how to share images by pushing them to a registry. Vous êtes ensuite allé à une toute nouvelle instance et avez pu exécuter l’image qui a fait l’objet d’un push.You then went to a brand new instance and were able to run the freshly pushed image. Cela est assez courant dans les pipelines CI, où le pipeline crée l’image et l’envoie à un registre, puis l’environnement de production peut utiliser la version la plus récente de l’image.This is quite common in CI pipelines, where the pipeline will create the image and push it to a registry and then the production environment can use the latest version of the image.

Maintenant que vous avez compris, rappelez-vous qu’à la fin de la dernière section, lorsque vous avez redémarré l’application, vous avez perdu tous vos éléments de liste TODO.Now that you've that figured out, recall that at the end of the last section, when you restarted the app, you lost all of your todo list items. Ce n’est évidemment pas une excellente expérience utilisateur. vous allez apprendre ensuite comment rendre les données persistantes entre les redémarrages.That's obviously not a great user experience, so you'll learn next how you can persist the data across restarts!

Étapes suivantesNext steps

Poursuivez avec le didacticiel.Continue with the tutorial!