Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 在Docker容器中安装Web应用程序:拨打unix /var/run/docker.sock:没有这样的文件或目录大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在Docker容器中安装Web应用程序.

我正在使用OS X Yosemite版本10.10.1

我一直在这里关注Dockerizing Node.js Web App的教程:https://docs.docker.com/examples/nodejs_web_app/

>我下载并设置了boot2docker osx-installer:github.com/boot2docker/osx-installer/releases/tag/v1.4.1
>我按以下顺序在控制台中输入了这些命令:

$boot2docker init
$boot2docker启动
$(boot2docker sHellinit)
>然后我按照终端的指示,使用以下命令设置环境变量:

$export DOCKER_TLS_VERIFY = 1
$export DOCKER_HOST = tcp://192.168.59.103:2376
$export DOCKER_CERT_PATH = / Users / myusername / .boot2docker / certs / boot2docker-vm

在这一点上,一切似乎都正常.

>然后,按照Dockerizing Node.js应用程序的教程,我得到了这一点:https://docs.docker.com/examples/nodejs_web_app/#building-your-image,您输入命令:

$sudo docker build -t<您的用户名> / centos-node-Hello.
>然后要求输入密码,然后输入后我不断收到此错误消息:

将构建上下文发送到Docker守护程序
FATA [0000]发布http:///var/run/docker.sock/v1.16/build?rm = 1& t = myusername / centos-node- Hello:拨打unix /var/run/docker.sock:否这样的文件或目录

这是我的env变量:

`TERM_PROGRAM=Apple_Terminal
TERM=xterm-256color
SHelL=/bin/bash
TMPDIR=/var/folders/vb/vmd78vk57mqd6fv7sqb544pc0000gn/T/
DOCKER_HOST=tcp://192.168.59.103:2376
Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.bBIW525XNA/Render
TERM_PROGRAM_VERSION=343
OLDPWD=/Users/myusername/Desktop
TERM_SESSION_ID=FAD1F3F1-35DF-4183-A47A-08749EAFE@R_696_11435@
USER=myusername
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.A6ZjHwx8eq/Listeners
__CF_user_TEXT_ENCODING=0x1F5:0x0:0x0
DOCKER_TLS_VERIFY=1
PATH=/Users/myusername/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
PWD=/Users/myusername/Desktop/docker
LANG=en_CA.UTF-8
vXPC_FLAGS=0x0
XPC_service_name=0
DOCKER_CERT_PATH=/Users/myusername/.boot2docker/certs/boot2docker-vm
HOME=/Users/myusername
SHLVL=1
LOGNAME=myusername
DISPLAY=/private/tmp/com.apple.launchd.IesbS7VdCy/org.macosforge.xquartz:0
SecuritySESSIONID=186a5
_=/usr/bin/env`

我的Docker版本:

`Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8
OS/Arch (client): darwin/amd64
Server version: 1.4.1
Server API version: 1.16
Go version (server): go1.3.3
Git commit (server): 5bc2ff8`

任何帮助将非常感激.谢谢

解决方法

您具体案例的简短回答:不要使用sudo.

原因如下:

使用boot2docker时,docker守护程序在VM中运行,主要在另一台计算机上运行.要与另一台计算机上的docker守护程序通信,必须使用TLS连接(通过httpS连接到守护程序的REST API).这就是你必须设置DOCKER_HOST和DOCKER_CERT_PATH的原因.由于守护程序在不同的计算机上运行,​​因此您不需要是root用户与之通信,因为传出的http连接不需要root,这与尝试与unix:///var/run/docker.sock进行通信不同插座.

但是当你运行sudo docker时,突然间你是一个不同的用户,你就是root用户.您设置为常规帐户的环境变量未设置.因此,docker CLI使用其认通信方法:unix套接字.套接字不存在,因为守护程序在另一台机器上运行(boot2docker vm).因此错误消息.

大佬总结

以上是大佬教程为你收集整理的node.js – 在Docker容器中安装Web应用程序:拨打unix /var/run/docker.sock:没有这样的文件或目录全部内容,希望文章能够帮你解决node.js – 在Docker容器中安装Web应用程序:拨打unix /var/run/docker.sock:没有这样的文件或目录所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。