Как соединить два док-контейнера вместе?

У меня есть докер-контейнер с tcserver на нем с пользовательским интерфейсом приложения на нем. У меня есть второй док-контейнер, который также работает с tcserver, но у этого есть движок приложений. Я пытаюсь заставить этих двоих как-то общаться друг с другом, потому что, когда я получаю доступ к пользовательскому интерфейсу в веб-браузере, он говорит, что он не подключен к движку. Я просмотрел много разных уроков, но они не работают, и большинство из них не применимы к моей ситуации. Как мне это сделать? Заранее спасибо.

3 ответа

Так просто:

docker run --name engine -d tcserver-engine

docker run --name lala --link engine:tc-engine -d tcserver-ui

внутри lala контейнер, вы можете получить контейнер двигателя, используя выбранный псевдоним, в этом примере tc-engine

Использовать имя и ссылку в вашей команде запуска docker или в файле docker-compose.yml?

docker run -ti --name server1 -p 8111:8111 ikamman/docker-tc-server
docker run -ti --name server2 --link server1 -p 8112:8111 ikamman/docker-tc-server
docker exec server2 curl server1:8111

Вернется так:

$ docker exec server2 curl server1:8111
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3546    0  3546    0     0   3290      0 --:--:--  0:00:01 --:--:--  3292
<!--
Page: maintenance-welcome
Stage: FIRST_START_SCREEN
State revision: 12
Timestamp: Wed Jul 27 20:30:06 UTC 2016
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>TeamCity Maintenance &mdash; TeamCity</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
  <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"/>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <meta name="application-name" content="TeamCity"/>
  <meta name="description" content="Powerful Continuous Integration and Build Server"/>
  <link rel="icon" href="/img/icons/TeamCity512.png" sizes="512x512"/>

Вам необходимо связать новые выделенные порты контейнера App Engine с контейнером пользовательского интерфейса, потому что этот контейнер может быть доступен только другим контейнерам через порт.

Другие вопросы по тегам