Suis-je en essayant de se connecter à un TLS démon sans TLS?
Je suis en train d'apprendre à propos de Docker, mais je reçois cryptique (pour moi) les messages d'erreur.
Probablement l'exemple le plus simple de ce qui est en train d'imprimer la version de Docker j'ai installé:
$ sudo docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8
OS/Arch (client): darwin/amd64
FATA[0000] Get http:///var/run/docker.sock/v1.16/version:
dial unix /var/run/docker.sock: no such file or directory.
Are you trying to connect to a TLS-enabled daemon without TLS?
Je viens de passer par la guide de l'utilisateur et à la suite de chaque étape exactement, donc je suis surpris de voir que je reçois ce message... Que dois-je faire maintenant?
Je viens de remarquer que si je n'utilise pas sudo
je ne reçois pas le message d'erreur:
$ docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8
OS/Arch (client): darwin/amd64
Server version: 1.4.1
Server API version: 1.16
Go version (server): go1.3.3
Git commit (server): 5bc2ff8
Bien sûr, ce n'est pas une solution que j'ai peut-être besoin d'utiliser sudo
quelque part en bas de la route...
Je viens de trouver une autre page disant "Si vous utilisez OS X alors vous ne devriez pas utiliser sudo
." Je ne sais pas si elles signifient seulement, pour cet exemple, ou en général.
- Question stupide, mais avez-vous commencé le démon docker?
- J'ai suivi le guide de l'utilisateur, donc oui je crois que le démon docker est commencé. Comment puis-je double vérification?
ps aux | grep docker
si le panneau est en marche, vous allez les voir, ou de typedocker
et si il fonctionne il vous affiche la liste des commandes- En fait, vous avez trouvé la solution. Avec boot2docker vous n'aurez plus jamais besoin de sudo avec linux, vous seriez toujours besoin de sudo. C'est parce que boot2docker exécute ces commandes dans une boîte virtuelle qui est configuré pour accéder au démon correctement.
- J'ai été aux prises avec ce problème et en cours d'exécution sans sudo a fonctionné pour moi
- Presque toutes les réponses sont OS X spécifique (ils mentionnent
boot2docker
) bien que OS X n'est pas explicitement mentionné dans la question, ou des balises. Si quelqu'un est intéressé au générique de la réponse s'il vous plaît voir ma réponse. - La dernière mise à jour est correct, fonctionne sans
sudo
!
Vous devez vous connecter pour publier un commentaire.
Pour moi, la course
$(boot2docker shellinit 2> /dev/null)
résolu le problème.Cela va de la sortie de la
boot2docker shellinit
de commande (les troisset -x ...
lignes) dans votre session de terminal, ce qui permet à l'docker
commande de savoir où trouver les boot2docker de la machine virtuelle.Ajoutant
$(boot2docker shellinit 2> /dev/null)
vers le bas de votre~/.bash_profile
fichier assurez-vous que ledocker
de commande est configuré, chaque fois que vous ouvrez votre terminal.Pour les personnes à l'aide de Poissons shell:
boot2docker shellinit ^ /dev/null | source
.Noter que
2> /dev/null
(et le Poisson équivalent^ /dev/null
) sont facultatifs. Comme @pablo-fernandez a suggéré, ce masque laWriting ..
lignes.boot2docker start
avant d'exécuter l'interpréteur de commandes init.J'avais la même erreur sur MacOS avec sudo et sans elle.
J'ai résolu avec:
P. S.: Merci à Alan. J'ai trouvé que cette approche est recommandée dans la documentation officielle.
P. S. 2: Parfois
boot2docker init
peuvent être nécessaires avant d'exécuter les deux commandes (merci Aaron).Dans mon cas (Linux Mint 17) j'ai fait des choses différentes, et je ne suis pas sûr de savoir lequel d'entre eux sont tout à fait nécessaire.
J'absence de paquets d'Ubuntu:
Un utilisateur a été ajouté au groupe
docker
:Commencé démon (openSUSE juste besoin de cela)
Merci\Attribution
Grâce Usman Ismail, parce que c'était peut-être juste que la dernière chose...
Merci aussi à github@MichaelJCole pour la solution qui a fonctionné pour moi, parce que je n'ai pas vérifier le démon quand j'ai lu Usman commentaire.
GitHub commentaire:
Grâce à fredjean.net post pour remarquer les paquets manquants et oublier l'installation par défaut d'Ubuntu instructions de google et sur les autres moyens
Grâce à brettof86s'commentaire à propos de openSUSE
sudo adduser $USER docker
. Astuce pour qu'il prenne effet sur le courant de l'enveloppe ont étécurgroup=$(id -gn) && newgrp docker && newgrp $curgroup
, adapté à partir de superuser.com/questions/272061/...docker.io
recommandeapparmor
etcgroup-lite
et seulement suggèrelxc
, qui a plus que suggère qu'aucun de ces devrait être requis pour l'utilisation de docker. Toutefois, la valeur par défaut du script d'installation de ne pas ajouter des utilisateurs à ladocker
groupe, donc je pensais que c'était la seule partie de cette réponse est obligatoire.sudo docker run hello-world
mais j'ai encore plusieurs erreursERRO[0037] Couldn't run auplink before unmount: exec: "auplink": executable file not found in $PATH
. Après l'installation de aufs-outils (sudo apt-get install aufs-tools
) que l'erreur a disparu, trop.Le soulignement problème est simple: l'absence de l'autorisation de
/var/run/docker.sock
socket de domaine unix.De Démon option de socket chapitre de le Panneau de Commande de Ligne de de référence pour Docker 1.6.0:
Les mesures nécessaires pour accorder des droits à des utilisateurs sont bien décrits dans le Panneau les instructions d'installation de Fedora:
Déconnecter et de se reconnecter pour les modifications ci-dessus prennent effet.
Veuillez noter que le Panneau de paquets de certaines distributions Linux (Ubuntu) sont déjà sur place
/var/run/docker.sock
dans ledocker
groupe qui fait les deux premières étapes ci-dessus inutiles.Dans le cas de mac OS X et
boot2docker
la situation est différente; le démon Docker s'exécute dans une machine virtuelle, de sorte que leDOCKER_HOST
variable d'environnement doit être fixé à cette VM, de sorte que le Support client pourrait trouver le démon Docker. Pour ce faire, exécutez$(boot2docker shellinit)
dans le shell.boot2docker shellinit
et d'autres commandes, c'est que cette commande ne permet pas de faire tout changement lui-même, mais il ne génère (impressions) de commandes, vous devez l'exécuter vous-même. Vous pouvez exécuterboot2docker shellinit
d'abord manuellement, puis copier et exécuter chaque commande à partir de sa sortie. Il est plus facile pour exécuter toutes les commandes en cours d'exécutionboot2docker shellinit
dans un sous-processus (avec$()
syntaxe), car de cette façon, chaque ligne de sortie est automatiquement exécuté comme une commande shell. Voir docs.docker.com/installation/mac/#from-your-command-line là où c'est indiqué dans le détail.sudo service docker status
. Sur mon Ubuntu 14.04, il n'était pas en cours d'exécution après l'installation, ce qui a provoqué l'erreur.Assurez-vous que le démon Docker est en cours d'exécution:
Qu'il fixe pour moi!
sudo service docker start
pour moisystemctl enable docker.service
etsystemctl start docker.service
Pour le système.d utilisateurs de linux (Arch dans mon cas)sudo service docker restart
pour moiEn termes simples, il s'agit à la fois comme serveur et client.
$ docker version
une requête de commande est interne à l'Docker exécutable et de ne pas le démon/service en cours d'exécution.$ docker images or $ docker ps or $ docker pull centos
sont des commandes qui envoient des requêtes vers le démon docker/service en cours d'exécution.docker
ou vous avez utilisésudo
avant la commande, par exemple$ sudo docker images
, elle ne nécessite TLS connectivité.Visite Docker page de documentation Protéger le démon Docker socket.
Défiler un peu vers le haut et trouver
warning section
pour plus de clarté.sudo usermod -a -G docker {username}
Vous devrez effectuer:
Les paramètres suivants résolu le problème:
eval "$(boot2docker shellinit)"
Il est possible que vous n'avez pas la permission de le fichier encore.
Il m'est arrivé après que j'ajoute moi-même à
docker
groupe à l'aide demais pas encore de déconnexion.
Pour résoudre ce problème, vous pouvez soit vous connecter à nouveau, ou de l'utilisation
sg docker "docker <subcommand> ..."
avant de vous déconnecter.Si vous êtes dans le groupe
docker
dans/etc/group
, vous devriez être en mesure de l'exécuter sans avoir à taper de mot de passe.https://dingyichen.wordpress.com/2015/02/05/docker-dial-unix-varrundocker-sock-no-such-file-or-directory-are-you-trying-to-connect-to-a-tls-enabled-daemon-without-tls/
Sur Ubuntu après l'installation de lxc-docker vous devez ajouter votre utilisateur au docker groupe d'utilisateurs:
C'est à cause de la prise d'autorisations de fichier:
NE PAS EXÉCUTER usermod SANS "-un" comme le suggère l'une de l'autre, des commentaires ou elle va effacer vos groupes supplémentaires de réglage et il suffit de laisser le "docker" groupe
C'est ce qui va arriver:
TLDR: C'est mon Python meetup group passé ce problème lorsque j'ai été l'exécution d'une clinique sur l'installation de docker et la plupart des utilisateurs sont sur OS X:
exécuter le
export
commandes de la sortie vous donne, alorsdois vous dire qu'elle fonctionne.
Le Contexte (ce que nous a apporté le problème)
J'ai dirigé une clinique sur l'installation de docker et la plupart des participants avaient OS X, nous avons été confrontés à ce problème et j'ai dépassé sur plusieurs machines. Voici les étapes que nous avons suivi:
Tout d'abord, nous avons installé homebrew (oui, certains participants ne l'avez pas):
Puis nous avons eu en fût, que nous avons utilisé pour installer virtualbox, puis utilisé en infusion pour installer docker et boot2docker (tous nécessaires pour OS X) Ne pas utiliser sudo pour les bistrots.:
La Solution
C'était quand nous avons couru dans le problème à la personne d'ici est. La suite, il fixe. Je comprends
init
une fois en face, mais vous aurez probablement à exécuterup
chaque fois que vous démarrez le panneau:Puis quand
up
a été exécuté, il donne plusieursexport
commandes. Copiez-collez et exécutez-les.Enfin
docker info
devrait vous dire qu'il est correctement installé.À La Démo
Le reste des commandes devrait démo il. (sur Ubuntu, je sudo.)
Alors vous devriez être sur un shell root dans le conteneur:
Retour à votre utilisateur native de bash:
Look pour le environ 12 chiffres hexadécimaux (0-9 et a-f) de l'identificateur de sous "numéro du Conteneur", par exemple
456789abcdef
. Vous pouvez ensuite valider votre modification et le nom de quelques nom descriptif, commedescriptivename
:Tout ce que vous avez besoin pour exécuter Docker sur Linux Ubuntu/Mint:
En option, vous devrez installer deux dépendances supplémentaires si le ci-dessus ne fonctionne pas:
sudo service docker start
a résolu le problème sur mon Ubuntu 14.04.J'ai essayé les solutions ici, et boot2docker n'a pas fonctionné.
Ma solution: Désinstaller boot2docker sur le Mac, installer un Centos 7 machine virtuelle dans VirtualBox, et de travailler avec menu fixe à l'intérieur de cette machine virtuelle.
Pour moi les étapes suivantes travaillé:
docker run hello-world
échoue avec ce socket erreur comme dans la question, mais l'exécutionsudo docker run hello-world
travaillé.docker
groupe,sudo adduser user docker
. Ensuite, vous devez redémarrer votre ordinateur, ou utilisersu - user
(vérifier à l'aide degroups
commande si sont dans ledocker
groupe).Après,
hello-world
commencé à travailler.Ma réponse est basée sur Comment puis-je utiliser docker sans sudo? qui explique ce qui va mal.
Pour ce qu'il vaut, j'ai essayé toutes les solutions à cette question et, en cette question relative à la et aucun n'a résolu mon problème jusqu'à ce que je l'ai désinstallé et ré-installé VirtualBox. Ce processus de mise à niveau de la VirtualBox à partir de la version 4.2.16 à 4.3.22 (ma précédente avait été couché inutilisée sur le système pendant quelques mois).
Puis
boot2docker
etdocker
travaillé sans autres réglages.J'ai eu le même problème. Un simple
service docker restart
résolu le problème.J'ai eu le même problème et essayé différentes choses pour résoudre ce problème, modifiant l' .bash_profile fichier, l'enregistrement et à l'extérieur, sans aucune chance. En fin de compte, le redémarrage de ma machine fixe.
Assurez-vous qu'il est
dans votre
fichier.
J'ai fait face à la même question quand j'ai été la création de Docker images de Jenkins. Il suffit d'ajouter l'utilisateur à la
docker
groupe, puis redémarrez le Panneau des services et dans mon cas, j'ai dû redémarrer Jenkins services.C'était l'erreur que j'ai obtenu:
Le démon Docker se lie à une socket Unix au lieu d'un port TCP. Par défaut que le socket Unix est la propriété de la racine de l'utilisateur et d'autres utilisateurs peuvent accéder uniquement à l'aide de sudo. Le Docker démon s'exécute toujours en tant qu'utilisateur root.
Déconnecter et vous reconnecter pour que votre appartenance à un groupe est réévaluée.
Source: Gérer Docker comme un utilisateur non root
Une autre raison possible est que votre BIOS CPU visualisation n'est pas activé. Aller et de lui permettre de premier!