ใช้นักเทียบท่าเป็น sudo


12

ฉันติดตั้ง boot2docker และฉันวิ่ง:

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

ฉันเริ่มสอนจากไซต์นักเทียบท่า

ฉันไม่เข้าใจสิ่งหนึ่ง - เมื่อฉันวิ่ง:

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

อย่างไรก็ตามเมื่อฉันทำงานโดยไม่sudoทำงาน:

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

ความคิดว่าทำไมการทำงานกับ sudo ในขณะที่การสอนไม่ทำงาน (อย่างน้อยสำหรับฉัน)?


2
เนื่องจากการใช้ sudo กำลังล้าง env ของคุณ ไม่จำเป็นต้องใช้ sudo ที่นี่เพราะคุณกำลังเชื่อมต่อผ่านอินเตอร์เฟส TCP
cpuguy83

คำตอบ:


15

DOCKER_HOSTตัวแปรสภาพแวดล้อมไม่ได้ตั้งค่า คุณสามารถยืนยันสิ่งนี้ได้โดยทำ:

> env

จากนั้นเป็น sudo:

> sudo env

หากไม่มีDOCKER_HOSTชุดตัวแปรนักเทียบท่าจะไม่สามารถเชื่อมต่อกับ daemon ได้


3

ลอง:

sudo DOCKER_HOST=$DOCKER_HOST docker run

sudoวิธีนี้ตัวแปรสภาพแวดล้อมที่จำเป็นจะสามารถใช้ได้กับ


2

หากคุณต้องการให้DOCKER_HOSTตัวแปรจากโปรไฟล์ของคุณพร้อมใช้งานเมื่อคุณรันคำสั่ง docker ด้วย sudo คุณสามารถเพิ่มบรรทัดต่อไปนี้ลงsudoersไฟล์ได้ เปิดด้วย:

sudo visudo

เพิ่ม:

Defaults        env_keep += "DOCKER_HOST"

1

หากคุณใช้ boot2docker ให้ไปที่/Applicationโฟลเดอร์และเรียกใช้คำสั่ง

$(boot2docker shellinit)

มันจะแก้ไขDOCKER_HOSTตัวแปรของคุณในสภาพแวดล้อม


0

การตั้งค่าตัวแปรสภาพแวดล้อมDOCKER_HOSTให้tcp://192.168.59.103:2375เหมาะกับฉัน

วิธีที่เร็วที่สุดที่จะรันในบรรทัดคำสั่งของคุณ (สำหรับเครื่อง OSX / Unix / Linux):

export DOCKER_HOST=tcp://192.168.59.103:2375
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.