Mac / OS Xの/ var / lib / dockerはどこですか


138

/var/lib/dockerMac用の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
これは、Dockerがインスタンス化して必要なLinux環境を提供するVM内にあります。
larsk、2016

1
それはそのファイルである可能性があります:/Users/myuser/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
クリスチャン

1
はい、VMの基礎となるディスクイメージです。ただし、そのディレクトリの内容をいじくり回したい場合は、vm自体にログインする必要があります。手順については、docs.docker.com
v1.8 / installation /

thx、このファイルのサイズを変更すると、qemu-img resize Docker.qcow2 + 5gforums.docker.com/t/…で機能します
クリスチャン

このディレクトリの場所を知っていますか?@christian
Jason Xu

回答:


50

この回答を見る

Docker for Mac Applicationを使用している場合、コンテナは次の場所にあるVM内に格納されているようです。

〜/ライブラリ/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2


51
Googleからアクセスした場合は、下にスクロールして正しい答えを見つけてください。
user1717828 2018

167

上記の回答で述べたように、次の場所にあります。
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

ttyを実行したら、次の場所に移動できます /var/lib/docker


4
1つのわずかな変更(ルートの下ではなく、自宅の下): "screen〜/ Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / tty"
pdenti

1
動作します!しかし、どうすればそのシェルを終了できますか?Ctrl + d 、、、exitおよび機能しlogoutません。
thomaskonrad 2018年

6
ctrl + a + d
Mik jaggerで

13
切り離しても、screenセッションは引き続き実行されます。を実行すると、これを確認できますscreen -ls。すでに切り離されている場合は、を実行しscreen -X quitます。スクリーンセッションが複数ある場合は-S、セッション名を指定する必要があります。切り離していない場合は、ctrl + a、:、q、u、i、t、Enterキーを押してください。これら2つは、セッションでscreen quitコマンドを実行するだけです。
dosentmatter 2018

15
今は〜/ Library / Containers / com.docker.docker / Data / vms / 0 / ttyにあると思います。
リチャードコレット

57

Docker for 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-終了することが、その後、\ CTL- /var/lib/dockerあなたが実行した後にされているVMであるscreenので、例えばls /var/lib/dockerなど
アレクセイMartianov

1
私はで厄介なシェルを処分したscreen -lsし、その後screen -X -S SESSION_NAME quitのすべてのセッションのために。ctr-Aを使用して切断した場合、Dを使用して画面に再接続し、screen -Rクリーンなシェルを取得することもできます。
AndreasRiedmüller

13

@Dmitriyが言ったように:

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

ctrl a+ dを使用して画面を切り離すことができます

を使用screen -drして画面を再接続します(単に画面を再度接続すると、端末テキストが文字化けするため)。

参照

あなたが終了し、使用したい場合やctrl + a+ k、その後、選択y画面を殺すために。


5

ゾンビスレッドの一部ですが、ここで見つけただけで、画面を必要とせず、シェルなどを台無しにする別のソリューションです。

からリストされたパス 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」の時間の前にあります。VirtualBoxVMが「デフォルト」であり、このVM内のパスが存在する(確かに)場合、「Docker for Mac Application」の時間です。 qemu base vmであるDocker.qcow2イメージがあります。このVM内にジャンプする@ mik-jagger方法は問題ありません(ただし、さらにいくつかあります)。


0

私はそのファイルを言うでしょう:

/var/run/docker.sock

実際には:

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

これを実行する場合、実行中のVirtualBox 5.2.8以降との共有/Volumes が自動マウントされて永続的に設定され、かつそのバージョンのVirtualboxでデフォルトのdocker-machineを生成している限り、それが証明されるはずです。

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

次に、192.168.99.100:9000またはlocalhost:9000でPortainerにアクセスします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.