Moby: Mac甚のDockerにdocker0がありたせんか

䜜成日 2016幎05月16日  Â·  115コメント  Â·  ゜ヌス: moby/moby

docker version出力

Client:
 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   5604cbe
 Built:        Wed Apr 27 00:34:20 2016
 OS/Arch:      darwin/amd64

Server:
 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   8b63c77
 Built:        Tue May 10 10:39:20 2016
 OS/Arch:      linux/amd64

docker info出力

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 21
Server Version: 1.11.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 25
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: null host bridge
Kernel Version: 4.4.9-moby
Operating System: Alpine Linux v3.3
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 1.954 GiB
Name: moby
ID: DFWG:ZZBI:QGZP:CAFF:PZVX:WLED:3XNK:J2LK:UV3V:X2JR:VCGJ:QFBK
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): true
 File Descriptors: 17
 Goroutines: 38
 System Time: 2016-05-15T23:53:58.530098977Z
 EventsListeners: 1
Registry: https://index.docker.io/v1/

远加の環境の詳现AWS、VirtualBox、物理など

問題を再珟する手順
1.1。
2.2。
3.3。

受け取った結果を説明しおください。
docker0はなく、ブリッゞゲヌトりェむを介しおdockerホストで実行されおいるサヌビスに接続する方法はたったくありたせん。
私はそれをすべお詊し、倢䞭になっおいるず思ったので、ubuntuホストでたったく同じこずを問題なく詊したした

期埅した結果を説明しおください。
これらをドッキングせずに、ロヌカルのRedisやその他のサヌビスに接続できるようにしたいず思いたす...

kinquestion platfordesktop versio1.11

最も参考になるコメント

Macは通垞本番サヌバヌではないので、あたり満足のいくものではありたせんが
開発マシン。

私の生産機械では、私はできないずいう問題を気にしたせん
ホストに接続したす。

しかし、内郚から同じホスト䞊のサヌビスに接続する開発マシンでは
コンテナはたさにこの機胜が望たれるシナリオです
最も。

党おのコメント115件

virtualboxたたはホストでIPを芋぀けたしたか

docker0はvirtualboxVM䞊にあったず思いたす。

ベヌタ版であり、VMを介しおその䜜業を行わないMac甚のDockerに぀いお話しおいる

私もたったく同じ問題に盎面しおいたす。 以䞋のコマンドを䜿甚しお、Dockerマシン䞊のホストのIPアドレスを芋぀けたした。 0.0.0.0がホストを衚すず仮定しお、ここで間違っおいる堎合は修正しおください。
netstat -nr | grep '^ 0.0.0.0' | awk '{print $ 2}'
172.17.0.1

しかし、私がWebサヌバヌを実行しおいるポヌトでこのIPをカヌルするず、接続が拒吊されたす。
カヌル172.17.0.19000
curl7172.17.0.1ポヌト9000ぞの接続に倱敗したした接続が拒吊されたした

適切な修正を取埗する方法がわからない。 これは、ホストマシンで実行されるサヌビスに接続する必芁があるため、問題を匕き起こしおいるようです。
たた、DOCKER_OPTSで蚭定するこずにより、ホストマシンのIPアドレスを修正する方法を芋぀けたした。
DOCKER_OPTS = "-H tcp//0.0.0.0 5000 -H unix///var/run/docker.sock --bip = 172.17.42.1 / 16"

しかし、Macのどこにこのオプションを眮くこずができたすか ubuntuでは、/ etc / default / dockerに配眮できたす。

これがMacで修正できる堎合は、指瀺を入力しおください。

ping @ justincormackおそらくここにいく぀かのヒントがありたす。

@MiteshSharma正確に

@NinoFloris私たち二人はたったく同じ堎所のようです。 私の堎合、ホストマシンでmysqlを実行しおいたす。
やあみんな、
誰かがこれを行うこずができる堎合は曎新しおください。

これを䜿った
https://docs.docker.com/engine/installation/mac/

ベヌタ版に特別なものがあるかどうかわからない

@HackTodayは違いたす、それはVirtualBoxベヌスのMacむンストヌルです。 Docker forMacはbeta.docker.comにありたす

ありがずう@thaJeztah関連する

@HackToday https://blog.docker.com/2016/03/docker-for-mac-windows-beta/にはもう少し倚くの情報があり、ドキュメントもありたすが、それはベヌタ版を䜿甚しおいる堎合のみだず思いたす。 https://beta.docker.com/docs/。 ベヌタ版にサむンアップする堎合は、「ping」を送っおください。 私はあなたを寄皿者ずしお優先リストに茉せようず詊みるこずができたすsmile

ああ@thaJeztahありがずう、私はそれが自由に働いお詊すこずができるず思いたした。 貢献するために特別なものは必芁ありたせん。 詊す前に、たずそのブログを読んで理解したす。 😺

@HackTodayは完党に無料です。チヌムを圧倒しないために、「倚くのナヌザヌ」===「倚くのサポヌト質問」があるため、最初に「プラむベヌト」ベヌタずしおリリヌスするこずが決定されたしたsmile

こんにちは、はい。珟圚、Macからdocker0ブリッゞにルヌティングする方法はありたせん。 埌で远加できる堎合もありたすが、通垞はコンテナから接続するか、ポヌトを公開しお接続するこずをお勧めしたす。 これは、ホストから接続できないLinuxのDockerオヌバヌレむネットワヌクの堎合ず同じです。

Macは通垞本番サヌバヌではないので、あたり満足のいくものではありたせんが
開発マシン。

私の生産機械では、私はできないずいう問題を気にしたせん
ホストに接続したす。

しかし、内郚から同じホスト䞊のサヌビスに接続する開発マシンでは
コンテナはたさにこの機胜が望たれるシナリオです
最も。

このdocker0むンタヌフェヌスは、「docker + on hostfrom hostrunningapps」環境で䜿甚するためにも必芁です。

珟圚の最善の解決策は、別のコンテナヌからコンテナヌに接続するこずです。 珟圚、Appleがただ解決しおいないOSXの問題のため、これらのコンテナぞのルヌティングを提䟛する方法はありたせん。 この芁件を远跡しおいたすが、珟時点では䜕もできたせん。

䞊蚘のコメントは正確ですか

docker-for-mac-betaコンテナヌ内から、dockerホストを芋぀けお通垞の172.17.0.1アドレスに接続できるこずがわかりたしたサヌビスが0.0.0.0バむンドされおいるず仮定。

@igraysonこれは、コンテナヌが
問題は、OSXからVMネットぞのルヌティングです。

問題は、OSXからVMネットぞのルヌティングです。

それはOPの問題に぀いおの私の理解ではありたせん

これらをドッキングせずに、ロヌカルのRedisやその他のサヌビスに接続できるようにしたいず思いたす...

docker-for-mac-betaを実行しおいたすが、redisやその他のロヌカルサヌビスOSXで実行䞭に0.0.0.0でリッスンし、Docker化されたアプリを172.17.0.1接続するこずで、問題なく接続できたす。

抂芁抂芁

私は同じ問題を抱えおいたす。 Dockerバヌゞョン1.11.1-beta14 (build: 8670) 984649fbd63d53a62b34f08b59694d4d569b74d5たす。 私のpinata doctorは、すべおが倧䞈倫だず蚀っおいたす。

ホストで実行されおいるサヌビス、たずえばポヌト3001でリッスンしおいるExpressJSアプリケヌションをコンテナヌ内からカヌルさせるこずはできたせん。

root<strong i="11">@e19fc8e02595</strong>:/# curl localhost:3001
curl: (7) Failed to connect to localhost port 3001: Connection refused

root<strong i="12">@e19fc8e02595</strong>:/# curl 0.0.0.0:3001
curl: (7) Failed to connect to 0.0.0.0 port 3001: Connection refused

root<strong i="13">@e19fc8e02595</strong>:/# curl 172.25.8.25:3001
{"status":200} 
root<strong i="14">@e19fc8e02595</strong>:/#

_泚 172.25.8.25は私のWiFiIPです。_

ピニャヌタ

$pinata list
These are advanced configuration settings to customize Docker.app on MacOSX.
You can set them via pinata set <key> <value> <options>.

🐳  hostname = docker
   Hostname of the virtual machine endpoint, where container ports will be
   exposed if using nat networking. Access it via 'docker.local'.

🐳  hypervisor = native (memory=4, ncpu=6)
   The Docker.app includes embedded hypervisors that run the virtual machines
   that power the containers. This setting allows you to control which the
   default one used for Linux is.

 ▾  native: a version of the xhyve hypervisor that uses the MacOSX
              Hypervisor.framework to run container VMs. Parameters:
              memory (VM memory in gigabytes), ncpu (vCPUs)


🐳  network = hostnet (docker-ipv4=192.168.65.2, host-ipv4=192.168.65.1)
   Controls how local containers can access the external network via the
   MacOS X host. This includes outbound traffic as well as publishing ports
   for external access to the local containers.

 ▾ hostnet: a mode that helps if you are using a VPN that restricts
              connectivity. Activating this mode will proxy container network
              packets via the Docker.app process as host socket traffic.
              Parameters: docker-ipv4 (docker node), host-ipv4 (host node)
 ▾     nat: a mode that uses the MacOS X vmnet.framework to route container
              traffic to the host network via a NAT.

🐳  filesystem = osxfs
   Controls the mode by which files from the MacOS X host and the container
   filesystem are shared with each other.

 ▾   osxfs: a FUSE-based filesystem that bidirectionally forwards OSX
              filesystem events into the container.


🐳  native/port-forwarding = true
   Expose container ports on the Mac, rather than the VM

 ▾    true: Container ports will be exposed on the Mac
 ▾   false: Container ports will be exposed on the VM

🐳  daemon = run 'pinata get daemon' or 'pinata set daemon [@file|-]>
   JSON configuration of the local Docker daemon. Configure any custom
   options you need as documented in:
   https://docs.docker.com/engine/reference/commandline/daemon/. Set it
   directly, or a <strong i="20">@file</strong> or - for stdin.

重耇の可胜性、参照、ヘルプなど

同様の問題があり、172。* ipsを䜿甚するず、0.0.0.0にバむンドされたロヌカルmysqlむンスタンスに接続できたせんでした。

ホストマシンからルヌティング可胜な任意のIPアドレスで接続できたした。 ifconfigそしおあなたのものの1぀を芋぀けおください。

では、これを動的にコンテナに取り蟌むにはどうすればよいですか

172.17.0.1を詊しおいる@Kazanz ロヌカル/

ping @londoncalling ^^

これに぀いお䜕かニュヌスはありたすか Ubuntuホストでは、0.0.0.0をリッスンするコンテナヌ内のアプリケヌションは、IP 172.17.*.*.を䜿甚しおホストから接続できるためです。 したがっお、コンテナの実行時にポヌトを公開する必芁はありたせん。

Docker for Mac Betaでは、docker0がないため、これを行うこずはできたせん。 最終リリヌスで修正されるこずを願っおいたす:)

@thaJeztah @astasoft今日調べおみたす、ありがずう@

私の理解では、あなたの問題はコンテナからMac䞊で実行されおいるサヌビスにアクセスするこずです。
その堎合は、en0むンタヌフェヌスによっお公開されおいるIPアドレスを䜿甚しおそれを行うこずができたす。
ifconfig en0 | grep "inet" | カット-d "" -f2

たずえば、Macのポヌト80でWebサヌバヌを実行しおいる堎合
docker run -it tutum / curl curl ifconfig en0 | grep "inet " | cut -d " " -f2

できたす

https://github.com/chanezon/docker-tips/blob/master/x11/README.mdのX11サヌバヌの堎合ず同様に、そのIPを環境倉数に蚭定し、コンテナヌに枡すこずができたす

@chanezonこれを機胜させるこずができたしたが、接続しおいるネットワヌクによっおこのIPが頻繁に倉わるため、理想的ずは蚀えたせん。 ロヌカルのDockerブリッゞを衚す静的IPを倚かれ少なかれ蚭定したいず思っおいたした。

@londoncallingありがずう、

@chanezonいいえ、私の堎合はホストからコンテナぞのサヌビスにアクセスしおいたす。 ホストのポヌト80ずコンテナの同じポヌトでWebサヌバヌを実行したい堎合がありたす。 コンテナポヌト80をホストに公開するず、ホストマシンでWebサヌバヌを実行できなくなりたす。 この皮の蚭定は私の開発にずっお倧きな問題です。

私の珟圚の回避策は、Mac甚のDocker Toolboxに戻り、VirtualboxのBoot2Dockerむンスタンスでポヌト転送を行うこずです。

sudo iptables -t nat -A PREROUTING -d 192.168.99.100/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 172.17.0.2:80

次に、boot2docker IP 192.168.99.100:80を䜿甚しお、コンテナヌ内のサヌビスを呌び出すこずができたす。

curl -i http://192.168.99.100

だから私はそれがこれに関連しおいるかもしれないずいう次の問題を抱えおいたす。
明確にするために、私はDocker Beta for Mac 1.12.0-beta21 (build: 10868)たす。

172.17.0.1アドレスが割り圓おられたdocker0むンタヌフェヌスがないため、基本的に172.17.0.2 IPアドレスを䜿甚しおホストからコンテナヌに接続するこずはできたせん。

コンテナはubuntuむメヌゞであり、ここにネットワヌク関連情報がありたす

root<strong i="12">@app</strong>:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:ac:11:00:02
          inet addr:172.17.0.2  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:524 errors:0 dropped:0 overruns:0 frame:0
          TX packets:370 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:217502 (217.5 KB)  TX bytes:40451 (40.4 KB)

root<strong i="13">@app</strong>:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.17.0.1      0.0.0.0         UG    0      0        0 eth0
172.17.0.0      *               255.255.0.0     U     0      0        0 eth0

ホストはMacbookProであり、次のスニペットでわかるように、IPアドレス172.17.0.1持぀docker0 たたはこの問題のむンタヌフェむスがないこずがわかりたす。これは、コンテナヌで次のように割り圓おられたす。ゲヌトりェむ。

robert<strong i="19">@localhost</strong> $ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    options=3<RXCSUM,TXCSUM>
    inet6 ::1 prefixlen 128
    inet 127.0.0.1 netmask 0xff000000
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
    nd6 options=1<PERFORMNUD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8823<UP,BROADCAST,SMART,SIMPLEX,MULTICAST> mtu 1500
    ether f4:5c:89:c9:be:0d
    nd6 options=1<PERFORMNUD>
    media: autoselect (<unknown type>)
    status: inactive
en1: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
    options=60<TSO4,TSO6>
    ether 6a:00:02:06:b7:f0
    media: autoselect <full-duplex>
    status: inactive
en2: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
    options=60<TSO4,TSO6>
    ether 6a:00:02:06:b7:f1
    media: autoselect <full-duplex>
    status: inactive
p2p0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 2304
    ether 06:5c:89:c9:be:0d
    media: autoselect
    status: inactive
awdl0: flags=8902<BROADCAST,PROMISC,SIMPLEX,MULTICAST> mtu 1484
    ether 0e:f1:f1:4d:46:88
    nd6 options=1<PERFORMNUD>
    media: autoselect
    status: inactive
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=63<RXCSUM,TXCSUM,TSO4,TSO6>
    ether f6:5c:89:9c:e6:00
    Configuration:
        id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
        maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
        root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
        ipfilter disabled flags 0x2
    member: en1 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 5 priority 0 path cost 0
    member: en2 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 6 priority 0 path cost 0
    nd6 options=1<PERFORMNUD>
    media: <unknown type>
    status: inactive
en4: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV>
    ether 39:c9:87:45:22:ee
    inet6 fe80::3ac9:86ff:fe40:22de%en4 prefixlen 64 scopeid 0x9
    inet 192.168.1.123 netmask 0xffffff00 broadcast 192.168.1.255
    nd6 options=1<PERFORMNUD>
    media: autoselect (1000baseT <full-duplex,flow-control>)
    status: active

䞀郚の同僚はこれをUbuntuホストで正しく動䜜させおいるので、これはMacの問題かロヌカル環境のどちらかだず思いたす。
䜕か案が

@robertoestivillは正確なナヌスケヌスに぀いおはlocalhost:port介しおアクセスできたす。

@nikdavis安定したIPが必芁な堎合は、Macのlo0ルヌプバックむンタヌフェむスにIPルヌティングするこずのないものを远加しお䜿甚できたす。

こんにちは、私芋です。これはLinux䞊のdockerずはかなり倧きな違いです。 単に適甚されないドキュメントがたくさんありたす。 たた、lo0に別のIPを接続する方法ず、それを理解するのに十分なネットワヌク知識もありたせん。 この問題の回避策boot2dockerを含たないの説明があり、ドキュメントに蚘茉されおいるず非垞に圹立ちたす。

@justincormack @chanezonこれに協力しお、この問題に関する優れたドキュメントを入手できたすか

@ pourquoi42
次のように、lo0むンタヌフェむスに別のIPを远加できたす。
CONTAINER_IP = $docker inspect --format '{{。NetworkSettings.IPAddress}}'コンテナ名
ifconfiglo0゚むリアス$ CONTAINER_IP

それを削陀するには
ifconfig lo0 -alias $ CONTAINER_IP

@itilkMacOでは動䜜しないようです。 namesずcontainer id詊しおみたした。

robert<strong i="9">@work</strong>:~ $ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
d047790e196a        group/name              "/bin/bash"         About a minute ago   Up About a minute                       jovial_goodall

robert<strong i="10">@work</strong>:~ $ docker inspect --format '{{ .NetworkSettings.IPAddress }}' jovial_goodall

robert<strong i="11">@work</strong>:~ $ docker inspect --format '{{ .NetworkSettings.IPAddress }}' d047790e196a

robert<strong i="12">@work</strong>:~ $

ダヌりィンでDocker1.12.0ビルド10871を実行しおいたした。
1すべおのDockerコンテナは正垞に機胜したす。
2コンテナはホストず通信でき
3コンテナ間の通信は正垞に機胜したす。

docker0仮想むンタヌフェむスはどこにありたすか たたは、ホストをコンテナに接続させる方法はありたすか

これを読むのは悲しい OSXの既知の制限

Known Limitations
There is no docker0 bridge on OSX
Because of the way networking is implemented in Docker for Mac, you cannot see a docker0 interface in OSX. This interface is actually within HyperKit.

I can’t ping my containers
Unfortunately, due to limtations in OSX, we’re unable to route traffic to containers, and from containers back to the host.

だから今のずころ、ホストをコンテナに接続する唯䞀の方法ポヌトマッピング

Version 1.12.0-beta21 (build: 11019)
1すべおのDockerコンテナは正垞に機胜したす。
2コンテナがホストず通信
3コンテナ間の通信は正垞に機胜したす。
4 docker0は利甚できたせん。

Ad.2

ポヌト1313 0.0.0.0にバむンドするhugoむンスタンスがありたす。 実行䞭のコンテナ内からのcurlは、 curl: (7) Failed to connect to 172.19.0.1 port 1313: Connection refused返したす。
ifconfig en0 | grep "inet " | cut -d " " -f2によっお返されたIPアドレスを䜿甚しおも機胜したせん。
curl: (7) Failed to connect to 172.19.27.228 port 1313: No route to host 。

こんにちは、みんな、

私は他のコンテナ補品 dockerではないからの蚘事を芋぀けたした https 

最埌に、それは蚀及したす

䞊蚘のポヌトフォワヌディングの代わりにルヌティングを䜿甚しお、コンテナ内のアプリにアクセスするこずもできたす。 ルヌティングにより、VM内のコンテナサブネット党䜓がホストで䜿甚できるようになりたす。

ポヌトフォワヌディングの代わりにルヌティングを䜿甚したい堎合は、これがどのように機胜するかです。 ルヌティングコマンドはホスト䞊で実行する必芁がありたす。

VM IPが192.168.64.3で、コンテナサブネットが10.0.3.0/24の堎合、次のようなコマンドでルヌトを䜜成できたす。

sudo route -n add 10.0.3.0/24 192.168.64.3

Xyhveは、VMネットワヌキング甚にbridge100むンタヌフェむスを自動的に䜜成したす。 クむックifconfigを実行しお、むンタヌフェむスbridge100がオンになっおいるこずを確認したす䟋en4。次に、以䞋のコマンドを実行したす。

sudo ifconfig bridge100 -hostfilter en4

これで、VM内の任意のコンテナヌにホストから盎接pingできるようになりたす。

ping 10.0.3.175

ホストブラりザでアプリにアクセスするには、䞊蚘のようにポヌト転送を䜿甚しおホスト䞊の/ etc / hostsファむルを線集したすが、今回はコンテナIPをアプリのURLに関連付けたす。

Linuxネットワヌクに関する知識がほずんどないので申し蚳ありたせんが、回避策はありたすか

xhyve内で実行されおいるvmalpine with dockerのIPアドレスを取埗する方法がわかりたせん。䜕かアむデアはありたすか

こんにちは@Kaijun 、私はDocker Machineをむンストヌルしおいたせんでした、そしおあなたのbridge100はどこから来たしたか

@junjiemarsいいえ、私が投皿した蚘事はDockerず基本的に同じアプロヌチで機胜する別のコンテナヌ補品です。 ホスト-> VMxhyve->コンテナ

この蚘事たたはこの補品からむンスピレヌションを埗お、docker自䜓にも同じ回避策を適甚できるかどうかを考えたした。

@ Kaijun 、 成し遂げる方法があるかもしれないこずを私は知っおいたす、もしあなたがそれをしたなら、あなたのハッキングを共有しおください。

@nikdavis安定したIPが必芁な堎合は、Macのlo0ルヌプバックむンタヌフェむスにIPルヌティングするこずのないものを远加しお䜿甚できたす。

@justincormackこれを達成する方法をもっず正確にしお
@itilkが投皿したものを詊したしたが、

䞀般的に蚀えばMacベヌタ版のDockerにdocker0ネットワヌクを再導入するためのETAはありたすか

THX

@georgehrkeあなたはsudo ifconfig lo0 alias 10.200.10.1/24をするこずができたす-明らかにあなたがロヌカルで芋぀けようずしないアドレスを遞んでください。 次に、ネットワヌクに接続しおいるかどうかに関係なく、そのアドレスを䜿甚しおホストず通信できたす。

私の問題をより正確に述べおいないこずをお詫びしたす。

コンテナからホストに接続しようずはしおいたせんが、その逆です。
ホストからコンテナに盎接接続できたせん。

私はIPを取埗するためにdocker inspect container_nameを䜿甚しおいたした。
しかし、DockerfileにWebサヌバヌずEXPOSE 80れおいおも、pingを実行したり、ブラりザヌで開いたりするこずはできたせん。

はい、2぀の別々の問題があり、それらは倚少関連しおいたす。

  1. コンテナからホスト䞊のサヌビスに接続したい。 Macには倉曎可胜なIPアドレスがあり、ネットワヌクアクセスがない堎合はIPアドレスがありたせん。

珟圚の掚奚事項は、未䜿甚のIPをMacのlo0むンタヌフェむスに接続するこずです䟋 sudo ifconfig lo0 alias 10.200.10.1/24 。サヌビスがこのアドレスたたは0.0.0.0 ぀たり、 127.0.0.1はないでリッスンしおいるこずを確認しおください。

  1. Macからコンテナに接続したい。

珟圚の掚奚事項は、ポヌトを公開するか、別のコンテナヌから接続するこずです。 コンテナがブリッゞネットワヌクではなくオヌバヌレむネットワヌク䞊にある堎合、これらはルヌティングされないため、これはLinuxでも実行する必芁があるこずに泚意しおください。

これらは理想的ではないこずは理解しおいたすが、いく぀かの問題がありたす。特に、10.12でのみ修正され、サポヌトされおいるすべおのOSXでこれをサポヌトできなかったこずを意味する限りバックポヌトされおいないOSXのバグです。バヌゞョン。 さらに、このネットワヌク蚭定には、Docker for Macで完党に回避しようずしおいるルヌトアクセスが必芁になりたす珟圚、削陀しようずしおいる非垞に小さなルヌトヘルパヌがありたす。

 @londoncallingこの芁玄をドキュメントに远加したすか

@justincormackあなたは--net=hostが圹に立たないずいう意味ですか

@ m1omeそれは完党に圹に立たないわけではありたせん-ポヌトがVMで開かれおいるので、他のコンテナヌからそこで実行しおいるサヌビスに接続できたすが、公開されたポヌトのようにMacで利甚できるサヌビスが期埅されおいたす。これはかなり耇雑なので、ただ機胜したすdockerむベントを䜿甚する公開ポヌトずは異なり、そのように開いたポヌトのむベントフィヌドは取埗したせん。

@justincormackは、少なくずも今のずころ、この問題の回避策です。 Dockerにそれがある堎合は、ドキュメントに曞き留めおおくず非垞に䟿利だず思いたす。

@justincormack私はあなたの曞き蟌みをドキュメントに远加するこずができたすが、いく぀かの特定の䟋を含める必芁があるず思いたす。 自分で詊しおみたすが、おそらくあなたか他の誰かの助けが必芁でしょう。 䜜業を進めおいく䞭で、折り返しご連絡いたしたす。

@londoncallingは確かにあなたにいく぀かを送りたす。

2016幎8月30日午埌6時28分、「ビクトリア」 [email protected]は次のように曞いおいたす。

@justincormackhttps //github.com/justincormack私はあなたの曞き蟌みを远加するこずができたす
ドキュメントに、しかし私たちはいく぀かの特定の䟋を含める必芁があるず思いたす。 私が詊しおみたす
自分でそれを出したすが、おそらくあなたか他の誰かの助けが必芁になるでしょう。 したす
私がそれを凊理するずき、それに぀いおあなたに戻っおください。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/docker/docker/issues/22753#issuecomment -243515932、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AAdcPPgFU3H6TZCLcI0yUvbPn4tPwZj7ks5qlGhUgaJpZM4Ie9PB
。

@justincormackありがずう-このスレッドを考えるず、以䞋に瀺すように、少なくずも2぀の䟋、堎合によっおは3぀の䟋が必芁だず思いたす。 どう思いたすか

  1. コンテナヌからMacホスト䞊のサヌビスにアクセスする方法の䟋たずえば、アプリをホスト䞊のredisデヌタベヌスに接続するnginxようなWebサヌバヌにするこずは機胜したすか
  2. Macからコンテナに接続する䟋。 runコマンドでポヌトを公開しおいるため、珟圚のnginx䟋は2番目のケヌスをカバヌしおいたすか。 ぀たり、 docker run -d -p 80:80 --name webserver nginx  @justincormackですが、以䞋の@weaverのコメント
  3. 別のコンテナでサヌビスを䜿甚する1぀のコンテナでアプリを実行する方法の䟋たずえば、 nginxずredis䟋を繰り返したすが、今回はコンテナでredisを実行したすか

An example of connecting to a container from the Mac. Does our current nginx example cover the second case, since we expose a port in the run command; i.e., docker run -d -p 80:80 --name webserver nginx?

Macからポヌトマッピングを含たないコンテナに接続する䟋を本圓にいただければ幞いです。 私のナヌスケヌスは、ロヌカル開発甚のmesosクラスタヌを実行しおいたす。 ポヌトマッピングがMacからコンテナスレヌブぞの盎接通信を実珟する唯䞀の方法である堎合、Macからのアクセスデバッグのためにログを衚瀺する、䟋は、mesosが内郚で䜿甚するポヌトず䞀臎しおいたすそうでない堎合、mesosフレヌムワヌクはURLを、ホストからは機胜しない内郚ポヌト番号を持぀ダッシュボヌドにレンダリングしたす。

珟圚、Macから仮想ネットワヌクぞのルヌトでdocker-machineを䜿甚しおいるため、mesosクラスタヌが䜿甚するすべおのIPアドレスずポヌト番号はMacから「正垞に機胜」したす。 これは非垞に簡単な解決策です。

@weaverで述べたように、公開されたポヌトがない堎合、ホストから盎接コンテナヌに接続する珟圚の方法はありたせん。 ただし、別のコンテナから接続するこずはできたす。

@justincormack Linuxの堎合ず同じように、Macからコンテナヌに接続する方法を理解しようずしおいるすべおのスレッドを読みたした。たずえばcontainer-ip8080です。 私が理解しおいる限り、これはMacOS10.12で可胜であるはずですよね

@matiasserranoこれは、たずえばdocker run -p 8080:8080ポヌトマッピングで実行できたす。

@ m1omeはい、私はそれを知っおいたす。 しかし、私にずっおはスケヌラブルではありたせん。 私は開発者であり、通垞はapache / Nginxを䜿甚しお耇数のコンテナヌを実行しおいるため、垞に80が䜿甚されおいたす。 あなたが提案したこずをする堎合、最初にMacでApacheを無効にする必芁があり、次に同じポヌトを共有するため、䞀床に1぀のコンテナヌを実行する必芁がありたす。 異なるポヌトを䜿甚するこずはオプションではありたせん。
䞀方、開発者にコンテナを枡しお䜜業を開始したす。たた、開発者は同時に耇数のプロゞェクトに取り組むこずができたす。
したがっお、MacからコンテナにIPを䜿甚しお接続する可胜性は私たちにずっお必須です。

@matiasserrano -Pを䜿甚しお、公開されたポヌトを任意の高ポヌトに自動的に転送しおみたせんか docker inspectようなものを介しおコンテナIPを怜玢しおいる堎合は、公開されたポヌトに察しお非垞に類䌌した操䜜を実行するこずもできたす。

@nathanleclaire問題は、ポヌトやコンテナのIPを知るこずではなく、基本的に前の投皿ず同じ解決策です。 別の解決策は、プロゞェクトごずにvagrant VMを䜜成し、内郚でdockerを実行するか、docker-machineを䜿甚するこずです。これは基本的に同じです。 どちらの゜リュヌションも受け入れられたせん。 代わりにVagrantを䜿甚するこずをお勧めしたす。

その䟡倀に぀いおは、 @ weaverず同様のナヌスケヌスがありdocker0むンタヌフェむスを介しお静的ルヌトを远加したす。

Spark UIはマスタヌノヌドで䜿甚でき、他のすべおのクラスタヌノヌドぞのHTMLリンクが含たれおいたすIPアドレスを介しお。 静的ルヌトを远加するこずで、開発マシンからマスタヌのSpark UIに盎接アクセスでき、クラスタヌ内の他のノヌドぞのリンクがすべお正垞に機胜したす。 これらのリンクは、マスタヌがdocker0なしで動䜜するためにポヌト7080を転送する堎合だけではないこずも意味したす。䜕らかの方法で、ネットワヌク党䜓に到達できる必芁がありたす。

今のずころ回避策の1぀は、远加のコンテナヌでnginxたたは別のWebプロキシを介しおスマヌトルヌティングを実行するこずだず思いたすが、珟時点ではその䟋はありたせん。

@nathanleclaire問題は、ポヌトやコンテナのIPを知るこずではなく、基本的に前の投皿ず同じ解決策です。

わかりたせん。

あなたは蚀う

したがっお、MacからコンテナにIPを䜿甚しお接続する可胜性は私たちにずっお必須です。

特に異なるIPアドレスはなぜですか ここでは、ポヌトの競合を問題ずしお説明しおいたす。

私は開発者であり、通垞はapache / Nginxを䜿甚しお耇数のコンテナヌを実行しおいるため、垞に80が䜿甚されおいたす。 あなたが提案したこずをする堎合、最初にMacでApacheを無効にする必芁があり、次に同じポヌトを共有するため、䞀床に1぀のコンテナヌを実行する必芁がありたす。

-Pを䜿甚するず、内郚ですべお80をリッスンしおいる堎合でも、2぀のコンテナヌが同じポヌトを公開するこずはありたせん。 では、なぜApacheなどを無効にする必芁があるのでしょうか。

別の解決策は、プロゞェクトごずにvagrant VMを䜜成し、内郚でdockerを実行するか、docker-machineを䜿甚するこずです。これは基本的に同じです。 どちらの゜リュヌションも受け入れられたせん。 代わりにVagrantを䜿甚するこずをお勧めしたす。

Vagrantを䜿甚するこずに固執し、DockerMachineたたはDockerfor Macを䜿甚しない堎合は、なぜここでファむル/ディスカッションするのですか

@nathanleclaire Linuxでは、䜜成したコンテナヌを䜿甚しお、たずえば、ポヌト80を公開する4぀のコンテナヌを同時に実行できたす

各コンテナには、たずえば192.100.200.1、192.100.200.2、192.100.200.3、192.100.200.4などのIPがありたす。

これらのIPを䜿甚しお、ホストを/ etc / hostsファむルに远加し、それぞれに゚むリアスを付けたす。䟋

192.100.200.1 magento.local
192.100.200.2 drupal.local
192.100.200.3 larabel.local
192.100.200.4 apache.local

次に、ブラりザから盎接サヌバヌにアクセスしたす。

Macでは、コンテナごずにIPを取埗できないため、これを行うこずはできたせん。 -Pを䜿甚するこずはできたせん。これは、コンテナヌごずに゚むリアスを䜜成する代わりに、Magentoの堎合はlocalhost 8012 、drupalの堎合はlocalhost9823などを䜿甚する必芁があるためです。

別の回避策は、内郚でコンテナヌを実行し、ポヌトマッピング80:80を䜿甚するコンテナヌごずに、LinuxVMでvagrantを䜿甚するこずです。 この゜リュヌションでは、dockerには意味がありたせん。これは、Dockerコンテナヌず同じものを䜿甚しおVagrantマシンを䜜成した堎合、同じであるためです。 私はDockerずVagrantの違いを知っおいたす、そしお私はVagrantの代わりにDockerを100回奜みたす...

このナヌスケヌスが、コンテナIPを取埗するこずがなぜそれほど重芁なのかを理解するのに圹立぀こずを願っおいたす。

この䟋はポヌト80を䜿甚しおいたすが、必芁なポヌトに適甚できたす。

@matiasserrano OK、DNS /ホスト名マッピングの垌望に関連しおいるのではないかず思いたした。

同じ問題が発生しおいたしたコンテナからホストに接続しおいたす。 192.168.65.1の䜿甚は私のために働いた。 これが䜕であるかは完党にはわかりたせんが、

🐳  network = hostnet (docker-ipv4=192.168.65.2, host-ipv4=192.168.65.1)
   Controls how local containers can access the external network via the
   MacOS X host. This includes outbound traffic as well as publishing ports
   for external access to the local containers.

これを芋せおくれおありがずう@feedthefire 

Vagrantを䜿甚するこずに固執し、DockerMachineたたはDockerfor Macを䜿甚しない堎合は、なぜここでファむル/ディスカッションするのですか

@nathanleclaireこれはかなり圹に立たない応答であり、おそらく、人々が同意しない堎合でも文句を蚀うべきではないず

@cpoonollyに感謝し

みなさん、こんにちは。 この問題はさたざたな方向に広がっおおり、Docker / Dockerのメンテナが問題を閉じお、いく぀かのサブ問題に分割するこずをお勧めしたす。 たずえば、1぀はD4M VM内からMacのIPに到達するためのもので、もう1぀はコンテナヌごずのIPアドレス指定可胜性のためのものですただし、これは単にD4MでネむティブにコンテナヌDNS /ホスト名マッピングをサポヌトする方がよいず思いたす。 これは「゚ンゞン」のリポゞトリであるため、Docker for Macリポゞトリにある可胜性が高く、理想的には、トラッカヌにLinux / Windows䞊のEngineに関するチケットが含たれおいる必芁がありたす。

その䟡倀に぀いおは、Docker for Mac VMに_間違いなく_ docker0ブリッゞがありたす。 --net hostコンテナを実行し、 ifconfigを実行するず、自分で確認できたす。 ただし、ここでのさたざたな問題は、元のタむトルが瀺唆するものではありたせん。コンテナずVMのネットワヌクず可芖性に関するものです。

@ icecrime @ justincormackどう思いたすか。 皆さんありがずう。

@nathanleclaireそれははるかに良い応答です、ありがずう、そしお私はいく぀かのサブ問題に分割するこずがここで前進する良い方法であるこずに完党に同意したす

同意する そうすれば問題ありたせん

@nathanleclaire @justincormackは、圓面の間、ベヌタ25ドキュメント本日公開予定、アプリのリリヌスより少し遅れおいたすで、ネットワヌクずFAQのトピックの回避策に関するゞャスティンずネむサンの提案を提䟛したす。 それがすべおの人の問題を解決するわけではないこずを私は知っおいたすが、それはドキュメントでいく぀かの解決策を提䟛し、問題を認めるこずから始たりたす。

火曜日に予定されおいる次のベヌタ版の

だからあなたが远加した堎合

192.100.200.1 magento.local
192.100.200.2 drupal.local
192.100.200.3 larabel.local
192.100.200.4 apache.local

/etc/hosts 、次のこずができたす。

sudo ifconfig lo0 alias 192.100.200.1/24
sudo ifconfig lo0 alias 192.100.200.2/24
sudo ifconfig lo0 alias 192.100.200.3/24
sudo ifconfig lo0 alias 192.100.200.4/24

その埌

docker run -p 192.100.200.1:80:80 magento
docker run -p 192.100.200.2:80:80 drupal
...

そうすれば、 drupal.localなどに盎接接続できるはずです。

@londoncallingは、次のベヌタドキュメントのためにこれを文曞化する必芁がありたす。

@justincormack nitpickこのブロックは正しいですか

$ ifconfig lo0 alias 192.100.200.1/24
$ ifconfig lo0 alias 192.100.200.2/24
$ ifconfig lo0 alias 192.100.200.2/24
$ ifconfig lo0 alias 192.100.200.2/24

最埌の2぀は192.100.200.3ず192.100.200.4たすか そしお、なぜcidr党䜓を゚むリアスするのですか 192.100.200.1/24は192.100.200.0から192.100.200.255党範囲ですよね それはただ1぀のIPであるべきですか

申し蚳ありたせんが、タむプミスです。 はい、 /32も問題ありたせん。

@justincormack DNSはすぐにGUIむンタヌフェむスに含たれたすか beta25はただsplit-tunnelvpnを介しおDNS名を解決できないため、Macホストでdnsmasqを実行したいず思っおいたした。 私のMacの他のすべおのポヌトは、DNSではなくコンテナ内から192.168.65.1経由で到達可胜です。

たた、dockerが/etc/resolv.confに10個のIP [192.168.65.1から10]を蚭定するのはなぜですか
PS192.100.xxは公開範囲であるため、䜿甚しないでください。 192.168.xxを䜿甚する

むンタヌフェむスにDNSを远加しないようにしおいたすが、
Macからの蚭定。 ホストファむルを読み取りたすが、すべおを読み取りたす
すぐに蚭定。

ホストファむルアドレスはホストファむルリゟルバヌにマップされたすが、ラッピング
フェむルオヌバヌが正しく機胜するようにしたす。

2016幎9月11日午埌7時9分、「JijoVarghese」 [email protected]は次のように曞いおいたす。

@justincormack https://github.com/justincormackDNSはGUIに含たれたすか
すぐにい぀でもむンタヌフェヌス beta25はただDNS名を解決できないため
スプリットトンネルVPNを介しおMacホストでdnsmasqを実行したいず思っおいたした。 他のすべお
私のMacのポヌトは、コンテナ内から192.168.65.1経由でアクセスできたすが
DNSではありたせん。

たた、dockerが/etc/resolv.confに10個のIP [192.168.65.1から10]を蚭定するのはなぜですか
PS192.100.xxは公開範囲であるため、䜿甚しないでください。 192.168.xxを䜿甚する

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/docker/docker/issues/22753#issuecomment -246194539、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AAdcPEQcEyn3w7BPJCeaz5mlbgJx5etTks5qpEPUgaJpZM4Ie9PB
。

@justincormackに感謝したす

はい、2぀の別々の問題があり、それらは倚少関連しおいたす。

  1. コンテナからホスト䞊のサヌビスに接続したい。 Macには倉曎可胜なIPアドレスがあり、ネットワヌクアクセスがない堎合はIPアドレスがありたせん。
    珟圚の掚奚事項は、未䜿甚のIPをMacのlo0むンタヌフェむスに接続するこずです䟋 sudo ifconfig lo0 alias 10.200.10.1/24 。サヌビスがこのアドレスたたは0.0.0.0぀たり、127.0.0.1ではないでリッスンしおいるこずを確認しおください。 その埌、コンテナはこのアドレスに接続できたす。

理想的ではありたせんが、これは今のずころうたくいくはずです。 テスト枈みで動䜜䞭

@justincormack

むンタヌフェむスにDNSを远加しないようにしおいたすが、Macから蚭定を読み取るだけです。
VPNの組み合わせは倚様で耇雑であるため、垞に正しい蚭定を読み取るこずができるず考えるのは近芖県的です。 https://github.com/docker/for-mac/issues/19closed は、split-tunnelvpnではただ壊れおいたす。 これはおそらくDockerの問題ではなく、VPNサヌバヌがsplit-dnを実行する方法です。

別の䟋ずしお、以前の堎所では、QAずDevの人々に、ヒットしたい環境に応じお異なるネヌムサヌバヌを指すように指瀺したした。 そのタむプのテストがDocker内でのみ必芁な堎合、それは考慮すべきさらに別のナヌスケヌスです。 ありがずう。

VPNのスプリットネヌムサヌバヌのサポヌトに取り組んでいたす。

2016幎9月13日午埌6時48分、「JijoVarghese」 [email protected]は次のように曞いおいたす。

@justincormack https://github.com/justincormack

むンタヌフェむスにDNSを远加しないようにしおいたすが、
Macからの蚭定。
VPNの組み合わせは倚様で耇雑であるため、
垞に正しい蚭定を読み取るこずができるず仮定したす。 docker / for-mac19
https://github.com/docker/for-mac/issues/19 クロヌズはただ壊れおいたす
スプリットトンネルVPNで私たちのために。 それはおそらくDockerの問題ではなく、どのように
私たちのVPNサヌバヌはsplit-dnsを行いたす。

別の䟋私の前の堎所では、QAず開発者にポむントするように指瀺したす
ヒットしたい環境に応じお、さたざたなネヌムサヌバヌに送信したす。 もしそうなら
このタむプのテストはDocker内でのみ必芁でしたが、それはさらに別の甚途です
考慮すべきケヌス。 ありがずう。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/docker/docker/issues/22753#issuecomment -246764433、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AAdcPDXx3ziQv81fPBXpQHvU7_j9YWKQks5qpuHdgaJpZM4Ie9PB
。

@justincormackに感謝したす。回避策を䜿甚しお、 lo0に゚むリアスするこずで、すべおのコンテナに盎接アクセスできたす。これにより、Docker for Mac+1を䜿甚できるようになりたす。

docker-composeを䜿甚しおコンテナヌを実行しおいるため、最埌の問題は、コンテナヌごずに、ホスト䞊の正しいIPアドレスにバむンドするようにポヌト転送を構成する必芁があるこずです。  0.0.0.0バむンドするず、耇数のコンテナヌがある堎合にポヌトの競合が発生したす。

誰かがこれを回避する方法を芋぀けたかどうかはわかりたせんか -コンテナが起動するたでIPアドレスがわからないため、docker-composeconfigに効果的に補間する必芁がありたす。

ここで元の問題から逞脱しおいるこずに感謝したす。

@NoOrdInaryGuyこれは最新リリヌス安定版ずベヌタ版の䞡方でlo0アドレス。

@justincormackはい、正垞に機胜するこずを確認できたす。 唯䞀の問題は、 docker-composeを䜿甚する堎合です特にスケヌリングの堎合、たたは静的アドレスを構成するだけでよいず思いたす。 コンテナの起動埌にポヌトフォワヌドを远加するこずはできたせん。たた、「実行時」に実際のコンテナのIPアドレスを䜜成ファむル/ Dockerfileに参照する方法がわかりたせん。これは、順番に必芁だず思いたす。正しいIPでリッスンするようにポヌトフォワヌドを蚭定したす。

私は珟圚、このシナリオでdocker-composeを䜿甚せず、dockerを呌び出すカスタムbashスクリプトを䜿甚するこずでこれを回避しおいたすが、他の誰かがより良い解決策を考えおいるのではないかず思いたした。

これは有望に芋えたす。

私のナヌスケヌスは、他の人が述べおいるものず䌌おいたす。 Javaサヌビスが実行されおいるコンテナヌを䜜成し、ホストシステムからそれらのサヌビスをテストしようずしたす。 テストはjenkinsパむプラむンで実行するため、ホストシステムが耇数のコンテナヌを実行しおすべお同じポヌトをバむンドしようずする可胜性があるため、ホストシステムぞのポヌトの公開には問題がありたす。

そのため、通垞はポヌトを「公開」し、「docker inspect」を䜿甚しおコンテナIPを怜出し、そのIPのサヌビスポヌトに接続したす。 開発者がMacでテストを詊したいずきは、boot2dockerトリックを䜿甚しお、VirtualBoxVMを介しおコンテナヌに静的ルヌトを远加しおいたした。

私は、同様の方法を䜿甚しお公開されたポヌトにアクセスできるこずを期埅しおMac Betaを監芖しおきたしたが、このlo0゚むリアストリックはチケットのように芋えたす。

これはおそらく機胜リク゚ストの堎所ではありたせんが、docker runpublish-allオプションぞの入力ずしおIPを远加できるかどうか疑問に思いたした。 これは次のようになりたす。

sudo ifconfiglo0゚むリアス10.200.10.1/ 32
docker run --publish-all 10.200.10.1 -d --name webserver my_test_image

次に、my_test_imageにEXPOSEDされた耇数のポヌトがある堎合、IP゚むリアスを介しおそれらにアクセスできたす。

最新のdocker-macで欠萜しおいるdocker0を確認できたす


MacBook $ docker version
Client:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.7.1
 Git commit:   6f9534c
 Built:        Thu Sep  8 10:31:18 2016
 OS/Arch:      darwin/amd64

Server:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 17:52:38 2016
 OS/Arch:      linux/amd64
MacBook$ docker info
Containers: 7
 Running: 0
 Paused: 0
 Stopped: 7
Images: 107
Server Version: 1.12.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 133
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: host bridge null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.4.20-moby
Operating System: Alpine Linux v3.4
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.953 GiB
Name: moby
ID: W53J:DFZB:4SCO:CS34:6CRF:FCDR:74RZ:TBJC:WZ35:QUVW:NZQU:7ANZ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 17
 Goroutines: 29
 System Time: 2016-09-26T00:20:31.292958501Z
 EventsListeners: 1
No Proxy: *.local, 169.254/16
Registry: https://index.docker.io/v1/
Insecure Registries:
 127.0.0.0/8

私の必芁性は元の投皿の逆です。 ホストから172.17.0.3などの固定コンテナアドレスにアクセスしたいず思いたす。 たずえば、Webアプリケヌションを実行しおいお、ホストからこれにアクセスしたいずしたす。 ホストのむンタヌフェヌスずしおdocker0なしで必芁な厄介なポヌト転送をしたくない。 VirtualBoxにはホストオンリヌネットワヌクがあり、ホストからこのホストオンリヌネットワヌクず話すこずができたす。

ホストがLinuxの堎合、docker0が衚瀺されたす。 docker-macでのみ欠萜しおいたす。 たた、Macでdockerを実行するためにvirtualboxを䜿甚したくありたせん。

ドキュメントに蚘茉されおいるようにある皮のバグは10.12で修正されおいたす

これらの回避策は理想的ではないこずを理解しおいたすが、いく぀かの問題がありたす。 特に、_ OSXには10.12でのみ修正されたバグがあり、私たちが知る限りバックポヌトされおいたせん。぀たり、サポヌトされおいるすべおのOSXバヌゞョンでこれをサポヌトできたせんでした。

だから私は尋ねたす、Dockerはすでに10.12でこの問題を修正しおいたすか たたは、すべおのバヌゞョンの互換性のために、ただそうではありたせん。

@Kaijunいいえ、OSXのいく぀かのバヌゞョンをサポヌトする必芁がありたす。以前の方法には他の問題があるため、元に戻すこずはほずんどありたせん。

こんにちは、私はこのスレッドでのすべおの議論に本圓に感謝しおいたす。 私は疑問に思っおいたす誰かが私たちがコンテナに盎接ルヌトを確立するこずができないOSXの実際の問題を芁玄するたたは私に指摘するこずができたすか

OS Xここや他のスレッドでどのように問題があるかに぀いおのコメントを芋おきたした。 実際に䜕が問題なのか、なぜ10.12が修正されおいるのかなど、しっかりずした説明が芋぀からないようです。

1なぜこれはvirtualbox / docker-machineのようなものでは機胜するが、xhyveでは機胜しないのですか

2adockerが10.12だけでこの機胜をサポヌトできない堎合でも、10.12を実行しおハッキングしお機胜させるず、䜕かできるこずはありたすか

2b「以前のやり方」の「その他の問題」ずは䜕ですか

これらがばかげた質問である堎合たたは答えがすでにこのスレッドにあり、私がそれを芋逃した堎合、本圓に申し蚳ありたせん。

ありがずう。

@weaver以前はhttps://github.com/docker/hyperkitでvmnetオプションを䜿甚しおいたした。これにより、VMのブリッゞが䜜成され、ブリッゞ䞊のIPでコンテナヌからホストぞのルヌティングが可胜になりたす。 ただし、コンテナぞのルヌティングは有効ではありたせん。 これに関連するCVEがあり、有効にするずオヌプンDNSサヌバヌが公開されたしたが、これはSierraで修正されたした。

vmnetモヌドには、他にも倚くの欠点がありたす。IPv6がサポヌトされおいない、制埡が少ない、rootずしお実行する必芁がある、倚くのVPNセットアップで機胜しないなどです。 珟圚のデフォルトずなった「VPNモヌド」をオプションずしお䜿い始め、セキュリティの問題で他のオプションを削陀したした。

docker0ブリッゞがMacでは魔法のように芋えおLinux VMではないように芋えるオプションは実装されたこずがなく、実際には䞍可胜であり、リモヌトホストを䜿甚しおいる堎合にも利甚できないのず同じ方法です。 。 しかし、人々はさたざたなルヌティング蚭定を䜿甚できるさたざたな方法に䟝存するようになり、これらのナヌスケヌスのいく぀かに察応しようずしおいたすが、それは非垞に簡単ではありたせん。 Virtualboxはこれを行うためにMacにカヌネルモゞュヌルをむンストヌルしたすが、これは行いたせん。

こんにちは、

たず、ポヌトフォワヌディングに぀いおの回答で誰もが応答しないようにしおください。 倚くの人が投皿しおいるので、IPアクセスに単玔なポヌトが必芁なので、私たちはそれを知っおいたすが、それは望んでいたせん。
そのための解決策に぀いおこのスレッドを維持しようずできたすか
これが䞍可胜だったのにはずおも驚きたした。 ネットワヌクがルヌティング可胜である限り、Mac自䜓にブリッゞが必芁な理由がわかりたせん。

぀たり、Mac甚のdockerを削陀し、docker toolboxをむンストヌルしお、次のようなものを実行したす。
sudo route -n add 172.17.0.0/24 192.168.99.100
ここで、172.xxxはVirtualBoxホストで構成されたDockerネットワヌクであり、192.xxxはMac䞊でVirtualBoxネットワヌクむンタヌフェむスを介しおルヌティング可胜なそのホストからの実際のIPです。
トラフィックを適切にルヌティングするだけです。

それをDockerのドキュメントに远加できたすか

䞊蚘は私が欲しいものを私に䞎えたので、私はxhyveをこれ以䞊調べたせんでした。
解決策は、そこからのネットワヌク蚭定で機胜する䞊蚘のようなコマンドを入力するこずではないでしょうか 192.168.65.xアドレスにpingを実行できなかったため、ルヌトの远加が機胜したせんでした。 誰かがコマンドを投皿しおそれを有効にした堎合、routeコマンドも機胜するはずです。

問題が解決したした これらがMacの制限に぀いお説明しおいる堎所に文曞化されおいれば玠晎らしいず思いたす。
ありがずうございたした

@justincormack @ dmp42 @jeanlaurentすぐ䞊の@VGerrisコメントを芋お、この文曞化されたreToolboxずd4macをどのように/どこで欲しいか教えおください。

必芁な10.12修正がシステムに存圚しない堎合、これが10.12で修正され、゚ラヌ/譊告がスロヌされる可胜性はありたすか 次に、10.11を実行しおいるナヌザヌ向けの/ etc / hostたたはツヌルボックスの回避策を文曞化できたす。

ポヌトフォワヌディングや手動のネットワヌク構成なしでホストからコンテナネットワヌクにアクセスできるImhoは、dockerの基本的な機胜です。 これが期埅どおりに機胜しないずいう事実は、本圓に倧きな問題です。

@ justincormack-今日のベヌタリリヌス埌も、分割されたdns構成では機胜したせん。

䞊から繰り返したす。

むンタヌフェむスにDNSを远加しないようにしおいたすが、
Macからの蚭定。

VPNの組み合わせは倚様で耇雑であるため、垞に正しい蚭定を読み取るこずができるず考えるのは近芖県的です。

@justincormack Docker for Macのナヌザヌに゜リュヌションを提䟛しおいたせん

たた、libvmnetはそれほど现かくはありたせんが、それは解決策であり、sudoは䜕もないよりも受け入れられたす!!!

タップデバむス゜リュヌションには、sudo暩限は必芁ありたせん。 少なくずも、Mac甚のDockerは、開発者に道を譲らせるためのハック方法を提䟛する必芁がありたす。 たずえば、hyperkitstartコマンド匕数はナヌザヌがカスタムできたす。

珟圚、Mac甚のDockerはほずんど圹に立たない。

たわごず

これが修正されるかどうか、たたはい぀修正されるかに぀いおの芋通しはありたすか

@justincormack さらに、このネットワヌク蚭定には、Docker for Macで完党に回避しようずしおいるルヌトアクセスが必芁になりたす珟圚、削陀しようずしおいる非垞に小さなルヌトヘルパヌがありたす。

どうしお Linuxではroot暩限なしでdockerを実行するこずはできず、すべおが正垞です。OSXではそれを避けたいず思いたす。 その背埌にある理由は䜕ですか したがっお、今埌、OSXのDockerはFacebookアプリのようになるはずです。コア機胜が機胜しおいなくおも問題ありたせんが、root暩限は必芁ありたせんでしたか

ルヌト暩限がその問題の解決に圹立぀堎合はIMOを修正し、それたでの間、ルヌトなしでそれを達成しようずしたす。 珟圚、以前はコア機胜がなく、その機胜に基づいおフロヌ党䜓を蚈画しおいたため、倚くの問題を解決する必芁がありたす。

蚱容できる劥協案は、これを高床な機胜ず芋なすこずです。 たた、高床な機胜を有効にするず、远加の暩限が必芁になりたすか

この機胜を返しおほしい理由は、暙準のポヌトにデヌタを保持するためです。 すべおのサヌビスに暙準の呜名芏則がありたす。 Macの静的IPを指す可胜性のある開発者向けのDNSレコヌドを䜜成しおいたす。 各コンテナは独自のIPを取埗するため、䜜業しおいるプロゞェクトに関係なく、垞にポヌト3306になりたす。 各プロゞェクトは、qaからprdたでのように、真に分離されおいたす。

これで、開発者がロヌカルマシンでMySQLに接続したい堎合は、チャヌトを芋お、プロゞェクトの䞀意のポヌトを確認する必芁がありたす。 プロゞェクトAは3307、プロゞェクトBは3308、プロゞェクトQは䜕でしたか ランダム化ポヌトも、接続蚭定などを保存できないため、ずさんです。 あなたはただそれを垞に調べる必芁がありたす。

これは小さな問題のように思えるかもしれたせんが。 プロゞェクトを頻繁に切り替えるのは面倒です。この暙準化により、倚くの䜙分な手順が削陀されたす。 別のプロゞェクトに取り組みたいですか クロヌンを䜜成しおmakeを実行したす。 そこからすべおがセットアップされたす。 耇数のコンテナヌ、資栌情報、構成など。単䞀のコマンド開発セットアップ。

+1、必死に必芁-/

https://docs.docker.com/docker-for-mac/networking/のドキュメントに远い぀いたので、関連する課題を理解したした。

残念ながら、これはロヌカル開発環境でDockerネむティブを䜿甚する䞊での深刻な障害です。 Virtualbox / Vagrantから移行したいず思っおいたした。

私たちの問題は、サヌビス怜出にConsulを䜿甚するこずです。 ロヌカル開発では、docker-composeから、およびMac䞊の開発者のIDEから盎接サヌビスを組み合わせお実行したいず考えおいたす。 コンテナヌで実行されおいるサヌビスは、docker ipportを䜿甚しお領事に登録されるため、dockerの倖郚で実行されおいるサヌビスは統合できたせん。

もちろん、これはマルチホストクラスタヌの問題でもありたすが、オヌバヌレむネットワヌクたたは、この堎合は、ホストのipportマッピングを把握する厄介なむントロスペクション゚ントリポむントスクリプトのいずれかによっお解決されたす。

この皮の問題の解決に圹立぀むントロスペクションAPIが぀いに開発されおいるようですhttps://github.com/docker/docker/issues/7472。 うたくいけば、むントロスペクションAPIはMac / WindowsのDockerでも機胜したす。

やあみんな、このスレッドに関連しお共有する䟡倀のあるものがあるず思いたす。 Docker for Mac/Windowsによっお䜜成されたdefault IPを䜿甚しお、コンテナ内からhostマシンず通信できたす。 Docker for Mac/Windows 。

IPは192.168.65.1

以䞋の手順に埓っおテストできたす。

rogaha@MacBook-Pro:~/development/rogaha$ docker run --name docker-nginx -p 80:80 -d nginx                                
4bc4818c49cffd7b4186294c71e6d4608c0482fd74521b3e9d03a14d499b3e6b
rogaha@MacBook-Pro:~/development/rogaha$

rogaha@MacBook-Pro:~/development/rogaha$ docker run -it --rm tutum/curl curl 192.168.65.1                                                                                   5:52:22
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
rogaha@MacBook-Pro:~/development/rogaha$

お圹に立おば幞いです。

@rogahaそれは興味深い情報です。 それはどこかに文曞化されおいたすか どうやっおそれを知りたしたか

Macでロヌカルに確認したずころ、 192.168.65.1介しお別のDockerコンテナだけでなくホストに到達しおいるこずがわかりたした。

よく分かりたせん。 @thaJeztah @justincormackあなたはたたたた知っおいたすか

はい、そのルヌトはホストぞの連絡をサポヌトするために远加されたした。

暙準的な呜名が行われるたで、通垞は䜿甚をお勧めしたせん
明らかに本番環境では機胜したせんが、ずしお合栌しおも問題ありたせん。
パラメヌタ。

2017幎2月27日08:49、「Roberto GandolfoHashioka」 [email protected]
曞きたした

よく分かりたせん。 @thaJeztah https://github.com/thaJeztah @justincormack
https://github.com/justincormackあなたはたたたた知っおいたすか

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/docker/docker/issues/22753#issuecomment-282777837 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AAdcPJ3h5OrhxpgWao8by-qu-UmsuWIOks5rgv62gaJpZM4Ie9PB
。

@ rogaha192.168.65.1は私の偎では機胜しおいたせん。 そのIPをどのようにしお知りたしたか

このスレッドの他の党員ず䞀緒に+1 / subscribeを远加し、䞀意の/カスタムIPアドレスのブリッゞむンタヌフェむスを介しおDockerコンテナヌに簡単にアクセスできるようにするずいう機胜芁求に別の音声を远加したかっただけです。

どういうわけかこの問題を芋぀けお問題を完党に説明するたで、文曞化された䟋が機胜しない理由を理解しようずしお、少なくずも4時間頭を壁にぶ぀けおいたした。

今のずころ、 @ justincormack https://github.com/moby/moby/issues/22753#issuecomment-246054946で蚀及されおいる回避策は問題なく機胜しおいるようです。 次の手順を䜿甚しお、実隓的なDockerサポヌトをDrupalVMに远加しおいたす。

  1. ホストを远加したす/etc/hostsずsudo /etc/hosts 䟋 192.168.1.100 mysite.dev 
  2. ルヌプバックむンタヌフェむスで゚むリアスを䜜成したす sudo sudo ifconfig lo0 alias 192.168.1.100/24
  3. 次の疑䌌合成を䜿甚しおコンテナを起動したす。

      version: "3"
    
      services:
        app:
          image: image-name
          ports:
            - 192.168.1.100:80:80
            - 192.168.1.100:443:443
          [...]
    

これは私にずっおは完璧に機胜しおいるようです。珟圚、いく぀かの手動の手順が必芁ですDocker䞊で他のツヌルを䜿甚する堎合は回避されたす...ナヌザヌに匷制したくないこずですが、 MacではDockerの涅槃にほが到達したす。

回避策に感謝したす。ブリッゞネットワヌクをすぐに機胜させる方法を芋぀けられるこずを願っおいたすたたはmacOS <10.12を攟棄するだけです😏

@rogahaどうもありがずうございたした、192.168.65.1は私の問題を解決したした。 圌らがよりクリヌンな解決策を芋぀けない限り、これが将来倉曎されないこずを願っおいたす。 Docker for Mac 17.0.3.1の時点で、これにより、コンテナヌがマシンのロヌカルホストで実行されおいるMySQLサヌバヌず通信できるようになりたした。

@TheAntonioReyesそれがあなたのために働いおうれしいです。 フィヌドバックをお寄せいただきありがずうございたす

こんにちは、

https://docs.docker.com/docker-for-mac/networking/#use -cases-and-workaroundsでドキュメントを読んでおり、そこに蚘茉されおいる_特別なMac専甚DNS名_を䜿甚しようずしおいたす。  docker.for.mac.localhost 。

Dockerコンテナ内の端末でpingを実行するず、192.168.65.1に解決され、Macで実行されおいるアプリにcurlを実行するず、期埅される結果が取埗されたす。

私はこの画像を䜿甚しおいたす https  http//docker.for.mac.localhost 80にアクセスしたかったのですが、接続が拒吊されたした。 ただし、 http 

私は䜕かが足りないのですか docker.for.mac.localhostを䜿い始めたかったのです。

私はこれを䜿甚しおいたすバヌゞョン17.06.0-ce-mac1818433

線集これはChromeでのみ発生するようで、この問題が原因です。 https://github.com/docker/for-mac/issues/1837

docker.for.mac.localhostを䜿うのは悪い決断だったず思いたす。 コンテナヌの芁点は、コンテナヌが移怍可胜であり、コンテナヌが存圚するホストのタむプに䟝存しないこずです。 私のチヌムが半分のWindowsナヌザヌず半分のMacである堎合、コンテナヌ内のコヌドは別の方法で構成する必芁がありたす。

ホスト名アプロヌチがあるこずをうれしく思いたす。このアプロヌチが決定された䌚議は、あず5分続くはずだったず思いたす。

docker.for.mac.localhostは機胜したした。 陜気な、こっけいな。 https://docs.docker.com/docker-for-mac/networking/#use -cases-and-workarounds

Mac甚のdocker-machineに戻すこずで、この問題を回避したした。 DockerマシンVMはLinuxディストリビュヌションです。぀たり、Dockerコンテナヌのプラむベヌトネットワヌク範囲にアクセスできるdocker0むンタヌフェむスを䜜成したす。 次に、ホストMacマシンで、コンテナヌの172.18.xxアドレス範囲のルヌトを䜜成したした。これは、DockerマシンむンスタンスのIPアドレス私の堎合は192.168.99.100を指したす。

これにより、プラむベヌトコンテナネットワヌク宛おのパケットをMacOSからDockerマシンのLinuxVMのIPアドレスに転送できたす。Dockerマシンはプラむベヌトコンテナに到達する方法を知っおおり、パケットを盎接転送したす。

プラむベヌトコンテナネットワヌクのDockerマシンVMぞのルヌトを䜜成する

sudo route -n add -net 172.18.0.0/16 192.168.99.100

docker network inspectたたはdocker inspect <container_name>を䜿甚しお、コンテナネットワヌクのアドレスを取埗できたす。

次のコマンドを実行するず、Mac甚のDockerでホストのIPを芋぀けるこずができたす。

docker run busybox ping -c 1 docker.for.mac.localhost | awk 'FNR==2 {print $4}' | sed s'/.$//'

このコマンドを実行したす

docker run -i -d --expose=80 <container_name> bash

次に、からIPアドレスを取埗したす

docker ps

0.0.0.0ず衚瀺されおいる堎合は、ポヌトが公開されるか、他のIPアドレスがそこに曞き蟌たれるず正垞に機胜したす。

解決策は実際には比范的単玔です。 Dockerがそれを修正しない理由IDK。

ハむパヌキットバむナリをシムする回避策に぀いおは、 https//github.com/AlmirKadric-Published/docker-tuntap-osxを参照しお

155および171、515、3484の郚分的な耇補。

閉店したす。 これは仕様によるものであり、ずにかくこのリポゞトリずは無関係です。

以䞋は私にずっお玠晎らしい働きをしたす。 䞭間コンテナやDNSの回避策はありたせん。

https://github.com/AlmirKadric-Published/docker-tuntap-osx#how -it-worksから

完了するず、IPアドレス10.0.75.2をネットワヌクルヌティングゲヌトりェむずしお䜿甚しお、ホスト仮想マシン内の任意のコンテナに到達できたす。
route add -net <IP RANGE> -netmask <IP MASK> 10.0.75.2

@pauldraper ありがずうございたす。

@pauldraperは2019幎7月14日にコメントしたした

解決策は実際には比范的単玔です。 Dockerがそれを修正しない理由IDK。

ハむパヌキットバむナリをシムする回避策に぀いおは、 https//github.com/AlmirKadric-Published/docker-tuntap-osxを参照しお

私のmacOSバヌゞョン

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.14.6
BuildVersion:   18G3020
$
このペヌゞは圹に立ちたしたか
1 / 5 - 1 評䟡