Comparez les prix des domaines et des services informatiques des vendeurs du monde entier

Applicabilité Docker

À l'heure actuelle, j'ai plusieurs serveurs avec un système d'exploitation installé et un logiciel uniquement sur la "glande nue". Les principaux composants sont nginx, php-fpm, ffmpeg Et plusieurs autres outils de codage vidéo. Toutes les heures autour cron Le serveur capture les tâches de conversion vidéo, les exécute et place une vidéo de pointe dans un dossier qui. Puis Nginx Envoie ces vidéos en mode streaming.

Le problème est que je suis très fatigué de synchroniser les fichiers de configuration, mettez à jour le logiciel, détruire le logiciel compilé à partir de la source, etc.

Par conséquent, je pense qu'en premier lieu, je dois diviser les fichiers vidéo et tout le logiciel que j'ai. Les fichiers vidéo seront toujours stockés sur le serveur lui-même. En tant que conteneur de logiciel, je pourrais utiliser OpenVZ. Par conséquent, si je dois mettre à jour le logiciel, je viens de mettre à jour mon modèle OpenVZ et copier cette image + vzctl destroy + vzctl create pour chaque serveur. Mais je ne vois pas de bonnes façons de monter un répertoire avec des fichiers vidéo sur le conteneur. OpenVZ. Je putain NFS, iSCSI Dans mon cas, mauvais, car il devrait y avoir une meilleure façon.

C'est pourquoi je pensais que Docker - bonne décision. Autant que je sache, cela vous permet de connecter des ressources externes à celle-ci, en utilisant uniquement l'appel cli. Par conséquent, je viens de créer un conteneur de médecins avec des outils nginx + fpm + video, Je le distribue à vos serveurs et rejoindre le stockage de fichiers local.

S'il vous plaît écrivez votre avis. C'est un bon moyen d'utiliser la poussière ou ma décision. - Autre?
Invité:

Dominique

Confirmation de:

Il est difficile de répondre à cette question sans informations supplémentaires. Mais voici quelques idées pour le monde Docker.

Tout d'abord, j'essaierais de présenter des images et des conteneurs Docker Plus comme applications que les machines virtuelles. Gérer séparément l'infrastructure hôte des conteneurs Docker. Peut-être qu'il est parfait pour courir Puppet ou Chef sur les hôtes pour contrôler des conteneurs et des dépendances Docker. Dès que vous entrez dans un monde complet du conteneur, vous pouvez vraiment simplifier vos hôtes en exécutant une telle plate-forme comme CoreOS. Mais probablement, je ne commencerais pas avec CoreOS, Si vous commencez simplement à vous familiariser avec Docker.

Divisez vos applications et vos fichiers vidéo (sur ce que vous avez déjà mentionné). Créez uniquement des conteneurs de données qui conservent des fichiers vidéo sur les hôtes. J'aime utiliser

tianon/true

Forme Docker pour ça. Exécutez l'image avec un volume pouvant être enregistré:

docker run -d --name videodata -v /videodata tianon/true

Il semble que vous ayez maintenant au moins une autre image pour le conteneur nginx, PHP-FPM et ffmpeg. Bien que, très probablement, j'essaierais de diviser ces composants en images séparées. Vous pouvez avoir un conteneur PHP-FPM, qui lance votre code et fournit un port ou une prise à utiliser nginx Pour inversion proxy. Ce conteneur utilisera également

--volumes-from

Résistant à l'installation

/videodata

dossier.

docker run -d --name application --volumes-from videodata myorg/myappimage

Ensuite, vous pouvez avoir une image nginx, qui utilise DNS Liens Docker Faire appel à K. PHP-FPM:

docker run -d --name web -p 80:80 --link application:phpfpm myorg/mynginximage

En configuration nginx Vous pouvez directement spécifier le nom DNS

phpfpm

Résoudre l'adresse IP du conteneur d'application.

Le prochain complément à ce sujet sera la détection des services. Vous pouvez remplacer l'image nginx Un tel dispositif comme
https://github.com/jwilder/nginx-proxy
Pour ajouter et supprimer automatiquement des conteneurs d'application lorsqu'ils arrivent et quittent.

Dès que vous commencez à plonger dans le monde Docker Avec plusieurs hôtes, outils et concepts, tels que catalogues de service (
https://github.com/progrium/docker-consul
), ambassadeurs (
https://github.com/progrium/ambassadord
), Enregistrement dynamique du service dans les catalogues (
https://github.com/progrium/registrator
) et équilibrage de la charge (
https://github.com/hashicorp/consul-haproxy
) Ce sera plus intéressant.

Donc, pour répondre à votre question, je pense que vous avez des options d'utilisation autorisées. Docker. Mais je ne pense pas que le mélange OpenVZ et Docker - Vraiment bonne idée. Vous voulez probablement quand même.

Babette

Confirmation de:

Je pense que vous avez besoin d'outils de gestion de la configuration telles que Puppet, Chef, Ansible ou CFEngine.

Avec ces outils, vous créez des modèles de configuration, qui peuvent ensuite être appliqués sur plusieurs serveurs.

Fondamentalement, lorsque vous avez créé votre système de configuration dans le système de gestion de la configuration, vous exécutez une commande sur tous les serveurs, qui applique ensuite la configuration.

Pour répondre aux questions, connectez-vous ou registre