我是Docker的新手。我有一个将数据加载到impala中的shell脚本,并且我希望运行的docker文件构建映像并运行容器。我在Mac上,安装了boot2docker并DOCKER_HOST设置了环境。
DOCKER_HOST
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设置有问题吗?
当我执行时docker pull busybox,它将拉出图像并完成下载。
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命令,因为sudo在使用时,默认情况下,boot2docker传递给boot2dockerVM的每个命令都以root用户身份运行。
sudo
boot2docker
您正在运行时看到错误,sudo因为sudo没有DOCKER_HOST设置环境,只有用户设置了。
您可以通过执行以下操作来确认这一点:
$ env
然后一个
$ sudo env
并DOCKER_HOST在每个输出中寻找。
至于让docker文件运行您的脚本,类似这样的方法可能对您有用:
Docker文件
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
然后,您可以运行:
docker build -t your-image-name:your-tag .
这将构建您的docker映像,您可以通过执行以下操作看到:
docker images
然后,要运行容器,您可以执行以下操作:
docker run your-image-name:your-tag
此运行命令将从Dockerfile您使用build命令和build命令创建的映像中启动一个容器,然后script.sh在执行完成后结束。
Dockerfile
script.sh