ошибка docker: /var / run / docker.носок: такого файла или каталога нет
Я новичок в докере. У меня есть скрипт оболочки, который загружает данные в impala, и мне нужен файл docker, который запускает создание образа и запуск контейнера.
Я нахожусь на mac, установил boot2docker и установил env DOCKER_HOST.
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]
Я пытаюсь просто установить готовый образ, используя:
sudo docker pull busybox
Я получаю эту ошибку:
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
Что-то не так с настройкой docker?
Когда я делаю docker pull busybox, он тянет изображение и загрузка завершена.
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
Есть Ли Я чего-то не хватает?
11 ответов:
Вам не нужно выполнять команды docker как
sudo, Когда вы используетеboot2docker, поскольку каждая команда, переданная вboot2dockerVM, по умолчанию выполняется как root.Вы видите ошибку, когда вы работаете как
sudo, потому чтоsudoне имеет набораDOCKER_HOSTenv, только ваш пользователь.Вы можете подтвердить это, сделав a:
$ envТогда a
$ sudo envИ ищет
DOCKER_HOSTв каждом выходе.Что касается наличия файла docker, который запускает ваш скрипт, что-то вроде это может сработать для вас:
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Тогда вы можете запустить:
docker build -t your-image-name:your-tag .Это создаст ваш образ docker, который вы можете увидеть, выполнив a:
docker imagesЗатем, чтобы запустить контейнер, вы можете сделать:
docker run your-image-name:your-tagЭта команда запуска запустит контейнер из образа, созданного с помощью команды
Dockerfileи команды сборки, а затем завершит его, как только вашscript.shзавершит выполнение.
Вы можете быстро настроить свою среду, используя
shellinitВ командной строке выполните:
$(boot2docker shellinit), который будет заполнять и экспортировать переменные среды и инициализировать другие функции.
На моем MAC, когда я запускаю boot2docker-vm на терминале с помощью
boot2docker startЯ вижу следующее
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После установки этих переменных среды я смог запустить сборку без проблем.
Обновление [2016-04-28] Если вы используете последние версии docker, вы можете сделать
eval $(docker-machine env)установит окружение(
docker-machine envраспечатает инструкции экспорта)
docker pullпотерпит неудачу, еслиdocker serviceне работает. Убедитесь, что он работает по:~$ ps aux | grep docker root 18745 1.7 0.9 284104 13976 ? Ssl 21:19 0:01 /usr/bin/docker -dЕсли он не запущен, вы можете запустить его с помощью
sudo service docker startДля Ubuntu 15 и выше используйте
sudo systemctl start docker
Я также получил эту ошибку. Хотя я не использовал boot2docker , а просто установил "Обычный" docker на Ubuntu (см. https://docs.docker.com/installation/ubuntulinux/).
Я получил сообщение об ошибке ("наберите unix /var / run / docker.носок: такого файла или каталога нет. Вы пытаетесь подключиться к демону с поддержкой TLS без TLS?") потому что демон docker еще не был запущен.
В Ubuntu вам нужно запустить службу:
sudo service docker startСм. также http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64
Для boot2docker в Windows, после просмотра:
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?Все, что я сделал, было:
boot2docker start boot2docker shellinitЧто породило:
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Наконец:
boot2docker sshИ Докер снова работает
Если вы используете CentOS 7 и установили Docker через yum, не забудьте запустить:
$ sudo systemctl start docker $ sudo systemctl enable dockerЭто позволит запустить сервер, а также перезапустить его автоматически при загрузке.
Чтобы настроить свою среду и сохранить ее для будущих сеансов, вы можете сделать:
echo 'export DOCKER_HOST="tcp://$(boot2docker ip 2>/dev/null):2375";' >> ~/.bashrcТогда:
source ~/.bashrcИ ваша среда будет настроена в каждом сеансе
Первый/var/run / docker.sock ссылается на тот же путь в вашей виртуальной машине boot2docker. Правильно писать для windows /var / run / docker.носок
Вы, может быть, и не ОП, НО у кого-то может быть каталог под названием
Это помогло мне на пути к тому, чтобы заставить его работать на Centos 7./var/run/docker.sock/уже из-за того, сколько раз вы взламываете и режете, чтобы все было правильно с Докером (особенно нубами). Удалите этот каталог и повторите попытку.