Как соединить два док-контейнера вместе?
У меня есть докер-контейнер с 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 — 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 с контейнером пользовательского интерфейса, потому что этот контейнер может быть доступен только другим контейнерам через порт.