/ var / lib / docker บน Mac / OS X อยู่ที่ไหน


145

ฉันกำลังมองหาโฟลเดอร์/var/lib/dockerบน Mac ของฉันหลังจากติดตั้ง Docker สำหรับ Mac

กับdocker info ฉันได้รับ

    Containers: 5
     ...
    Server Version: 1.12.0-rc4
    Storage Driver: aufs
     Root Dir: /var/lib/docker/aufs
     Backing Filesystem: extfs
     Dirs: 339
     Dirperm1 Supported: true
    ...
    Name: moby
    ID: LUOU:5UHI:JFNI:OQFT:BLKR:YJIC:HHE5:W4LP:YHVP:TT3V:4CB2:6TUS
    Docker Root Dir: /var/lib/docker
    Debug Mode (client): false
    ....

แต่ฉันไม่มีไดเรกทอรี/var/lib/dockerบนโฮสต์ของฉัน

ฉันตรวจสอบแล้ว/Users/myuser/Library/Containers/com.docker.docker/แต่ไม่พบอะไรเลย ความคิดใด ๆ ที่ตั้งอยู่?


8
มันอยู่ภายใน vm ที่นักเทียบท่าสร้างอินสแตนซ์เพื่อจัดเตรียมสภาพแวดล้อม Linux ที่จำเป็น
larsks

1
เป็นไปได้ไหมว่า File: /Users/myuser/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
christian

1
นั่นคือภาพดิสก์ที่อยู่ภายใต้ vm ใช่ แต่ถ้าคุณต้องการยุ่งเกี่ยวกับเนื้อหาของไดเร็กทอรีนั้นคุณจะต้องล็อกอินเข้าสู่ vm เอง คุณสามารถดูคำแนะนำในการดำเนินการได้ที่docs.docker.com/v1.8/installation/mac
larsks

ขอบคุณการเพิ่มขนาดไฟล์นี้ใช้ได้กับ qemu-img resize Docker.qcow2 + 5g forums.docker.com/t/…
christian

คุณรู้หรือไม่ว่าจะหาไดเร็กทอรีนี้ได้ที่ไหน @christian
Jason Xu

คำตอบ:


52

ดูคำตอบนี้

เมื่อใช้ Docker for Mac Application ดูเหมือนว่าคอนเทนเนอร์จะถูกเก็บไว้ใน VM ซึ่งอยู่ที่:

~ / Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / Docker.qcow2


58
หากคุณมาที่นี่จาก Googleให้เลื่อนลงเพื่อค้นหาคำตอบที่ถูกต้อง
user1717828

171

ดังที่ได้กล่าวไว้ในคำตอบข้างต้นคุณจะพบได้ใน:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

เมื่อคุณได้รับ tty แล้วคุณสามารถไปที่ /var/lib/docker


4
การปรับเปลี่ยนเล็กน้อย (ด้านล่างบ้านของคุณไม่ใช่ด้านล่างรูท): "screen ~ / Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / tty"
pdenti

1
ได้ผล! แต่ฉันจะออกจากเปลือกนั้นได้อย่างไร? Ctrl + d exitและlogoutจะไม่ทำงาน
thomaskonrad

6
คุณสามารถแยกออกจากหน้าจอด้วย ctrl + a + d
Mik jagger

13
การถอดออกจะยังคงทำให้เซสชันหน้าจอทำงานอยู่ screen -lsคุณสามารถดูนี้โดยการเรียกใช้ screen -X quitหากคุณมีแฝดแล้ววิ่ง หากคุณมีหลายเซสชันหน้าจอคุณจะต้อง-Sระบุชื่อเซสชัน หากคุณไม่ได้ถอดออกให้กด ctrl + a,:, q, u, i, t, ENTER ทั้งสองเพียงแค่เรียกใช้คำสั่งปิดหน้าจอในเซสชัน
dosentmatter

15
ฉันคิดว่ามันอาจจะอยู่ที่ ~ / Library / Containers / com.docker.docker / Data / vms / 0 / tty now
Richard Collette

57

คำตอบอื่น ๆ ที่นี่จะล้าสมัยหากคุณใช้ Docker สำหรับ Mac

นี่คือวิธีที่ฉันสามารถเข้าสู่ VM ได้ เรียกใช้คำสั่ง:

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

นี่คือเส้นทางเริ่มต้น แต่คุณอาจต้องทำก่อน: cd ~/Library/Containers/com.docker.docker/Data/vms

จากนั้นlsดูไดเร็กทอรีที่ VM ของคุณอยู่และแทนที่ "0" ตามนั้น

เมื่อคุณเข้ามาคุณอาจเห็นหน้าจอว่างเปล่า กดปุ่ม "Enter"

หน้านี้อธิบายว่าหากต้องการออกจาก VM คุณต้อง "Ctrl-a" ตามด้วย "d"


ทำงานได้ไม่เต็มที่เพราะถ้าคุณออกจาก VM แล้วป้อนอีกครั้งคุณจะทำให้เชลล์สับสน
AbstractVoid

2
สิ่งนี้ไม่ได้ผลสำหรับฉัน ฉันจบลงด้วยเปลือกที่ยุ่งเหยิง ฉันได้ผ่านและฆ่าเซสชันหน้าจอก่อนหน้านี้แล้วลองอีกครั้ง เมื่อกดปุ่ม Enter ฉันจะได้รับตัวละครแบบสุ่ม หากคุณกด Enter อีกครั้งอักขระสุ่มใหม่ และอื่น ๆ
Steig Hallquist

1
ในการออกจากโปรแกรมหน้าจอให้ใช้ ctl-a จากนั้น ctl- \ /var/lib/dockerอยู่ใน VM ที่คุณอยู่หลังการเรียกใช้screenเช่นls /var/lib/dockerฯลฯ
Alexei Martianov

1
ฉันกำจัดเปลือกที่ยุ่งเหยิงออกscreen -lsไปscreen -X -S SESSION_NAME quitทุกครั้ง หากคุณตัดการเชื่อมต่อด้วย ctr-A แล้ว D คุณสามารถเชื่อมต่อกับหน้าจอใหม่screen -Rและรับเชลล์ที่สะอาดได้เช่นกัน
Andreas Riedmüller

15

เช่นเดียวกับที่ @Dmitriy กล่าวว่า:

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

และสามารถใช้ctrl a+ dเพื่อถอดหน้าจอ

และใช้screen -drเพื่อแนบหน้าจอใหม่อีกครั้ง (เนื่องจากหากคุณเพียงแค่แนบหน้าจออีกครั้งข้อความเทอร์มินัลจะอ่านไม่ออก)

ข้อมูลอ้างอิง

หรือถ้าคุณต้องการออกให้ใช้ctrl + a+ kจากนั้นเลือกที่yจะฆ่าหน้าจอ


6

เธรดซอมบี้มีอะไรบ้าง แต่อย่างที่ฉันเพิ่งพบที่นี่เป็นอีกวิธีหนึ่งที่ไม่ต้องใช้หน้าจอหรือทำให้เชลล์เลอะ

เส้นทางที่แสดงรายการจากไฟล์ docker volume inspect <vol_name>

ส่งคืนเส้นทางสำหรับคอนเทนเนอร์เช่น:

"Mountpoint": "/var/lib/docker/volumes/coap_service_db_data/_data"

_dataองค์ประกอบเป็นองค์ประกอบสุดท้ายของเส้นทางที่คุณตั้งค่าในvolumes:ส่วนของการให้บริการโดยใช้เช่นปริมาณการได้รับ:

volumes: - db_data:/var/lib/postgresql/data ระยะทางของคุณจะแตกต่างกันไป

ในการไปที่ mac วิธีที่ง่ายที่สุดที่ฉันพบคือการเริ่มต้นคอนเทนเนอร์ขนาดเล็กที่ทำงานและติดตั้งรูทของโฮสต์ไปยัง/dockerไดเร็กทอรีในรูปภาพซึ่งจะช่วยให้คุณเข้าถึงไดรฟ์ข้อมูลที่ใช้บนโฮสต์

docker run --rm -it -v /:/docker alpine:edge

จากจุดนี้คุณสามารถ cd ไปยังไดรฟ์ข้อมูล

cd /var/lib/docker/volumes/coap_service_db_data/_data


1

เส้นทางนี้มาจาก Docker Host (ไม่ใช่จาก MacOS) ก่อนเวลา "Docker for Mac Application" โดยที่ VirtualBox VM เป็น "ค่าเริ่มต้น" และภายในเส้นทางที่กล่าวถึง VM นี้มีอยู่ (แน่นอน) ตอนนี้อยู่ใน "Docker for Mac Application" ครั้ง มีอิมเมจ Docker.qcow2 ซึ่งเป็น qemu base vm หากต้องการข้ามไปในวิธี VM @ mik-jagger นี้ก็โอเค (แต่มีอีกสองสามอย่าง)


0

ฉันจะบอกว่าไฟล์:

/var/run/docker.sock

อยู่ที่:

/Volumes/{DISKNAME}/var/run/docker.sock

หากคุณเรียกใช้สิ่งนี้ควรพิสูจน์ได้ตราบใดที่ VirtualBox 5.2.8 ของคุณทำงานขึ้นไปและการแชร์สำหรับได้/Volumes รับการตั้งค่าให้ติดตั้งอัตโนมัติและถาวรและคุณได้สร้างเครื่องเทียบท่าเริ่มต้นในขณะที่ใช้ Virtualbox เวอร์ชันนั้น:

#!/bin/bash
docker run -d --restart unless-stopped -p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock portainer/portainer \
--no-auth

จากนั้นเข้าถึง Portainer ที่: 192.168.99.100:9000 หรือ localhost: 9000


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