web-dev-qa-db-fra.com

Mettre à jour max_map_count pour l'hôte Mac du conteneur Docker ElasticSearch

J'utilise ce conteneur pour démarrer elasticsearch dans docker. Conformément au manuel je dois mettre à jour max_map_count pour démarrer le conteneur

Sudo sysctl -w vm.max_map_count = 262144

mais .. Je peux le mettre à jour dans mon hôte (conteneur) APRÈS l'avoir démarré alors que je ne peux pas le démarrer. Est-ce que je fais quelque chose de mal?

ERREUR: bootstrap vérifie l'échec des zones de mémoire virtuelle max. Vm.max_map_count [65530] probablement trop faible, augmentez à au moins [262144]

Si j'essaie de le faire sur ma machine hôte (qui est Mac), j'obtiens l'erreur suivante.

sysctl: oid inconnu 'vm.max_map_count'

Le moteur Docker installe Lunix VM où tous les conteneurs sont en cours d'exécution. La commande pour augmenter la limite doit donc être exécutée pour l'hôte Linux, pas pour le Mac.

Comment puis-je accéder à Linux VM via un terminal installé par le moteur Docker?

17
Alexey Strakh

Sur Docker Toolbox

Si vous êtes dans la boîte à outils Docker, essayez le client Docker à partir du terminal, puis effectuez les configurations:

docker-machine ssh
Sudo sysctl -w vm.max_map_count=262144
exit

Sur Docker pour Mac:

Le paramètre vm_max_map_count doit être défini dans la machine virtuelle xhyve:

$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.AMD64-linux/tty

S'il vous demande un nom d'utilisateur et un mot de passe, connectez-vous avec root et pas de mot de passe.

S'il n'a qu'un écran vide, appuyez sur RETOUR.

Configurez ensuite le paramètre sysctl comme vous le feriez pour Linux:

sysctl -w vm.max_map_count=262144

Quittez par Control-A Control- \.

Voir les documents ici .

Persistance

Dans certains cas, cette modification ne persiste pas lors des redémarrages de la machine virtuelle. Ainsi, tandis que screen 'd, éditez le fichier /etc/sysctl.d/00-Alpine.conf et ajoutez le paramètre vm.max_map_count=262144 à la fin du fichier.

34
Octavio Soto

Sur le dernier Docker pour Mac (version 18.06.0-ce-mac70):

$ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

Sur l'écran vierge, appuyez sur RETOUR.

Configurez ensuite le paramètre sysctl comme vous le feriez pour Linux:

sysctl -w vm.max_map_count=262144

Quitter par Control-A Control- \

16
Charith