Faire tourner docker dans une VM AZURE Windows Server 2016
Il arrive d'obtenir une erreur à la fin de l'installation de docker dans Azure. Pour régler ce problème, il faut autoriser le port tcp/2375 (port à configurer dans le fichier daemon.json) dans le firewall Windows :
netsh advfirewall firewall add rule name="Allow Docker" dir=in action=allow program="C:\windows\system32\docker.exe"
Ensuite, il faut redémarrer le service docker pour prise en compte :
restart-service docker en ps
DSC dans un nanoserver
https://blogs.msdn.microsoft.com/powershell/2017/02/17/managing-security-settings-on-nano-server-with-dsc/
Installer docker sur un serveur Offline (sans accès Internet)
Comme j'ai pas mal galéré pour installer et faire fonctionner docker sous Windows Server, je partage un petit mode opératoire pour le faire proprement sur un serveur qui n'a aucun accès à Internet (mais ça serait trop simple!) comme on en rencontre souvent dans les entreprises.
Etape 1 : Installer Windows Server Standard à partir de l'ISO dans une VM ou sur un serveur physique
Etape 2 : Installer obligatoirement tous les correctifs disponibles avant d'installer autre chose sur le serveur. Cette étape est très importante! Et redémarrer !
Etape 3 : Installer les rôles hyper-v et containers et redémarrer.
Etape 4 : Il faut avoir accès à Internet pour télécharger docker donc il faut l'installer soit sur un poste Windows 10 soit sur une VM Azure Windows Server 2016 donc préparer votre serveur online suivant le mode opératoire ci-dessous :
https://docs.docker.com/docker-for-Windows/
Etape 5 : télécharger docker depuis le poste connecté à Internet - Ouvrir une console PS et saisir Invoke-WebRequest https://get.docker.com/builds/Windows/x86_64/docker-1.13.0.zip -UseBasicParsing -OutFile docker.zip
Etape 6 : copier docker.zip sur votre serveur offline et dézipper le tout dans un répertoire précis (c:\ program files\docker ou f:\docker)
Etape 7 : ajouter dans le path et le path system le répertoire docker (par exemple f:\docker)
Etape 8 : enregistrer le service dockerd : dockerd --register-service
Etape 9 : démarrer le service docker : start-service docker et tester si tout va bien via le commande docker info
Etape 10 : comme votre serveur est offline, impossible de récupérer les images sur docker automatiquement. Il faut les récupérer depuis votre poste connecté à Internet. Pour cela : lancer la commande "docker pull nanoserver/iis" puis "docker save nanoserver/iis -o c:\temp\nanoiis.tar". cela permettra de récupérer l'image sous forme d'un fichier archive.
Etape 11 : copier le fichier nanoiis.tar sur votre serveur Offline et saisir la commande "docker load -i c:\temp\nanoiis.tar". C'est long mais c'est normal, le fichier fait plus d1 Go...
Etape 12 : vérifier que l'image est OK ("docker images") et lancer un container nanoserver IIS : "docker run --name nanoiis1 -p 8080:80 -it nanoserver/iis cmd"
et un deuxième : "docker run --name nanoiis2 -p 8081:80 -it nanoserver/iis cmd"
et vérifier dans "docker ps" que les containers sont bien démarrés!
C'est fini.
Résoudre les problèmes de communication avec un container docker sous Windows Server
Docker sous Windows permet de faire du PAT Network pour diffuser ses containers en dehors de l'hôte qui les héberge. C'est très pratique car chaque conteneur peut avoir son propre port.
Tout cela se fait simplement via le commutateur -p <port public>:<port container>. Le container sera joignable via l'IP de l'hôte : <port public> de l'extérieur. Il n'y a rien à configurer sauf que la plupart du temps ça ne passe pas et plus particulièrement dans une VM Azure car il y a conflit entre l'étendue IP par défaut de docker et l'étendue des réseaux Azure.
Pour régler ça, il faut ouvrir une console PS en mode admin et saisir :
- Stop-Service docker
- Get-ContainerNetwork | Remove-ContainerNetwork
- Get-NetNat | Remove-NetNat
- Get-VMSwitch | Remove-VMSwitch
- aller dans le répertoire qui héberge dockerd.exe et saisir dockerd --fixed-cidr="192.168.1.1/24"
- essayer de lancer un container avec mappage de port :
docker run --name testnano -p 8080:80 -it nanoserver/iis cmd
- ensuite arrêter le process dockerd et démarrer le service docker : "start-service docker"
Le site iis par défaut sera diponible via l'adresse IP privée docker 192.168.1.x et via l'adresseHote:8080
Lorsque l'on spécifie le commutateur -p sous Windows Server 2016, une règle FWG est positionnée automatiquement.
"> Docker : récupérer l'adresse IP d'un conteneur
La commande magique est :
docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" <nomConteneur>
Tout pour commencer à travailler sur Docker avec Windows
Même si vous ne savez pas encore ce que signifie les conteneurs et Docker, il st vraiment temps de vous y mettre. Docker inc. et Microsoft sont partenaires et les briques techniques sont disponibles depuis quelques mois.
Pour l'installation sous Windows Server 2016 :
https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-windows-server
Pour débuter avec des images IIS ou .Net Core :
https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-images
Pour aller plus loin :
https://blog.docker.com/2016/09/dockerforws2016/
Bons tests!
Publier le portail Azure Stack via du NAT
https://azurestack.blog/2016/12/expose-portal-azurestack-through-nat/
Tout pour tester les conteneurs sous Windows 2016
C'est ici :
https://stanislas.io/2016/08/03/guide-rapide-pour-bien-debuter-avec-les-conteneurs-windows-server-2016-et-docker/
ARM
Azure Resource Management au coeur de la stratégie Azure et Azure Stack ... Et chez Microsoft IT
https://www.microsoftevents.com/profile/form/index.cfm?PKformID=0x896079b086
Le ZENFONE MAX D'ASUS
Une bonne surprise pour un téléphone qui va coûter 249 €. Asus met le paquet sur l'autonomie qui manque cruellement à certains téléphones haut de gamme.
http://www.clubic.com/internet/actualite-797906-asus-zenfone-max-autonomie-trois-jours.html
Un bon choix pour un téléphone sans abonnement.