ошибка 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
, поскольку каждая команда, переданная вboot2docker
VM, по умолчанию выполняется как root.Вы видите ошибку, когда вы работаете как
sudo
, потому чтоsudo
не имеет набораDOCKER_HOST
env, только ваш пользователь.Вы можете подтвердить это, сделав 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/
уже из-за того, сколько раз вы взламываете и режете, чтобы все было правильно с Докером (особенно нубами). Удалите этот каталог и повторите попытку.