Chạy docker như sudo


12

Tôi đã cài đặt boot2docker và tôi đã chạy:

./boot2docker start
 export DOCKER_HOST=tcp://localhost:4243

Tôi bắt đầu một hướng dẫn từ trang web Docker.

Tôi không hiểu một điều - khi tôi chạy:

sudo docker info
==>
Get http:///var/run/docker.sock/v1.11/info: dial unix /var/run/docker.sock: no such file or directory

Tuy nhiên khi tôi chạy mà không có sudonó hoạt động:

MacCris:bin cristianc$ docker info
Containers: 2
Images: 10
Storage Driver: aufs
 Root Dir: /mnt/sda1/var/lib/docker/aufs
 Dirs: 14
Execution Driver: native-0.2
Kernel Version: 3.14.1-tinycore64
Debug mode (server): true
Debug mode (client): false

Bất cứ ý tưởng tại sao chạy với sudo như trong hướng dẫn không hoạt động (ít nhất là đối với tôi)?


2
Điều này là do sử dụng sudo đang xóa env của bạn. Không cần sử dụng sudo ở đây vì bạn đang kết nối qua giao diện TCP
cpuguy83

Câu trả lời:


15

Biến DOCKER_HOSTmôi trường không được đặt. Bạn có thể xác nhận điều này bằng cách thực hiện:

> env

Sau đó là sudo:

> sudo env

Nếu không có bộ DOCKER_HOSTbiến, docker không thể kết nối với daemon.


3

Thử:

sudo DOCKER_HOST=$DOCKER_HOST docker run

Bằng cách này, biến môi trường cần thiết sẽ có sẵn với sudo.


2

Nếu bạn muốn DOCKER_HOSTbiến từ hồ sơ của bạn có sẵn khi bạn chạy lệnh docker với sudo, thì bạn có thể thêm dòng sau vào sudoerstệp. Mở với:

sudo visudo

Thêm vào:

Defaults        env_keep += "DOCKER_HOST"

1

Nếu bạn đang sử dụng boot2docker, hãy vào /Applicationthư mục và chạy lệnh

$(boot2docker shellinit)

Nó sẽ sửa DOCKER_HOSTbiến của bạn trong môi trường.


0

Đặt biến môi trường DOCKER_HOSTđể tcp://192.168.59.103:2375làm việc cho tôi.

Cách nhanh nhất sẽ là chạy cái này trong dòng lệnh của bạn (đối với máy OSX / Unix / Linux):

export DOCKER_HOST=tcp://192.168.59.103:2375
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.