Démarrer avec .NET Core, Docker et Microsoft Container Registry

Dans un article précédent je cite le blog de Scott Hanselman je trouve son article fort intéressant, je souhaite donc creuser .NET Core avec Docker et sur le Microsoft Container Registry. Si cela se trouve, je fais fausse route car ce n'est pas la bonne façon de faire mais je vais faire confiance à Scott.

Sacré Scott, me voilà bien, il me laisse avec trois notions à maitriser avant de comprendre ce qu'il a voulu dire par Démarrer avec .NET Core et Docker et MS Container Registry.

.NET Core : c'est le framework libre et open source et multiplateformes de Microsoft je sais dit comme cela c'est un peu bizarre mais c'est pourtant ça Microsoft s'est tourné depuis longtemps vers l'open source n'en déplaise à certains (en général des linuxiens).

Docker : Je commence à voir ce que c'est : plus léger qu'une machine virtuelle, il permet de faire tourner des applications sur toutes les plateformes. Un Container Docker est facilement déplaçable et installable sur une autre machine.

Alors Microsoft Container Registry c'est quoi ?
Ici : Microsoft Container Registry To replace Docker Hub for new images
On nous dit que Microsoft Container Registry va remplacer Docker Hub alors Docker Hub c'est quoi ? Sacré Scott.

Je dirais que c'est comme un Hub d'Images où l'on peut trouver des Images Docker à déployer. Il faut s'enregistrer ...

Docker Hub s'enregistrer pour récupérer une Image de Docker
MS Container Registry va héberger tous les nouvelles images Container de Windows Server 2019.

Voilà d'après la ligne de commande :

docker run --rm mcr.microsoft.com/dotnet/core/samples:dotnetapp

Scott utilise MS CR au lieu de Docker Hub.

Notez que les équipes Microsoft publient maintenant des images de conteneur sur le MCR (Microsoft Container Registry) afin de pouvoir utiliser le CDN Azure et en tirer un meilleur parti plus rapidement lorsqu'elles sont prochent de nous. Les images commencent à MCR et peuvent ensuite être syndiquées à d'autres registres de conteneurs.

Bon alors c'est quoi le CDN Azure ? Container Docker Network ... pfff.

Donc, peut-on dire que si l'on souhaite des Images Docker à terme, il vaudrait mieux aller les chercher chez MSCR ? Et que sinon on va dans Docker Hub ...

Install Docker

A priori Scott nous dit d'installer "Docker".

https://docs.docker.com/docker-for-windows/install/
Docker - Install Docker Desktop for Windows
Allons y !

Choisir les Containers Windows à la place des Containers Linux
Et puis un petit reboot ...

Docker Desktop 2.0.0.3
Une Icône sur le bureau ...
Docker Desktop
Et une série de messages ...

Docker - Windows 14393 is deprecated

Ca commence problème de compatibilité de version. Cette machine a été crée dans le Cloud il y a quelques mois à peine.
Docker - Hyper-V are not enabled
Là, je crois que je vais cliquer sur Ok ... un petit redémarrage ... Et donc maintenant on aurait les commandes de Scott à exécuter dans la console Docker pour installer et démarrer une application Web ASP.NET sur .NET Core ?

Vous y croyez ? Pas moi.

Docker - An error occurred
Voici le message d'erreur :

Unable to start: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: 'MobyLinuxVM' failed to start.

Failed to start the virtual machine 'MobyLinuxVM' because one of the Hyper-V components is not running.

'MobyLinuxVM' failed to start. (Virtual machine ID 4C3FFD31-1791-4697-B6B9-309DE796DBD5)

The Virtual Machine Management Service failed to start the virtual machine 'MobyLinuxVM' because one of the Hyper-V components is not running (Virtual machine ID 4C3FFD31-1791-4697-B6B9-309DE796DBD5).
at Start-MobyLinuxVM, <No file>: line 296
at <ScriptBlock>, <No file>: line 412
at Docker.Core.Pipe.NamedPipeClient.Send(String action, Object[] parameters) in C:\workspaces\stable-18.09.x\src\github.com\docker\pinata\win\src\Docker.Core\pipe\NamedPipeClient.cs:line 36
at Docker.Actions.DoStart(SynchronizationContext syncCtx, Boolean showWelcomeWindow, Boolean executeAfterStartCleanup) in C:\workspaces\stable-18.09.x\src\github.com\docker\pinata\win\src\Docker.Windows\Actions.cs:line 92
at Docker.Actions.<>c__DisplayClass19_0.<Start>b__0() in C:\workspaces\stable-18.09.x\src\github.com\docker\pinata\win\src\Docker.Windows\Actions.cs:line 74
at Docker.WPF.TaskQueue.<>c__DisplayClass19_0.<.ctor>b__1() in C:\workspaces\stable-18.09.x\src\github.com\docker\pinata\win\src\Docker.WPF\TaskQueue.cs:line 59


Plutôt indigeste, MobyLinuxVM et pourtant j'ai choisi Windows ... et le bouton "Reset to factory defaults" allons-y pourquoi pas, rien n'y fait !



Tentative de relance après le reset :



Ok Ok Start ! Mais rien n'y fait CRASH !

Je relis la première phrase du Post de Scott Hanselman :

It's super easy to get started with .NET Core and/or ASP.NET Core with Docker. If you have Docker installed you don't need to install anything to try out .NET Core, of course.

En effet c'est super facile si vous avez Docker d'installé correctement sur votre machine par contre c'est super chiant d'installer Docker. Voir impossible car ma machine est virtuelle dans l'Azure alors je pense que la solution est plutôt là :

Azure - Instance de conteneur
Have fun? Not fun;-)



2 commentaires:

  1. Salut,
    Pour info et parce que je me suis bien pris la tetê a faire fonctionner Docker sous windows....
    Dans le script python de démarrage de Docker, il faut remplacer la notion de localhost par le nom de la machine, sinon il n'arrive pas à obtenir les infos d'hyper-v....
    Click to fun failed 😂😂
    Merci pour ton blog et continue

    RépondreSupprimer
    Réponses
    1. Merci Julien pour cette info,
      Et oui parce que j'ai cliqué sur l'installe d'Hyper-V et pourtant l'erreur Docker concerne Hyper-V, j'essaye et reviens vous dire si cela a fonctionné pour moi.

      Supprimer

Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.