Eu sou novo no docker. Eu tenho um script de shell que carrega dados no impala e quero um arquivo docker que executa, cria uma imagem e executa o contêiner. Estou no mac, instalei o boot2docker e tenho o DOCKER_HOST
env configurado.
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]
Estou tentando instalar uma imagem pré-construída usando:
sudo docker pull busybox
Eu recebo este erro:
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
Há algo errado com a configuração da minha docker?
Quando eu faço um docker pull busybox
, ele puxa a imagem e o download é concluído.
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
Estou esquecendo de algo?
docker
boot2docker
user1189851
fonte
fonte
Respostas:
Você não precisa executar nenhum comando do docker como
sudo
quando usaboot2docker
como cada comando passado para oboot2docker
VM são executados como root por padrão.Você está vendo o erro ao executar
sudo
porquesudo
não tem oDOCKER_HOST
env definido, apenas o seu usuário tem.Você pode confirmar isso fazendo:
Então uma
E procurando
DOCKER_HOST
em cada saída.Quanto a ter um arquivo docker que executa seu script, algo assim pode funcionar para você:
Dockerfile
Então você pode executar:
Isso criará sua imagem do docker, que você pode ver fazendo:
Então, para executar seu contêiner, você pode fazer:
Este comando de execução iniciará um contêiner a partir da imagem que você criou com seu
Dockerfile
e seu comando de compilação e, em seguida, terminará quando suascript.sh
execução terminar.fonte
-t
semelhanteyour-image-name:a-tag
.Você pode configurar rapidamente o seu ambiente usando
shellinit
No prompt de comando, execute:
Isso preencherá e exportará as variáveis de ambiente e inicializará outros recursos.
fonte
No meu MAC, quando eu inicio boot2docker-vm no terminal usando
Eu vejo o seguinte
Depois de definir essas variáveis de ambiente, consegui executar o build sem problemas.
Atualização [2016-04-28] Se você estiver usando as versões recentes do docker, pode fazer
eval $(docker-machine env)
irá definir o ambiente(
docker-machine env
imprimirá as declarações de exportação)fonte
docker pull
irá falhar sedocker service
não estiver em execução. Certifique-se de que está funcionando porSe não estiver funcionando, você pode iniciá-lo
sudo service docker start
Para Ubuntu 15 e acima, use
sudo systemctl start docker
fonte
Eu também recebi esse erro. Porém, eu não usei o boot2docker, mas apenas instalei o docker "simples" no Ubuntu (consulte https://docs.docker.com/installation/ubuntulinux/ ).
Recebi o erro ("disque unix /var/run/docker.sock: nenhum arquivo ou diretório. Você está tentando se conectar a um daemon habilitado para TLS sem TLS?") Porque o daemon docker não estava em execução .
No Ubuntu, você precisa iniciar o serviço :
Veja também http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64
fonte
Para boot2docker no Windows, depois de ver:
Tudo que fiz foi:
Isso gerou:
Finalmente:
E o docker funciona novamente
fonte
No Linux, primeiro de tudo execute
sudo service docker start
no terminal.fonte
Se você estiver usando o CentOS 7 e tiver instalado o Docker via yum, não se esqueça de executar:
Isso irá iniciar o servidor, bem como reiniciá-lo automaticamente na inicialização.
fonte
Para configurar seu ambiente e mantê-lo para as sessões futuras, você pode fazer:
Então:
source ~/.bashrc
E seu ambiente será configurado em cada sessão
fonte
O primeiro /var/run/docker.sock se refere ao mesmo caminho em sua máquina virtual boot2docker. Escreva corretamente para windows /var/run/docker.sock
fonte
Você, talvez não seja o OP, mas alguém pode já ter um diretório chamado
/var/run/docker.sock/
devido ao número de vezes que você hack e slash para acertar as coisas com o docker (especialmente noobs). Exclua esse diretório e tente novamente.Isso me ajudou no meu caminho para fazê-lo funcionar no Centos 7.
fonte