Outils pour utilisateurs

Outils du site


issue106:c_c

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue106:c_c [2016/03/12 09:08] d52frissue106:c_c [2016/04/18 14:00] (Version actuelle) – créée andre_domenech
Ligne 1: Ligne 1:
-===== 1 ===== +**After having set up my intel NUC (see last month’s article for more information), I started using NGINX and Apache to serve my in-progress web projects. However, setting up various virtual hosts, managing it, and complicated series of dependencies, had me abandon that plan relatively quicklyInstead, switched to Vagrant for few projectsUnfortunately, while setting up a Vagrant system is pretty quick, it’s also heavier than it needs to be resource-wiseInstead, I looked into Docker. This month, I’d like to cover what Docker is, and how I’ve set it up to manage my various web projects.**
-** +
-Near the end of January, I was informed that local retailer would be receiving a shipment of NUC6i5SYH (the i5 Skylake NUC with a 2.5” drive bay). So promptly ordered one with 16GB of DDR4 RAM, 256GB m.2 driveand waited semi-patiently for it to arriveIn this month’s article, I want to cover what I’m using it for, my thoughts on it, and Linux support for Skylake.+
  
-Purpose+Après avoir installé mon NUC Intel (pour plus d'informations, voir l'article du mois dernier), j'ai commencé à utiliser NGINX et Apache comme serveur de mes projets Internet en cours de développement. Toutefois, installer différents hôtes virtuels et les gérer avec un ensemble de dépendances compliquées, m'ont assez rapidement incité à abandonner cette méthode. À la place, je suis passé à Vagrant pour quelques projets. Malheureusement, alors que l'installation d'un système Vagrant est assez rapide, il est bien plus lourd que nécessaire en ce qui concerne les ressources. J'ai donc envisagé Docker. Ce mois-ci, je vais parler de ce qu'est Docker et de comment je l'ai paramétré pour gérer mes différents projets Web.
  
-I ordered the taller model for the 2.5” drive, since I own a few spare drives, in case I need more storage space down the line. The goal is for this to become an “always-on” PC. It hosts a DNS for my internal network, a PXE boot server (for network booting ISOs), and will soon run NGINX + Apache. In order to help with my development work, it is now also hosting my Git repositories, which I can clone and keep up to date from other devices. But that’s not all! I have a 3TB MyBook external USB drive that I keep my larger files on. When I got the NUC, I reformatted it into btrfs, and shared it as a samba share on my network, meaning I can just simply log into the network and download whatever Linux ISO I may need for a virtual machine, or access my design asset library.+**What is Docker?
  
-And, finally, I’ve also set it up with AwesomeWM (and GNOME3) for my desktop usageIt’s currently powering two monitors, and provides PulseAudio loopback for passing my PS4 audio through my PC speakers.+Docker is a way of creating virtualized containers for running software and servicesThe main difference between Docker and Vagrant is that Docker shares the base of the virtualization with all containers. So while Vagrant creates a standalone full-fledged VM, Docker instead creates a VM that uses a shared kernel between all VMs, and is based on LXC.
  
-I realize what some of you are probably thinking: “Can it do all of that?”. The answer (so far at least) is: Yes! I’m probably just as surprised as anyone else - I firmly expected to have to cut back on my list of uses for it. The only point where it fails currently is running GNOME3as there are some Intel driver bugs for Skylake graphics (which required me to disable hardware acceleration)Knowing the Linux community though, the bugs will probably be fixed sooner rather than later. +While it’s difficult to explain the difference between Vagrant and Docker in layman’s terms (as much of the differences are in the details), there are some simple things to noteFor exampleDocker is generally faster to start up, and less resource intensive (as it shares some of the host’s kernel).
-**+
  
-Vers la fin janvier, on m'informé qu'un détaillant local allait recevoir une livraison de NUC6i5SYH (le mini-PC NUC i5 Skylake avec un disque de 2,5”). J'en ai donc rapidement commandé un avec 16 Go de RAM DDR4, un disque de 256 Go, et j'ai attendu à moitié patiemment qu'il soit livré. Dans cet article, je vais décrire pourquoi je l'utilise, mes réflexions, et la compatibilité de Skylake avec Linux.+It does have to run on a Linux machinebut there are tools offered by Docker to easily set it up on Windows or Mac (using base virtual machine to supply the linux kernel).**
  
-Le but+Qu'est-ce que Docker ?
  
-J'ai commandé le plus grand modèle à cause du disque 2.5”, car j'ai déjà quelques disques de rechange, au cas où j'aurais besoin de plus d'espace plus tard. Le but est d'en faire un PC « toujours-allumé ». Il héberge un DNS pour mon réseau interne, un serveur de boot PXE (pour démarrer des ISO par le réseau), et il va bientôt accueillir NGINX et ApachePour m'aider dans mon travail de développeur, il héberge maintenant aussi mes répertoires Git, que je peux dupliquer et mettre à jour à partir de mes autres appareils. Mais ce n'est pas tout ! J'ai un disque externe USB MyBook de 3 To, où je garde mes fichiers les plus grosLorsque j'ai eu le NUCj'ai l'ai reformaté en btrfs, et l'ai partagé sur le réseau avec samba, ainsi je peux simplement me connecter au réseau et télécharger n'importe quelle image Linux dont je pourrais avoir besoin pour une machine virtuelle, ou pour accéder à ma bibliothèque de conception.+Docker est une façon de créer des conteneurs virtualisés pour faire tourner des logiciels et des servicesLa grande différence entre Docker et Vagrant est que Docker partage la base de la virtualisation avec tous les conteneursAinsialors que Vagrant crée une véritable VM (machine virtuelle) indépendanteDocker crée à la place une VM qui utilise un noyau commun partagé par toutes les autres VM et basé sur LXC.
  
-Et, finalement, j'ai installé AwesomeWM (et GNOME3pour mon bureauDeux écrans sont branchés dessus actuellement et il fournit une boucle PulseAudio pour écouter mes fichiers audio PS4 par mes hauts-parleurs de PC.+Alors qu'il est difficile d'expliquer la différence entre Vagrant et Docker en termes simples (l'essentiel des différences réside dans les détails), on peut relever certaines chosesPar exemple, que Docker démarre généralement plus rapidement et consomme moins de ressources (puisqu'il partage le noyau de l'hôte). 
 +Il doit fonctionner sur une machine Linux, mais Docker fournit des outils pour s'installer facilement sous Windows ou Mac (en utilisant une machine virtuelle de base qui fournit le noyau Linux).
  
-Je me rends compte que certains d'entre vous pensent probablement: « Est-ce qu'il peut vraiment faire tout ça ? ». La réponse est (au moins pour l'instant) : oui ! J'en suis le premier surpris ; je m'attendais vraiment à devoir rogner ma liste d'usages. Le seul bémol actuel est de lancer GNOME3, car il y a des bugs sur le pilote Intel pour le cœur graphique de Skylake (qui m'a obligé à désactiver l'accélération matérielle). Mais connaissant la communauté Linux, les bugs vont probablement être corrigés incessamment sous peu. 
  
-** +**Setup
-The Setup+
  
-• 1 x Intel NUC6i5SYH +Docker containers can be assigned to various virtual networks, can expose ports, can run off specific images, and can share folders/files between the host and the guest. My current system is as follows: 
-• 2 x 16GB Kingston HyperX Impact DDR4 SO-DIMM C13 2133 K2 +• Custom network (called “webnet”) 
-• 1 x M.2 Samsung 850 EVO Basic 250GB SSD +• One Docker container running HAProxy, and exposing port 80. Also includes a static IP on webnet
-• Running ArchLinux (64 Bit).+• Multiple docker containers running the nickistre/ubuntu-lamp image, and sharing a host folder with the guest at /var/www/html (default Apache folder). Each has a static IP on the webnet network, but doesn’t expose any ports (as communication is funneled through HAProxy).
  
-Peripherals: +I have set up dnsmasq with a catch-all DNS entry for all subdomains of home.lan. These get forwarded to the local machine at port 80 (which isin turn, passed to the docker HAProxy machine). HAProxy is then used to check which subdomain it is, and (if configured) points it to the correct docker container’s static IP.
-• Anker 7-Port USB 3.0 HUBconnecting: +
-• Keyboard & Mouse +
-• MyBook 3TB +
-• USB surround sound audio card+
  
-I chose ArchLinux because I love the Arch User Repository, and it’s been my distribution of choice for many yearsHowever, Ubuntu (or any other distributionshould offer much the same experienceMaybe with slightly fewer bugs (as Arch is a rolling release). +To illustrate (pelican is a static site generator): pelican.home.lan points to 192.168.1.16 (local machine) via dnsmasq. Once the request arrives, HAProxy checks the configuration file, and then passes the request through to 172.18.0.4:80 (the docker instance running my pelican site). If HAProxy doesn’t have an entry for the domain, it just ends at 172.18.0.(the HAProxy machine).**
-**+
  
-La configuration+Installation
  
-• 1 x Intel NUC6i5SYH +Docker peut être affecté à différents réseaux virtuels, « exposer » des ports, faire tourner des images spécifiques, et partager des fichiers ou dossiers avec l'hôte et les invités. Ma configuration actuelle est : 
-• 2 x 16Go Kingston HyperX Impact DDR4 SO-DIMM C13 2133 K2 +• Un réseau privé (appelé « webnet »). 
-• 1 x SSD M.2 Samsung 850 EVO Basic 250 Go +• Un conteneur Docker utilisant HAProxy et « exposant » le port 80. Il inclut également une IP statique sur webnet.  
-• Système ArchLinux (64 Bit).+• De nombreux conteneurs Docker utilisant l'image nickistre/Ubuntu-lamp et partageant avec les invités un dossier hôte à /var/www/html (le dossier d'Apache par défaut). Chacun d'eux dispose d'une IP statique sur le réseau webnet, mais n'expose aucun port (puisque les communications passent par HAProxy).
  
-Périphériques : +J'ai installé un dnsmasq avec une entrée DNS attrape-tout pour tous les sous-domaines de home.lanIls sont ensuite redirigés vers la machine locale au port 80 (qui à son tour le passe au HAProxy de la machine Docker)HAProxy vérifie alors de quel domaine il s'agit et, s'il est configuré, le renvoie vers l'IP statique du conteneur Docker correspondant.
-• Hub USB 3.0 7 Ports Anker, reliant : +
-• Clavier et souris. +
-• Disque MyBook 3To. +
-• Carte audio USB pour le son surround.+
  
-J'ai choisi ArchLinux car j'adore le Arch User Repository, et c'est ma distribution de prédilection depuis plusieurs annéesCependant, Ubuntu (ou toute autre distributiondevrait pouvoir offrir la même expériencePeut-être avec un tout petit peu plus de bugs (puisque Arch est en mode de mise à jour continue).+Pour illustrer (pelican est un générateur de sites statiques) : pelican.home.lan pointe vers 192.168.1.16 (machine localeau travers de dnmasqUne fois que la requête arrive, HAProxy vérifie le fichier de configuration et envoie la requête à 172.18.0.4:80 (l'instance de Docker dans laquelle tourne le site pelican). Si HAProxy ne connaît pas le domaine, il s'arrête simplement à 172.18.0.2 (la machine du HAProxy).
  
 +**What first?
  
-===== 2 ===== +First, you’ll need to create the network you want to use.
-** +
-My Thoughts+
  
-Overall, this device is pretty much what I expectedIt’s quiet, quick, and graphically powerful enough to do everything I want (when the drivers work, at least)Not to mention smallLooking at the numbers doesn’t do it justice. It’s only about 2% wider/deeper than the coasters I keep on my desk, and the height (SYH model is 48mm, and SYK is 32mm) is really not that noticeable. Personally, if I was going to mount it to something thin using the vesa mount, I would take the SYK model. If you want to use the mount on something else (under a desk, on a wall, etc.) I think you’d be fine with either. That isn’t to say that I think the mount wouldn’t work with the taller model, I just find it may look odd, or make some smaller monitors too back-heavy. +docker network create --subnet=172.18.0.0/16 webnet
  
-For anyone concerned about noise - during the UEFI screen, the fans spin at full blastTo me, it’s no louder than a loud 3.5” mechanical driveThe moment the OS starts, the fans spin down, and almost everything on my desk is louder than the NUCMy external drive is by far the loudest device on my desk now (but even that is easily overpowered by even just quiet music over my speakers).+This creates a new network called webnetwith a possible IP range of 172.18.0.0 to 172.168.255.254. I won’t go into the specifics of the format used hereIf you want to use a different IP rangejust adjust the 172.18 part - it’s unlikely you’ll ever need more than 65534 possible addresses for Docker containersI chose 172.18 because the default docker IP range (which is dynamically allocated in the default network) is 172.17. That way, I should be able to always tell that the IP corresponds to dockerDo not choose the same IP range as your actual local network (typically 192.168).
  
-Nice bonus: The NUC comes with a world plug, meaning it has connectors on the universal power supply that should work anywhere in the world. +The reason why we need the custom network, is simply because the default networks from docker don’t allow assigning static IPs.**
-**+
  
-Mes réflexions+Par où commencer ?
  
-Globalement, cet appareil ressemble beaucoup à ce à quoi je m'attendais. Il est silencieux, rapide, et assez puissant graphiquement pour faire tout ce que je veux (du moins lorsque les pilotes marchent). Je ne parlerai même pas de sa taille. Regarder seulement les chiffres ne lui rend pas justice. Il est seulement 2 % plus large/profond que les dessous de verres que je garde sur mon bureau, et sa hauteur (48 mm pour le  modèle SYH, et 32 pour le SYK) n'est pas si encombrante que ça. Personnellement, si je voulais monter quelque chose de fin avec une monture VESA, je prendrais le SYK. Si vous voulez fixer la monture sur quelque chose d'autre (sous un bureau, sur un mur, etc.), je pense que les deux conviendront. Ce n'est pas pour dire que je pense que la monture ne s'adapterait pas au grand modèle, je trouve simplement que ça ne serait pas beau, ou rendrait les petits écrans trop épais de derrière.+Il faut d'abord créer le réseau que l'on souhaite utiliser.
  
-Pour ceux qui s'inquiètent du bruit, pendant l'écran de démarrage UEFI, les ventilateurs tournent à plein régimePour moi, ce n'est pas plus bruyant qu'un disque mécanique 3,5”Au moment où le système démarre, les ventilateurs ralentissent, et presque tout ce qui est sur mon bureau est plus bruyant que le NUC. Mon disque externe est maintenant de loin l'appareil le plus bruyant du bureau (mais même ceci est facilement couvert par une simple musique douce sortant de mes hauts-parleurs).+docker network create --subnet=172.18.0.0/16 webnet
  
-Bonus sympa : Le NUC est livré avec une prise internationale, c'est-à-dire une fiche d'alimentation qui devrait marcher partout dans le monde.+Cela crée un nouveau réseau appelé webnet avec des adresses IP allant de 172.18.0.0 jusqu'à 172.168.255.254. Je ne vais pas entrer dans les particularités du format utilisé ici. Si vous voulez utiliser une plage différente d'IP, modifiez simplement la partie 172.18 – il est peu probable que vous ayez jamais besoin de plus de 65 534 adresses possibles pour des conteneurs Docker. J'ai choisi 172.18 parce que la plage par défaut des IP docker (qui est allouée dynamiquement dans le réseau par défaut) est 172.17. Ainsi, je serai toujours capable de dire que l'IP correspond à Docker. Ne choisissez pas la même plage d'IP que votre réseau réel (typiquement 192.168).
  
-** +La raison pour laquelle nous avons besoin d'un réseau particulier vient simplement du fait que le réseau par défaut de Docker ne permet pas  d'affecter des IP statiques.
-Enough of the good - most people are probably interested in what it’s lacking. I don’t feel like the port options on the NUC are bad - I do feel like without a hub of some sort, you may run into issues (or simply not have any plugs free for thumb drives). That being said, I always prefer having a hub that I can position closer to me for ease of use (and they aren’t terribly expensive). That being said, there is one port I would have liked to have on the NUC. A USB Type-C Thunderbolt connector. According to rumor, the Skull Canyon model (core i7 model) should have one. Whether this is the case or not, we will have to wait and see. However, with the advent of type-c monitors with USB hubs and integrated power passthrough, it does seem like an odd omission to make. Especially for a device you could technically mount on the back of a monitor, and with type-c, you could reduce the cable clutter immensely.+
  
-I’m sure some people would have preferred to see something besides a mini-displayport plug next to the HDMI. However, as someone who has owned and used a MacBook, I’ve grown accustomed to those adapters (not to mention having plenty lying around).+**How do go about creating my machines?
  
-Lastly, design: I would have preferred the A/C adapter plug to be on the bottom edge of the device, instead of the top. However, based on the layout of the internals (and the mounting capabilities), I’m not sure this would have been possible. +The standard docker command will pretty much always be the same.
-**+
  
-Assez de compliments ! La plupart des gens sont peut-être intéressés par les défauts. Je ne trouve pas que le choix des ports sur le NUC soit mauvais, mais je pense que sans un quelconque hub, vous pourrez avoir des soucis (ou simplement n'avoir plus de ports disponibles pour vos clés). Ceci dit, je préfère toujours avoir un hub que je peux placer plus près de moi pour en faciliter l'usage (et il ne sont pas si chers que ça). Ceci dit, il y a un port que j'aurais voulu avoir sur le NUC : un connecteur USB Type-C ThunderboltSelon la rumeur, le modèle Skull Canyon (avec un core i7) devrait en avoir unVrai ou faux, attendons de voirMais, avec l'arrivée d'écrans de type-C avec des hubs USB et une alimentation intégrée, c'est un oubli étonnant. Surtout pour un appareil que vous pouvez techniquement fixer au dos d'un écran, et avec un type-C, vous pouvez largement réduire le désordre dans les câbles.+docker run --v {SHARE} --net webnet --ip 172.18.0.--name {NAME} {IMAGE}
  
-Je suis sûr que certaines personnes auraient préféré voir quelque chose comme une prise Mini-DisplayPort à côté du HDMIMaisen tant qu'ancien possesseur et utilisateur de MacBookj'ai grandi avec ces adaptateurs (sans parler d'en avoir plein tout autour).+What it does: 
 +• ‘docker run’ fires up a container. 
 +• -d detaches the created container (otherwise all output from the container is automatically printed to the terminal, and closing the terminal will close the docker instance). 
 +• -v {SHARE} - specifies the shared folder, in the format /local/path:/remote/path. For example: -v /home/lswest/web/pelican:/var/www/html 
 +• --net webnet - configures which network the container should use. 
 +• --ip 172.18.0.X - this is the static IP I’m assigning. I like to keep them in a basic order, in order to make adding HAProxy entries easier. If you chose a different IP range in the step above, adjust accordingly. 
 +• --name {name} - this is the name the docker instance will be known asFor example --name pelican. This can be used in the docker start/stop/restart/rm commandsand appears in the listing of docker ps. 
 +• {IMAGE} - this is the image to use for the base of the container. I like the nickistre/ubuntu-lamp imagewhich contains Ubuntu 14.04 and LAMP. There are other images (such as ArchLinux), but since my Digital Ocean servers typically run on Ubuntu, I stuck as close as possible to the real-world environment. The HAProxy image I use is HAProxy:1.5 (official HAProxy image, version 1.5).**
  
-Enfin, le design : J'aurais préféré avoir la prise pour le transfo sur le devant plutôt que derrière. Quoique, si on tient compte de l'agencement intérieur (et des possibilités de fixation), je ne suis pas sûr que ça soit possible.+Comment s'y prendre pour créer mes machines ?
  
-** +La commande standard de Docker sera toujours à peu près la même.
-The last negative thing I have to say about this setup isn’t really a knock at the device itself. Driver support. I realize that the Skylake processors are new, and as such, you can’t expect everything to run perfectly. That being said, having hardware acceleration enabled in the drivers currently causes my 4.4.1-2 kernel to crash. Not X, but the kernel itself. I’ve tried the 3 different acceleration methods (sna, uxa, and glamor), as well as disabling DRI (3d acceleration). I even tried to just enable DRI2. Nothing has completely solved the problem. Disabling 3d acceleration helped delay the crash, but it still occurred. Same with all the typical kernel boot options (intel_iommu=igfx_off, etc). Disabling all acceleration (recommended in the ArchLinux Wiki) has resulted in a usable system - but did require me to switch to AwesomeWM, as GNOME3 was slow (thanks to the integrated effects). Not a big deal for me (as I like AwesomeWM as well), but still slightly frustrating. This is especially so, because I hadn’t had any issues using the previous kernel 4.3.3-3. While I could theoretically roll back to the last kernel, there were plenty of other updates, and it would become a dependency nightmare. For a possible fix, read on.+
  
-Prior to publishing, I was able to find a fix that appears to workAdding the kernel boot parameter i915.enable_rc6=seems to have solved the stability issuesIt does disable powersaving in the i915 drivers, ensuring that the CPU is always running in high performance mode. However, I imagine this step will be necessary only temporarily, until the drivers handle the power states better. I’m leaving the original paragraph in place, for anyone who may be facing similar issues. +docker run -d -v {SHARE} --net webnet --ip 172.18.0.X --name {NAME} {IMAGE}
-**+
  
-Le dernier point négatif que j'ai à remarquer sur cette configuration n'est pas vraiment une attaque contre l'appareil lui-même la compatibilité avec les pilotesJe sais que les processeurs Skylake sont nouveaux, et qu'en tant que tel, vous ne pouvez vous attendre à ce que tout marche parfaitementCeci dit, activer l'accélération matérielle des pilotes fait planter mon noyau 4.4.1-2 actuellement. Pas le pilote X, mais le noyau lui-même. J'ai essayé trois méthodes d'accélération différentes (snauxa, et glamor), et aussi de désactiver le DRI (accélération 3D)J'ai même essayé de seulement activer le DRI2. Rien n'a vraiment résolu le problèmeDésactiver l'accélération 3D a retardé le plantage, mais il est quand même survenuEt il en est de même avec toutes les options usuelles de démarrage du noyau (intel_iommu=igfx_off, etc)Désactiver toute accélération (comme recommandé sur le Wiki de ArchLinux) en a fait un système utilisable, mais qui m'a obligé à passer à AwesomeWM, puisque GNOME3 était lent (à cause des effets intégrés). Ce n'est pas grave pour moi (car j'aime aussi AwesomeWM), mais cela reste toujours un peu frustrantEt ceci spécialement car je n'avais pas eu de problème avec la version antérieure du noyau 4.3.3-3. Même si en théorie je peux revenir au noyau précédent, il y a beaucoup d'autres mises à jour, et ça deviendrait un cauchemar de gérer les dépendances. Pour un possible correctifsuite au prochain épisode.+Ce qu'elle fait : 
 +• « docker run » crée un conteneur. 
 +• -d détache le conteneur créé (sinon toutes les sorties du conteneur seront automatiquement envoyées vers le terminal et la fermeture du terminal fermera l'instance de docker). 
 +• -v{SHARE} donne l'adresse du dossier partagé sous la forme /local/path:/remote/pathPar exemple : -v /home/lswest/web/pelican:/var/www/html. 
 +• --net webnet configure le réseau que doit utiliser le conteneur. 
 +• --ip 172.18.0.X il s'agit de l'IP statique que je donne. J'aime les avoir bien organisés de façon à rendre plus facile l'ajout d'entrées au HAProxy. Si vous choisissez une plage différente dans cette étapeadaptez en conséquence. 
 +• --name{name} c'est le nom sous lequel l'instance du docker sera reconnue. Par exemple -–namepelicanOn peut l'utiliser dans les commandes start/stop/restart/rm et il apparaît dans la liste de docker ps. 
 +• {IMAGE} il s'agit de l'image à utiliser comme base du conteneurJ'aime l'image nickistre/Ubuntu-lamp qui contient Ubuntu 14.04 et LAMP. Il existe d'autres images (telles que ArchLinux) mais, puisque mes serveurs Digital Ocean tournent habituellement sous Ubuntu, j'essaie de rester aussi proche que possible de l'environnement réelL'image du HAProxy que j'utilise est HAProxy:1.5 (l'image officielle de HAProxyversion 1.5)
  
-Avant de publier cet articlej'ai pu trouver une solution qui semble marcher. l'ajout du paramètre i915.enable_rc6=0au démarrage du noyau semble résoudre les problèmes de stabilité. Il désactive la réduction de consommation dans les pilotes i915, assurant que le processeur tourne en permanence en mode haute performance. Cependant, j'imagine que cette étape n'est nécessaire que temporairement, jusqu'à ce que les pilotes contrôlent mieux la gestion de l'alimentation. Je laisse le paragraphe original en place, pour tous ceux qui rencontreraient des problèmes similaires.+**In the case of the HAProxy image (which should be created first)the command will look like this:
  
-===== 3 ===== +docker run -d -v ~/docker-config/haproxy/haproxy:/usr/local/etc/haproxy/haproxy.cfg:ro --net webnet --ip 172.18.0.2 -p 80:80 --name proxy haproxy:1.5
-** +
-Summary:+
  
-Pro +Main differences: 
-Quiet +• -p 80:80 - exposes the guest port 80 to the host port 80 (so visiting 172.18.0.2 in a web browser should spit out the typical 503 error from HAProxy). 
-Powerful/Fast +• -v - in the command above, I just like the actual HAProxy.cfg file into the location for the config for HAProxy. NOTE: editing this file with some text editors (such as vim) will result in HAProxy not accepting the changes. This is due to the inode changing. To fix, just restart the machine with ‘docker restart proxy’. Nano appears to avoid this problem.**
-Light and small +
-World power supply+
  
-Con +Dans le cas de l'image du HAProxy (qui devrait être créée en premier), la commande ressemblera à cela :
-No USB Type-C +
-Positioning of A/C port +
-Mini-Displayport (con for some)+
  
-Overall, I’m extremely happy with the NUCThe driver issues are unfortunate, but don’t really impact my main use-cases (as I could just as easily run it as a headless server). Basically, my list of Pros, while quantity-wise are equal with the cons, I give much more weight and importance to the pro listThe port gripes on the Con list are really not that big of a deal to me, and the drivers should improve as time goes onNot to mention the fact that it had actually been working better previously. +config/haproxy/haproxy:/usr/local/etc/haproxy/haproxy.cfg:ro --net webnet –ip 172.18.0.2 -p 80:80  --name proxy haproxy:1.5
-**+
  
-Résumé:+Différences principales : 
 +• -p 80:80 expose le port invité 80 au port hôte 80 (donc en allant à l'adresse 172.18.0.2 à l'aide d'un navigateur, HAProxy devrait renvoyer une erreur 503) 
 +• -v dans la commande ci-dessus, j'aime bien avoir le fichier de configuration HAProxy original à l'endroit prévu pour la configuration du HAProxy. NOTE : si vous éditez ce fichier avec un éditeur de texte quelconque (tel que vim), HAProxy n'acceptera pas les changements. C'est dû à un changement d'inode [Ndt : fichier d'index]. Pour corriger, redémarrer simplement la machine avec « docker restart proxy ». Il semblerait que l'usage de Nano évite ce problème.
  
-Les plus : +**Autostarting
-Silencieux. +
-Puissant/Rapide. +
-Petit et léger. +
-Chargeur universel.+
  
-Les moins : +If you want the docker containers to always run (after crashing, reboots, or restarts), you can add --restart=always to the run commandThis must be done when creating the container so if you’ve already created one, you’ll need to stop it, remove it (rm), and then recreate it.
-Pas de USB Type-C. +
-Position de la prise d'alimentation. +
-Mini-Displayport (pour certains).+
  
-En conclusion, je suis vraiment content du NUC. Les problèmes de pilotes sont regrettables, mais n'impactent pas mes opérations principales (car je peux l'utiliser facilement comme serveur sans terminal). En gros, même si le nombre des plus est en même quantité que celui des moins, je donne plus de poids et d'importance à la liste des plus. Les critiques sur le port de la liste des moins ne sont pas pour moi si importantes, et les pilotes devraient s'améliorer avec le temps. Sans parler du fait qu'ils ont réellement mieux marché avant.+Does this work for only port 80?
  
-** +The settings for the HAProxy container should never need to change (during docker run). However, if you want to point a domain to, for example, a NodeJS application running on 8000, just adjust the IP in the HAProxy configuration (see below). For example, 172.18.0.6:8000.**
-Cost+
  
-I did not mention cost in this review at all. This is largely for two reasons: +Démarrage automatique
-• Availability - the devices and hardware are pretty new, and as such, you may be limited in where to find it. This can impact the cost/ability to find bargains. +
-• I chose the best performance/quality hardware I could find for a reasonable price (as I had a lot I wanted to do with it). Bargain hunters could easily find cheaper combinations. I.e. using DDR3L memory instead of DDR4.+
  
-Bottom Line+Si vous voulez que les conteneurs Docker soient toujours en fonction (après un crash, un redémarrage du système ou de session), vous pouvez ajouter –restart=always à la commande run. Ceci doit être fait à la création du conteneur. Donc, si vous en avez déjà créé un, vous devez l'arrêter, l'effacer (rm) et le recréer.
  
-Yes, I would recommend it. Caveat: However, only to those who have done their research. Be it into the best distribution for Skylake, or the best model for your purposes (and which hardware to choose). This is not the perfect device for everyone, but if you have a perfect use for it, the NUC is an excellent choice.+Cela ne fonctionne-t-il que pour le port 80 ?
  
-I hope this review/article has been useful to someIf there’s anyone out there who feels overwhelmed by choices and what hardware to select for their NUC - don’t worry. I imagine as time goes onmanufacturers will start marking their hardware as “works with NUC”or retailers will simply start recommending the correct hardware. Barring thatdownload the product brief from Intel for your modeland compare the specs (especially voltageson the deviceIf you have questions or comments (or a fix for the intel drivers!)let me know at lswest34+fcm@gmail.com +Les réglages du HAProxy ne devraient jamais changer (pendant le fonctionnement de Docker)Toutefoissi vous voulez pointer un domaine particulierpar exempleune application NodeJS tournant sur le 8000réglez simplement l'adresse IP dans la configuration du HAProxy (voir ci-dessous). Par exemple172.18.0.6:8000.
-**+
  
-Le prix+**HAProxy Config
  
-Je n'ai pas parlé du tout du prix dans cet article. C'est principalement pour deux raisons : +I’ve saved an example of my configuration herehttp://pastebin.com/1M5DMkF3 
-• Disponibilité les appareils et matériels sont plutôt nouveaux, et les endroits où les trouver peuvent être limités. Ça peut influencer le prix et la disponibilité pour trouver des bonnes affaires. +
-• J'ai choisi le meilleur matériel en terme de performance et qualité, que j'ai pu trouver à un prix raisonnable (comme j'en avais plein, je voulais en tenir compte). Les chasseurs de bonnes affaires pourraient facilement trouver des combinaisons moins chères (comme utiliser de la mémoire DDR3L plutôt que de la DDR4).+
  
-En un mot+Basically, adding new containers is as simple as copying the acl line (#33), the use_backend line (#36), and the backend block (#39-43). Be sure to keep increasing the index numbers (host_test1 would become host_test2, etc.). And give each backend a unique name (and adjust the IP!).**
  
-Ouije vous le recommandeMise en garde toutefoisseulement pour ceux qui ont déjà fait des recherchesMême si avec la meilleure distribution pour Skylakeou le meilleur modèle pour vos besoins (et le matériel à choisir)ce n'est l'appareil parfait pour personnemais si vous avez un cas d'usage parfait pour luile NUC est un excellent choix.+Configuration du HAProxy 
 + 
 +J'ai sauvegardé un exemple de ma configuration ici : http://pastebin.com/1M5DMkF3  
 + 
 +Pratiquementpour ajouter de nouveaux conteneurs on n'a qu'à copier la ligne acl (#33), la ligne use_backend (#36) et le bloc backend (#39-43)Assurez-vous de l'incrémentation des numéros d'étiquettes (host-test1 devient host-test2, etc.). Et donnez à chaque backend un nom unique (et réglez bien l'IP !). 
 + 
 +**How do I make a wildcard dnsmasq entry? 
 + 
 +You can add a single line to your dnsmasq.conf file (typically found at /etc/dnsmasq.conf). It looks like this: 
 + 
 +address=/home.lan/192.168.1.16 
 + 
 +Replace the IP with your ownand the home.lan portion with the domain you’d like (minus any subdomains - so instead of www.google.comit would be google.com). Note, also, that using a real domain here isn’t a good idea, as any requests will be directed to your local machine. So if using google, you’ll never reach the Google homepage again. Hence why I use home.lan.** 
 + 
 +Comment faire une entrée générique pour DNSMASQ ? 
 + 
 +Vous pouvez ajouter une simple ligne à votre fichier dnsmasq.conf (que vous trouverez normalement à /etc/dnmasq.conf). Ça ressemble à ça :  
 + 
 +address=/home.lan/192.168.1.16 
 + 
 +Remplacez l'IP par la vôtre et la partie home.lan avec le domaine de votre choix (sans les sous-domaines, ainsi, à la place de www.google.comil faudra mettre google.com). Notez également qu'il est préférable de ne pas utiliser ici un nom de domaine existant car toute requête sera redirigée vers votre machine locale. Ainsi, si vous utilisez google, il ne vous sera plus possible d'atteindre la page d'accueil de Google. C'est pour cela que j'utilise home.lan. 
 + 
 +**I hope this article was helpful to anyone wondering about Dockerwho has been looking for a better way to host local projects while in development. If you have any questions, or want to share a docker trick of your own, feel free to email me at lswest34+fcm@gmail.com.** 
 + 
 +J'espère que cet article sera utile à ceux qui veulent en savoir un peu plus sur Docker ou ceux qui cherchent une meilleure façon d'héberger des projets locaux en phase de développement. Pour quelque question que ce soit, ou si vous voulez partager vos propres astuces de Docker, n'hésitez pas à m'envoyer un courriel à : lswest34+fcm@gmail.com. 
 + 
 + 
 +**Further Reading 
 + 
 +https://en.wikipedia.org/wiki/LXC 
 +LXC 
 + 
 +https://www.quora.com/What-is-the-difference-between-Docker-and-Vagrant-When-should-you-use-each-one 
 +Docker VS Vagrant 
 + 
 +https://www.docker.com/enterprise 
 +Docker** 
 + 
 +Pour aller plus loin 
 + 
 +https://en.wikipedia.org/wiki/LXC 
 +LXC 
 + 
 +https://www.quora.com/What-is-the-difference-between-Docker-and-Vagrant-When-should-you-use-each-one 
 +Comparaison entre Docker et Vagrant 
 + 
 +https://www.docker.com/enterprise 
 +Docker
  
-J'espère que cet article a été utile à certains. Si quelqu'un ici se sent dépassé par les options et le matériel à choisir pour leur NUC, ne vous inquiétez pas. J'imagine qu'avec le temps, les fabricants vont commencer à étiqueter leur matériel comme « compatible avec le NUC », ou que les distributeurs vont commencer à recommander le bon matériel. Hormis cela, téléchargez la fiche produit d'Intel pour votre modèle, et comparez les caractéristiques (surtout la tension électrique) sur votre appareil. Si vous avez des questions ou des commentaires (ou un correctif pour les pilotes Intel !), écrivez-moi à lswest34+fcm@gmail.com. 
-  
issue106/c_c.1457770124.txt.gz · Dernière modification : 2016/03/12 09:08 de d52fr