У меня на хосте Mac работает 2 контейнера докеров - контейнер 1 равен Jenkins из Docker Hub , а контейнер 2 - SonarQube из Docker Hub .У меня оба контейнера успешно работают.Я могу получить доступ к Jenkins с моего хоста, перейдя на http://localhost:8080/
, и я могу получить доступ к своему SonarQube, перейдя на http://localhost:9000/
.
Контейнер Jenkins был запущен так:
docker run -d -p 8080:8080 -p 50000:50000 jenkins/jenkins:latest
Контейнер SonarQube был запущен так:
docker run -d -p 9000:9000 sonarqube
Теперь я хочу, чтобы каждый контейнер связывался с каждымдругой, поэтому мне нужно предоставить IP-адрес другого контейнера для каждого контейнера.
Я получил IP-адрес каждого контейнера , выполнив это:
docker inspect --format '{{ .NetworkSettings.IPAddress }}' container_name_or_id
Это возвращает IP-адрес 172.17.0.2
для контейнера Jenkins и 172.17.0.3
для контейнера SonarQube.Но когда я пытаюсь получить доступ к контейнеру Jenkins с моего хоста, перейдя на http://172.17.0.2:8080
, я получаю тайм-аут запроса.То же самое происходит, когда я пытаюсь получить доступ к контейнеру SonarQube с моего хоста, перейдя к http://172.17.0.3:9000
Это нормальное поведение?
Разве я не могу получить доступ к каждому контейнеру из моегохост по их внутреннему IP-адресу?
И как я могу проверить, что один контейнер (например, Jenkins) может обращаться к другому контейнеру (например, SonarQube) по IP-адресу?