Je suis nouveau au docker. J'ai un script shell qui charge les données dans impala et je veux un fichier docker qui exécute génère une image et exécute le conteneur. Je suis sur mac, j'ai installé boot2docker et ai configuré le DOCKER_Host
env.
bash-3.2$ docker info
Containers: 0
Images: 0
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Dirs: 0
Execution Driver: native-0.2
Kernel Version: 3.15.3-tinycore64
Debug mode (server): true
Debug mode (client): false
Fds: 10
Goroutines: 10
EventsListeners: 0
Init Path: /usr/local/bin/docker
Sockets: [unix:///var/run/docker.sock tcp://0.0.0.0:2375]
J'essaye juste d'installer une image pré-construite en utilisant:
Sudo docker pull busybox
Je reçois cette erreur:
Sudo docker pull busybox 2014/08/18 17:56:19 Post http:///var/run/docker.sock/images/create?fromImage=busybox&tag=: dial unix /var/run/docker.sock: no such file or directory
Quelque chose ne va pas avec la configuration de mon menu fixe?
Quand je fais un docker pull busybox
, il extrait l'image et le téléchargement est terminé.
bash-3.2$ docker pull busybox
Pulling repository busybox
a9eb17255234: Download complete
fd5373b3d938: Download complete
d200959a3e91: Download complete
37fca75d01ff: Download complete
511136ea3c5a: Download complete
42eed7f1bf2a: Download complete
c120b7cab0b0: Download complete
f06b02872d52: Download complete
120e218dd395: Download complete
1f5049b3536e: Download complete
bash-3.2$ docker run busybox /bin/echo Hello Doctor
Hello Doctor
Est-ce que je manque quelque chose?
Vous n'avez pas besoin d'exécuter de commande de menu fixe sous le nom Sudo
lorsque vous utilisez boot2docker
, car chaque commande transmise au boot2docker
VM s'exécute en tant que root par défaut.
Vous voyez l'erreur lorsque vous utilisez Sudo
parce que Sudo
n'a pas défini le DOCKER_Host
env, mais uniquement votre utilisateur.
Vous pouvez le confirmer en faisant un:
$ env
Puis un
$ Sudo env
Et chercher DOCKER_Host
dans chaque sortie.
Pour ce qui est du fichier docker qui exécute votre script, cela pourrait fonctionner pour vous:
Dockerfile
FROM busybox
# Copy your script into the docker image
ADD /path/to/your/script.sh /usr/local/bin/script.sh
# Run your script
CMD /usr/local/bin/script.sh
Ensuite, vous pouvez exécuter:
docker build -t your-image-name:your-tag .
Ceci construira votre image de menu fixe, que vous pouvez voir en effectuant un:
docker images
Ensuite, pour exécuter votre conteneur, vous pouvez effectuer les opérations suivantes:
docker run your-image-name:your-tag
Cette commande d'exécution démarrera un conteneur à partir de l'image que vous avez créée avec votre Dockerfile
et votre commande de construction, puis se terminera une fois que votre script.sh
aura fini de s'exécuter.
Vous pouvez rapidement configurer votre environnement en utilisant shellinit
À l'invite de votre commande, exécutez:
$(boot2docker shellinit)
Cela peuplera et exportera les variables d’environnement et initialisera d’autres fonctionnalités.
Sur mon MAC quand je lance boot2docker-vm sur le terminal en utilisant
boot2docker start
Je vois ce qui suit
To connect the Docker client to the Docker daemon, please set:
export DOCKER_CERT_PATH=
export DOCKER_TLS_VERIFY=1
export DOCKER_Host=tcp://:2376
Après avoir défini ces variables d’environnement, j’ai pu exécuter la construction sans problème.
Mise à jour [2016-04-28] Si vous utilisez les dernières versions de docker, vous pouvez le faire.
eval $(docker-machine env)
définira l'environnement
(docker-machine env
imprimera les déclarations d'exportation)
docker pull
échouera si docker service
n'est pas en cours d'exécution. Assurez-vous qu'il tourne
:~$ ps aux | grep docker
root 18745 1.7 0.9 284104 13976 ? Ssl 21:19 0:01 /usr/bin/docker -d
S'il ne fonctionne pas, vous pouvez le commencer par
Sudo service docker start
Pour Ubuntu 15 et supérieur, utilisez
Sudo systemctl start docker
J'ai aussi eu cette erreur. Bien que je n’ai pas utilisé boot2docker mais que je viens d’installer un menu fixe "ordinaire" sur Ubuntu (voir https://docs.docker.com/installation/ubuntulinux/ ).
J'ai eu l'erreur ("composez unix /var/run/docker.sock: aucun fichier ni répertoire de ce type. Essayez-vous de vous connecter à un démon compatible TLS sans TLS?") Car le menu fixe Le démon ne fonctionnait pas pour le moment.
Sur Ubuntu, vous devez démarrer le service :
Sudo service docker start
Voir aussi http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64
Pour boot2docker sous Windows, après avoir vu:
FATA[0000] Get http:///var/run/docker.sock/v1.18/version:
dial unix /var/run/docker.sock: no such file or directory.
Are you trying to connect to a TLS-enabled daemon without TLS?
Tout ce que j'ai fait était:
boot2docker start
boot2docker shellinit
Cela a généré:
export DOCKER_CERT_PATH=C:\Users\vonc\.boot2docker\certs\boot2docker-vm
export DOCKER_TLS_VERIFY=1
export DOCKER_Host=tcp://192.168.59.103:2376
Finalement:
boot2docker ssh
Et docker fonctionne à nouveau
Sous Linux, tout d'abord, exécutez Sudo service docker start
dans le terminal.
Si vous utilisez CentOS 7 et que vous avez installé Docker via yum, n'oubliez pas de lancer:
$ Sudo systemctl start docker
$ Sudo systemctl enable docker
Cela va démarrer le serveur, ainsi que le redémarrer automatiquement au démarrage.
Pour configurer votre environnement et le conserver pour les sessions futures, vous pouvez effectuer les tâches suivantes:
echo 'export DOCKER_Host="tcp://$(boot2docker ip 2>/dev/null):2375";' >> ~/.bashrc
Puis: source ~/.bashrc
Et votre environnement sera configuré à chaque session
Le premier /var/run/docker.sock fait référence au même chemin dans votre machine virtuelle boot2docker. Correcly écrire pour windows /var/run/docker.sock
Vous, peut-être pas les OP, mais quelqu'un peut déjà avoir un répertoire appelé /var/run/docker.sock/
en raison du nombre de fois que vous piratez et réduisez pour obtenir de bons résultats avec docker (en particulier les noobs). Supprimez ce répertoire et réessayez.
Cela m’a aidé à faire fonctionner Centos 7.