use*_*851 85 docker boot2docker
我是码头工人的新手.我有一个shell脚本将数据加载到impala中,我想要一个运行的docker文件构建一个映像并运行容器.我在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]
Run Code Online (Sandbox Code Playgroud)
我试图使用以下方法安装预先构建的图像:
sudo docker pull busybox
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
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
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
Chr*_*nel 87
您不需要像sudo使用时boot2docker那样运行任何docker命令,因为boot2docker默认情况下,传递到VM的每个命令都以root身份运行.
当你运行时,你会看到错误,sudo因为sudo没有DOCKER_HOST设置env,只有你的用户才有.
您可以通过以下方式确认:
$ env
Run Code Online (Sandbox Code Playgroud)
然后一个
$ sudo env
Run Code Online (Sandbox Code Playgroud)
并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
Run Code Online (Sandbox Code Playgroud)
然后你可以运行:
docker build -t your-image-name:your-tag .
Run Code Online (Sandbox Code Playgroud)
这将构建您的docker镜像,您可以通过执行以下操作来查看:
docker images
Run Code Online (Sandbox Code Playgroud)
然后,要运行容器,您可以执行以下操作:
docker run your-image-name:your-tag
Run Code Online (Sandbox Code Playgroud)
此运行命令将从您使用您Dockerfile和您的构建命令创建的映像启动容器,然后它将在您script.sh执行完毕后完成.
use*_*337 45
您可以使用快速设置环境 shellinit
在命令提示符下执行:
$(boot2docker shellinit)
Run Code Online (Sandbox Code Playgroud)
这将填充并导出环境变量并初始化其他功能.
Jer*_*ony 25
在我的MAC上,当我在终端上使用启动boot2docker-vm时
boot2docker start
Run Code Online (Sandbox Code Playgroud)
我看到以下内容
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
Run Code Online (Sandbox Code Playgroud)
设置这些环境变量后,我能够运行构建没有问题.
更新[2016-04-28]如果您使用的是最新版本的docker,您可以这样做
eval $(docker-machine env) 将设置环境
(docker-machine env将打印出口报表)
Har*_*nan 24
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
Run Code Online (Sandbox Code Playgroud)
如果它没有运行,你可以启动它
sudo service docker start
适用于Ubuntu 15及以上版本
sudo systemctl start docker
Jör*_*örg 16
我也遇到了这个错误.虽然,我没有使用boot2docker但只是在Ubuntu上安装了"普通" docker(请参阅https://docs.docker.com/installation/ubuntulinux/).
我收到错误("拨打unix /var/run/docker.sock:没有这样的文件或目录.您是否尝试连接到没有TLS的启用TLS的守护程序?")因为docker 守护程序尚未运行.
在Ubuntu上,您需要启动该服务:
sudo service docker start
Run Code Online (Sandbox Code Playgroud)
另见http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64
对于Windows上的boot2docker,看到:
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?
Run Code Online (Sandbox Code Playgroud)
我所做的只是:
boot2docker start
boot2docker shellinit
Run Code Online (Sandbox Code Playgroud)
那产生了:
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
Run Code Online (Sandbox Code Playgroud)
最后:
boot2docker ssh
Run Code Online (Sandbox Code Playgroud)
码头工人再次工作
如果您使用的是CentOS 7,并且已经通过yum安装了Docker,请不要忘记运行:
$ sudo systemctl start docker
$ sudo systemctl enable docker
Run Code Online (Sandbox Code Playgroud)
这将启动服务器,并在启动时自动重新启动它.
| 归档时间: |
|
| 查看次数: |
108539 次 |
| 最近记录: |