Я новичок в докере. У меня есть сценарий оболочки, который загружает данные в импалу, и мне нужен файл докера, который запускает сборку образа и запускает контейнер. Я на Mac, установил boot2docker и 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]
Я пытаюсь просто установить предварительно созданный образ, используя:
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 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
Я что-то упускаю?
docker
boot2docker
user1189851
источник
источник
Ответы:
Вам не нужно запускать какие-либо команды докеров, как
sudo
при использовании,boot2docker
поскольку каждая команда, переданная вboot2docker
виртуальную машину, по умолчанию выполняется от имени пользователя root.Вы видите ошибку, когда работаете от имени,
sudo
потомуsudo
что не имеет установленногоDOCKER_HOST
env, только ваш пользователь.Вы можете подтвердить это, выполнив:
Затем
И ищу
DOCKER_HOST
в каждом выходе.Что касается докер-файла, который запускает ваш скрипт, вам может сработать что-то вроде этого:
Dockerfile
Тогда вы можете запустить:
Это создаст ваш образ докера, который вы можете увидеть, выполнив:
Затем, чтобы запустить свой контейнер, вы можете сделать:
Эта команда запуска запустит контейнер из образа, который вы создали с помощью вашей
Dockerfile
и вашей команды сборки, а затем он завершится, как только выscript.sh
завершите выполнение.источник
-t
какyour-image-name:a-tag
.Вы можете быстро настроить свою среду, используя
shellinit
В командной строке выполните:
Это заполнит и экспортирует переменные среды и инициализирует другие функции.
источник
На моем MAC, когда я запускаю boot2docker-vm на терминале, используя
Я вижу следующее
После установки этих переменных среды я смог без проблем запустить сборку.
Обновление [2016-04-28] Если вы используете последние версии докера, вы можете сделать
eval $(docker-machine env)
установит среду(
docker-machine env
распечатает отчеты об экспорте)источник
docker pull
потерпит неудачу, еслиdocker service
не работает. Убедитесь, что он запущенЕсли он не запущен, вы можете запустить его
sudo service docker start
Для Ubuntu 15 и выше используйте
sudo systemctl start docker
источник
Я тоже получил эту ошибку. Хотя я не использовал boot2docker, а просто установил "простой" докер на Ubuntu (см. Https://docs.docker.com/installation/ubuntulinux/ ).
Я получил ошибку («наберите unix /var/run/docker.sock: нет такого файла или каталога. Вы пытаетесь подключиться к демону с поддержкой TLS без TLS?»), Потому что демон docker еще не запущен .
В Ubuntu вам нужно запустить службу :
См. Также http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64
источник
Для boot2docker в Windows, увидев:
Все, что я сделал, это:
Это сгенерировало:
В заключение:
И докер снова работает
источник
В Linux сначала выполните
sudo service docker start
в терминале.источник
Если вы используете CentOS 7 и установили Docker через yum, не забудьте запустить:
Это запустит сервер, а также автоматически перезапустит его при загрузке.
источник
Чтобы настроить среду и сохранить ее для будущих сеансов, вы можете:
Затем:
source ~/.bashrc
И ваша среда будет настраиваться в каждой сессии
источник
Первый /var/run/docker.sock относится к тому же пути на вашей виртуальной машине boot2docker. Правильно напишите для windows /var/run/docker.sock
источник
Вы, возможно, не OP, но у кого-то может быть каталог, который
/var/run/docker.sock/
уже называется из-за того, сколько раз вы взламываете и разрезаете, чтобы все было правильно с докером (особенно новички). Удалите этот каталог и попробуйте еще раз.Это помогло мне заставить его работать на Centos 7.
источник