Dockerの練習をしようと思いnginxをupして、ブラウザ確認したいってなったんですが、localhostで開けませんでした😭
調べてみると私はDocker Toolbox(※現在非推奨)を使っていたため、192.168.99.100ではアクセスできました⚡️
(※Docker Toolboxは非推奨のため、Docker Desktopを使ってとのこと)
Docker Toolbox has been deprecated and is no longer in active development. Please use Docker Desktop instead. See Docker Desktop for Mac and Docker Desktop for Windows.
localhostでは、
$ curl localhost curl: (7) Failed to connect to localhost port 80: Connection refused
でした。
TerminalとDocker Desktop for Macが同期されていない状態でした。Docker ToolboxはVMを立てる方法で、Docker Desktop for Macはlocalhostを使う為こうなったみたいです。
そこで、Docker Toolboxを削除し、Docker Desktop for Macを入れ直すことで、TerminalとDocker Desktop for Macが同期されlocalhostでアクセスできるようになりました🙌🙌🙌
(Docker Desktop と Docker Toolbox の共存は可能のようですが、Docker Toolboxは非推奨なのでアンインストールしました。)
参考:
https://docs.docker.com/docker-for-windows/docker-toolbox/
https://qiita.com/amuyikam/items/ef3f8e8e25c557f68f6a
https://docs.docker.jp/docker-for-mac/docker-toolbox.html
Docker Toolboxを使っている時
$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default * virtualbox Running tcp://192.168.99.100:2376 v19.03.12
$ docker-machine config default --tlsverify --tlscacert="/Users/watashi/.docker/machine/machines/default/ca.pem" --tlscert="/Users/watashi/.docker/machine/machines/default/cert.pem" --tlskey="/Users/watashi/.docker/machine/machines/default/key.pem" -H=tcp://192.168.99.100:2376
$ env | grep DOCKER DOCKER_HOST=tcp://192.168.99.100:2376 DOCKER_MACHINE_NAME=default DOCKER_TLS_VERIFY=1 DOCKER_CERT_PATH=/Users/watashi/.docker/machine/machines/default
$ curl http://192.168.99.100/ <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> ...
Docker Desktop for Macを使っている時
Docker Toolboxを削除し、Docker Desktop for Macを入れ直しました。
docker-machineコマンドを削除したので…
$ docker-machine ls -bash: docker-machine: command not found
$ env | grep DOCKER # なし
おまけ: 調査で使ったコマンド
ポートが開いてるプロセスの確認
$ lsof -i -P | grep localhost $ lsof -i -P | grep 192.168.99.100