dockerコンテナで立てたjenkinsにlocalhostで接続できなくなった話
概要
タイトル通りでdockerを使ってjenkinsを試してみようとしたら接続できなくなってハマったのでメモ
いじった内容
$ cat docker-compose.yml version: "3.3" services: master: container_name: jenkins image: jenkins:latest ports: - 18080:8080 volumes: - ./jenkins_home:/var/jenkins_home $ docker-compose up -d
ここまでで http:localhost:18080にアクセスすれば例のJenkinsの初期の画面が見れる想定だった。でもアクセスできない
$ docker ps してみたけどなんの問題もなさそう。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c9436371666e jenkins:latest "/bin/tini -- /usr/l…" 2 minutes ago Up 2 minutes 50000/tcp, 0.0.0.0:18080->8080/tcp jenkins
結局なんだったのか
docker-machineでvirtualboxを立てていた。そういえばdockerの勉強をしていてそんなことをしていた気がする。
$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default * virtualbox Running tcp://192.168.99.100:2376 v19.03.5
curl を投げてみる。いけたっぽい
$ curl -Iv http://192.168.99.100:18080 * Rebuilt URL to: http://192.168.99.100:18080/ * Trying 192.168.99.100... * TCP_NODELAY set * Connected to 192.168.99.100 (192.168.99.100) port 18080 (#0) > HEAD / HTTP/1.1 > Host: 192.168.99.100:18080 > User-Agent: curl/7.60.0 > Accept: */* > < HTTP/1.1 403 Forbidden HTTP/1.1 403 Forbidden < Date: Mon, 02 Mar 2020 12:42:54 GMT Date: Mon, 02 Mar 2020 12:42:54 GMT < X-Content-Type-Options: nosniff X-Content-Type-Options: nosniff < Set-Cookie: JSESSIONID.f86c67a1=4bkiel39hx2dpwwhhggt7w8w;Path=/;HttpOnly Set-Cookie: JSESSIONID.f86c67a1=4bkiel39hx2dpwwhhggt7w8w;Path=/;HttpOnly < Expires: Thu, 01 Jan 1970 00:00:00 GMT Expires: Thu, 01 Jan 1970 00:00:00 GMT < Content-Type: text/html;charset=UTF-8 Content-Type: text/html;charset=UTF-8 < X-Hudson: 1.395 X-Hudson: 1.395 < X-Jenkins: 2.60.3 X-Jenkins: 2.60.3 < X-Jenkins-Session: 5f75fc09 X-Jenkins-Session: 5f75fc09 < X-Hudson-CLI-Port: 50000 X-Hudson-CLI-Port: 50000 < X-Jenkins-CLI-Port: 50000 X-Jenkins-CLI-Port: 50000 < X-Jenkins-CLI2-Port: 50000 X-Jenkins-CLI2-Port: 50000 < X-You-Are-Authenticated-As: anonymous X-You-Are-Authenticated-As: anonymous < X-You-Are-In-Group-Disabled: JENKINS-39402: use -Dhudson.security.AccessDeniedException2.REPORT_GROUP_HEADERS=true or use /whoAmI to diagnose X-You-Are-In-Group-Disabled: JENKINS-39402: use -Dhudson.security.AccessDeniedException2.REPORT_GROUP_HEADERS=true or use /whoAmI to diagnose < X-Required-Permission: hudson.model.Hudson.Administer X-Required-Permission: hudson.model.Hudson.Administer < Content-Length: 677 Content-Length: 677 < Server: Jetty(9.2.z-SNAPSHOT) Server: Jetty(9.2.z-SNAPSHOT)
dockerで立てたVitualbox上のVMのIPアドレスが 192.168.99.100 ということらしい。
つまり dockerコンテナへのアクセスはlocalhostではなく、VMのIPアドレスを使用してアクセスしなければならない。
とにかくハマったのでメモ書き程度に。。。