/ Var / lib / docker ở đâu trên Mac / OS X


138

Tôi đang tìm kiếm thư mục /var/lib/dockertrên máy Mac của mình sau khi cài đặt docker cho Mac.

Với docker info tôi nhận được

    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
    ....

Nhưng tôi không có một thư mục /var/lib/dockertrên máy chủ của tôi.

Tôi đã kiểm tra /Users/myuser/Library/Containers/com.docker.docker/nhưng không thể tìm thấy bất cứ điều gì ở đó. Bất kỳ ý tưởng nơi nó được đặt?


8
Nó được đặt bên trong vm mà docker khởi tạo để cung cấp môi trường Linux cần thiết.
larsks

1
Nó có thể được rằng tùy chọn File: /Users/myuser/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
christian

1
Đó là hình ảnh đĩa bên dưới vm, vâng. Nhưng nếu bạn muốn làm quen với nội dung của thư mục đó, bạn sẽ cần phải đăng nhập vào chính vm. Bạn có thể tìm thấy hướng dẫn để làm như vậy tại docs.docker.com/v1.8/installation/mac
larsks

thx, risizing tập tin này làm việc với qemu-img thay đổi kích thước Docker.qcow2 + 5g forums.docker.com/t/...
christian

Bạn có biết tìm thư mục này ở đâu không? @Christian
Jason Xu

Câu trả lời:


50

Xem câu trả lời này

Khi sử dụng Docker cho Mac Application, có vẻ như các container được lưu trữ trong VM được đặt tại:

~ / Thư viện / Container / com.docker.docker / Dữ liệu / com.docker.driver.amd64-linux / Docker.qcow2


51
Nếu bạn đến đây từ Google , hãy cuộn xuống để tìm câu trả lời đúng.
dùng1717828

167

Như đã đề cập trong các câu trả lời ở trên, bạn sẽ tìm thấy nó trong:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

Khi bạn nhận được tty chạy, bạn có thể điều hướng đến /var/lib/docker


4
một sửa đổi nhỏ (bên dưới nhà của bạn, không phải dưới gốc): "screen ~ / Library / Container / com.docker.docker / Data / com.docker.driver.amd64-linux / tty"
pdenti

1
Làm! Nhưng làm thế nào để tôi thoát khỏi cái vỏ đó? Ctrl + d exit, và logoutsẽ không hoạt động.
thomaskonrad

6
Bạn có thể tách ra khỏi màn hình bằng ctrl + a + d
Mik jagger

13
Việc tháo rời vẫn sẽ giữ cho phiên màn hình chạy. Bạn có thể thấy điều này bằng cách chạy screen -ls. Nếu bạn đã tách ra, hãy chạy screen -X quit. Nếu bạn có nhiều phiên màn hình, bạn sẽ cần -Schỉ định tên phiên. Nếu bạn chưa tách ra, hãy nhấn ctrl + a,:, q, u, i, t, ENTER. Hai người đó chỉ chạy lệnh thoát màn hình trong phiên.
dosentmatter

15
Tôi nghĩ rằng nó có thể được đặt tại ~ / Library / Container / com.docker.docker / Data / vms / 0 / tty ngay bây giờ.
Richard Collette

57

Các câu trả lời khác ở đây đã lỗi thời nếu bạn đang sử dụng Docker cho Mac.

Đây là cách tôi có thể vào VM. Chạy lệnh:

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

Đây là đường dẫn mặc định, nhưng trước tiên bạn có thể cần phải làm: cd ~/Library/Containers/com.docker.docker/Data/vms

và sau đó lsđể xem VM của bạn nằm trong thư mục nào và thay thế "0" tương ứng.

Khi bạn vào, bạn có thể thấy một màn hình trống. Nhấn phím "Enter" của bạn.

Trang này giải thích rằng để thoát khỏi VM, bạn cần "Ctrl-a" rồi "d"


Không hoạt động đầy đủ, bởi vì nếu bạn thoát VM và nhập lại, bạn sẽ gặp rắc rối.
Tóm tắt

2
Điều này không làm việc cho tôi. Tôi kết thúc với một vỏ sò lộn xộn. Tôi đã trải qua và giết chết các phiên màn hình trước đó và sau đó thử lại. Khi nhấn enter tôi nhận được các ký tự ngẫu nhiên. nếu bạn nhấn enter lần nữa, các ký tự ngẫu nhiên mới. Và như vậy
Steig Hallquist

1
để thoát khỏi chương trình màn hình, hãy sử dụng ctl-a rồi ctl- \ /var/lib/dockerđang ở trong VM nơi bạn đang chạy screen, vì vậy, ls /var/lib/dockerv.v.
Alexei Martianov

1
Tôi đã thoát khỏi cái vỏ lộn xộn screen -lsvà sau đó screen -X -S SESSION_NAME quitcho mỗi phiên. Nếu bạn ngắt kết nối với ctr-A thì D bạn có thể kết nối lại với màn hình screen -Rvà lấy vỏ sạch.
Andreas Riedmüller

13

Đúng như @Dmitriy đã nói:

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

và có thể sử dụng ctrl a+ dđể tách màn hình

và sử dụng screen -drđể gắn lại màn hình một lần nữa (vì nếu bạn chỉ cần gắn lại màn hình, văn bản đầu cuối sẽ bị cắt xén.)

Tài liệu tham khảo

hoặc nếu bạn muốn thoát, sử dụng ctrl + a+ k, sau đó chọn tắt ymàn hình.


5

Một số thứ thuộc về chủ đề zombie nhưng như tôi vừa tìm thấy ở đây là một giải pháp khác không cần màn hình cũng không làm hỏng vỏ, v.v.

Đường dẫn được liệt kê từ một docker volume inspect <vol_name>

trả về đường dẫn cho container, đại loại như:

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

các _datathành phần là phần cuối cùng của đường dẫn mà bạn thiết lập trong volumes:phần của dịch vụ sử dụng một khối lượng ví dụ như đưa ra:

volumes: - db_data:/var/lib/postgresql/data , obvs số dặm của bạn sẽ thay đổi.

Để đạt được điều đó trên mac, phương pháp đơn giản nhất mà tôi đã tìm thấy là thực sự bắt đầu một thùng chứa nhỏ đang chạy và gắn root của máy chủ vào /dockerthư mục trong ảnh, điều này cho phép bạn truy cập vào các ổ đĩa được sử dụng trên máy chủ.

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

từ thời điểm này bạn có thể cd đến âm lượng

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


1

Đường dẫn này xuất phát từ Docker Host (không phải từ MacOS) trước thời điểm "Docker cho ứng dụng Mac", nơi có VirtualBox VM "mặc định" và bên trong đường dẫn được đề cập đến VM này (chắc chắn), giờ là trong "Docker cho ứng dụng Mac" có một hình ảnh Docker.qcow2, đó là qemu cơ sở vm. Để nhảy vào bên trong VM @ mik-jagger này là ok (nhưng còn vài thứ nữa)


0

Tôi muốn nói rằng các tập tin:

/var/run/docker.sock

Thực tế là tại:

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

Nếu bạn chạy cái này, nó sẽ chứng minh điều đó, miễn là VirtualBox 5.2.8 trở lên của bạn và chia sẻ cho /Volumes thiết lập được tự động gắn kết và vĩnh viễn VÀ bạn đã tạo máy docker mặc định trong khi trên phiên bản 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

Sau đó, truy cập Portainer tại: 192.168.99.100:9000 hoặc localhost: 9000

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.