Jestem nowy w dockerze. Mam skrypt powłoki, który ładuje dane do impali i chcę, aby plik Dockera, który uruchamiał, budował obraz i uruchamiał kontener. Jestem na Macu, zainstalowałem boot2docker i DOCKER_HOST
skonfigurowałem 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]
Próbuję właśnie zainstalować gotowy obraz za pomocą:
sudo docker pull busybox
Otrzymuję ten błąd:
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
Czy coś jest nie tak z moją konfiguracją Dockera?
Kiedy robię docker pull busybox
, pobiera obraz i pobieranie jest zakończone.
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
Czy coś mi brakuje?
docker
boot2docker
user1189851
źródło
źródło
Odpowiedzi:
Nie musisz uruchamiać żadnych poleceń dockera, jak w
sudo
przypadku używania,boot2docker
ponieważ każde polecenie przekazane doboot2docker
maszyny wirtualnej działa domyślnie jako root.Widzisz błąd, gdy pracujesz,
sudo
ponieważsudo
nie maDOCKER_HOST
ustawionego środowiska env, tylko Twój użytkownik to robi.Możesz to potwierdzić, wykonując:
Następnie
I szuka
DOCKER_HOST
w każdym wyjściu.Jeśli chodzi o posiadanie pliku dockera, który uruchamia twój skrypt, coś takiego może działać dla Ciebie:
Dockerfile
Następnie możesz biegać:
Spowoduje to zbudowanie obrazu dockera, który możesz zobaczyć, wykonując:
Następnie, aby uruchomić kontener, możesz wykonać:
To polecenie uruchomienia uruchomi kontener z obrazu utworzonego za pomocą
Dockerfile
polecenia i polecenia kompilacji, a następnie zakończy się poscript.sh
zakończeniu wykonywania.źródło
-t
podobnymyour-image-name:a-tag
.Możesz szybko skonfigurować swoje środowisko za pomocą
shellinit
W wierszu poleceń wykonaj:
Spowoduje to wypełnienie i wyeksportowanie zmiennych środowiskowych oraz zainicjowanie innych funkcji.
źródło
Na moim MAC, kiedy uruchamiam boot2docker-vm na terminalu przy użyciu
Widzę co następuje
Po ustawieniu tych zmiennych środowiskowych mogłem bez problemu uruchomić kompilację.
Aktualizacja [2016-04-28] Jeśli korzystasz z najnowszych wersji dockera, możesz to zrobić
eval $(docker-machine env)
ustawi środowisko(
docker-machine env
wydrukuje wyciągi eksportowe)źródło
docker pull
zakończy się niepowodzeniem, jeślidocker service
nie jest uruchomiony. Upewnij się, że jest uruchomionyJeśli nie działa, możesz go uruchomić przez
sudo service docker start
Do użytku w systemie Ubuntu 15 i nowszych
sudo systemctl start docker
źródło
Mam też ten błąd. Chociaż nie używałem boot2dockera, tylko zainstalowałem „zwykły” docker na Ubuntu (patrz https://docs.docker.com/installation/ubuntulinux/ ).
Wystąpił błąd („dial unix /var/run/docker.sock: brak takiego pliku lub katalogu. Czy próbujesz połączyć się z demonem obsługującym TLS bez TLS?”), Ponieważ demon docker jeszcze nie działał .
Na Ubuntu musisz uruchomić usługę :
Zobacz także http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64
źródło
W przypadku boot2dockera w systemie Windows, po obejrzeniu:
Wszystko co zrobiłem to:
To wygenerowało:
Wreszcie:
Docker znowu działa
źródło
W Linuksie przede wszystkim wykonaj
sudo service docker start
w terminalu.źródło
Jeśli używasz CentOS 7 i zainstalowałeś Dockera przez yum, nie zapomnij uruchomić:
Spowoduje to uruchomienie serwera, a także automatyczne ponowne uruchomienie podczas rozruchu.
źródło
Aby skonfigurować swoje środowisko i zachować je na przyszłe sesje, możesz:
Następnie:
source ~/.bashrc
Twoje środowisko będzie konfigurowane w każdej sesji
źródło
Pierwszy /var/run/docker.sock odnosi się do tej samej ścieżki w maszynie wirtualnej boot2docker. Pisz poprawnie dla windows /var/run/docker.sock
źródło
Ty, być może nie jesteś OP, ale ktoś może mieć katalog
/var/run/docker.sock/
już wywołany ze względu na to, ile razy hakujesz i slashujesz, aby wszystko naprawić z dockerem (zwłaszcza noobs). Usuń ten katalog i spróbuj ponownie.Pomogło mi to w rozpoczęciu pracy na Centos 7.
źródło