Технический совет № 61 показал, как запустить практическую работу с Java EE 7 в контейнере WildFly Docker . В этом случае было сделано несколько предположений:
- WildFly объединяет базу данных H2 в памяти . Приложение Java EE 7 использует ресурс базы данных по умолчанию, который в случае WildFly преобразуется в соединение JDBC с этой базой данных в памяти. Это хороший способ начать создавать приложение, но довольно скоро вы захотите начать использовать реальную базу данных, такую как MySQL.
- Как правило, сервер приложений и база данных могут не находиться на одном хосте. Это снижает риск, избегая единой точки отказа. И поэтому WildFly и MySQL будут на отдельном хосте.
Существует множество доступных материалов, чтобы показать, как настроить WildFly и MySQL на отдельных хостах. Каковы шаблоны проектирования и анти-шаблоны, если вы должны были сделать это с помощью Docker?
Давайте взглянем!
В упрощенном порядке:
- Запустите контейнер MySQL как:
1
<span
class
=
"notranslate"
onmouseover=
"_tipon(this)"
onmouseout=
"_tipoff()"
><span
class
=
"google-src-text"
style=
"direction: ltr; text-align: left"
>docker run --name mysqldb -e MYSQL_USER=mysql -e MYSQL_PASSWORD=mysql -e MYSQL_DATABASE=sample -e MYSQL_ROOT_PASSWORD=supersecret -d mysql</span> запуск докера --name mysqldb -e MYSQL_USER = mysql -e MYSQL_PASSWORD = mysql -e MYSQL_DATABASE = пример -e MYSQL_ROOT_PASSWORD = суперсекрет -d mysql</span>
- Запустите контейнер WildFly с предварительно настроенным ресурсом JDBC MySQL:
1
<span
class
=
"notranslate"
onmouseover=
"_tipon(this)"
onmouseout=
"_tipoff()"
><span
class
=
"google-src-text"
style=
"direction: ltr; text-align: left"
>docker run --name mywildfly --link mysqldb:db -p
8080
:
8080
-d arungupta/wildfly-mysql-javaee7</span> запуск докера --name mywildfly --link mysqldb: db -p
8080
:
8080
-d arungupta / wildfly-mysql-javaee7</span>
- Найдите IP-адрес контейнера WildFly:
1
<span
class
=
"notranslate"
onmouseover=
"_tipon(this)"
onmouseout=
"_tipoff()"
><span
class
=
"google-src-text"
style=
"direction: ltr; text-align: left"
>sudo docker inspect -f
'{{ .NetworkSettings.IPAddress }}'
mywildfly</span> Докер sudo проверяет -f
'{{.NetworkSettings.IPAddress}}'
mywildfly</span>
Если вы используете Mac, используйте IP-адрес
boot2docker ip
. - Доступ к приложению как:
1
<span
class
=
"notranslate"
onmouseover=
"_tipon(this)"
onmouseout=
"_tipoff()"
><span
class
=
"google-src-text"
style=
"direction: ltr; text-align: left"
>curl http:
//<IP_ADDRESS>:8080/employees/index.html</span> curl http: // <IP_ADDRESS>: 8080 / employee / index.html</span>
чтобы увидеть результат как:
Приложение является тривиальным приложением Java EE 7, которое публикует конечную точку REST. Доступ к нему как:
1
|
<span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >curl http: //localhost:8080/employees/resources/employees/</span> curl http: // localhost: 8080 / сотрудников / ресурсы / сотрудников /</span> |
видеть:
1
|
< span class = "notranslate" onmouseover = "_tipon(this)" onmouseout = "_tipoff()" >< span class = "google-src-text" style = "direction: ltr; text-align: left" ><? xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>< collection >< employee >< id >1</ id >< name >Penny</ name ></ employee >< employee >< id >2</ id >< name >Sheldon</ name ></ employee >< employee >< id >3</ id >< name >Amy</ name ></ employee >< employee >< id >4</ id >< name >Leonard</ name ></ employee >< employee >< id >5</ id >< name >Bernadette</ name ></ employee >< employee >< id >6</ id >< name >Raj</ name ></ employee >< employee >< id >7</ id >< name >Howard</ name ></ employee >< employee >< id >8</ id >< name >Priya</ name ></ employee ></ collection ></ span > <? xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?> < collection > < employee > < id > 1 </ id > < name > Penny </ name > </ employee > < employee > <идентификатор> 2 </ идентификатор> <имя> Шелдон </ имя> </ работник> <работник> <идентификатор> 3 </ идентификатор> <имя> Эми </ имя> </ работник> <работник> <идентификатор> 4 </ идентификатор> <имя> Леонард </ имя> </ работник> <работник> <идентификатор> 5 </ идентификатор> <имя> Бернадетт </ имя> </ работник> <работник> <идентификатор> 6 </ идентификатор > <имя> Raj </ имя> </ работник> <работник> <идентификатор> 7 </ идентификатор> <имя> Ховард </ имя> </ работник> <работник> <идентификатор> 8 </ идентификатор> <имя> Priya </ имя> </ работник> </ коллекция></ span > |
Если вы заинтересованы в мельчайших песках, читайте подробности.
Связывание контейнеров
Первая концепция, которую мы должны понять, это то, как Docker позволяет связывать контейнеры . Создание связи между двумя контейнерами создает канал между исходным контейнером и целевым контейнером и надежно передает информацию о исходном контейнере в целевой контейнер. В нашем случае целевой контейнер (WildFly) может видеть информацию об исходном контейнере (MySQL). Здесь важно понять, что ни одна из этой информации не должна быть общедоступна в контейнере-источнике, а доступна только для целевого контейнера.
Магический переключатель для включения ссылки, интуитивно --link
, --link
. Например, если контейнеры MySQL и WildFly выполняются, как показано выше, --link mysqldb:db
связывает контейнер MySQL с именем mysqldb
с псевдонимом db
с целевым контейнером WildFly. Это определяет некоторые переменные среды, следуя определенному протоколу , в целевом контейнере, который затем можно использовать для доступа к информации об исходном контейнере. Например, IP-адрес, открытые порты, имя пользователя, пароли и т. Д. Полный список переменных среды можно увидеть как:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
|
<span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >[arun @localhost wildfly-mysql-javaee7]$ sudo docker run --name mywildfly --link mysqldb:db -p 8080 : 8080 -it arungupta/wildfly-mysql-javaee7 env</span> [arun @ localhost wildfly-mysql-javaee7] $ docker run - name mywildfly --link mysqldb: db -p 8080 : 8080 - это arungupta / wildfly-mysql-javaee7 env</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin</span> PATH = / USR / местные / SBIN: / USR / местные / бен: / USR / SBIN: / USR / бен: / SBIN: / бен</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >HOSTNAME=4e0458981a82</span> HOSTNAME = 4e0458981a82</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >TERM=xterm</span> TERM = Xterm</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_PORT=tcp: //172.17.0.24:3306</span> DB_PORT = ТСР: //172.17.0.24: 3306</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_PORT_3306_TCP=tcp: //172.17.0.24:3306</span> DB_PORT_3306_TCP = ТСР: //172.17.0.24: 3306</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_PORT_3306_TCP_ADDR= 172.17 . 0.24 </span> DB_PORT_3306_TCP_ADDR = 172.17 . 0.24 </span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_PORT_3306_TCP_PORT= 3306 </span> DB_PORT_3306_TCP_PORT = 3306 </span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_PORT_3306_TCP_PROTO=tcp</span> DB_PORT_3306_TCP_PROTO = ТСР</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_NAME=/mywildfly3/db</span> DB_NAME = / mywildfly3 / дБ</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_ENV_MYSQL_USER=mysql</span> DB_ENV_MYSQL_USER = MySQL</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_ENV_MYSQL_PASSWORD=mysql</span> DB_ENV_MYSQL_PASSWORD = MySQL</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_ENV_MYSQL_DATABASE=sample</span> DB_ENV_MYSQL_DATABASE = образец</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_ENV_MYSQL_ROOT_PASSWORD=supersecret</span> DB_ENV_MYSQL_ROOT_PASSWORD = supersecret</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_ENV_MYSQL_MAJOR= 5.6 </span> DB_ENV_MYSQL_MAJOR = 5 , 6 </span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_ENV_MYSQL_VERSION= 5.6 . 22 </span> DB_ENV_MYSQL_VERSION = 5.6 . 22 </span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >JAVA_HOME=/usr/lib/jvm/java</span> JAVA_HOME = / USR / Библиотека / JVM / Java</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >WILDFLY_VERSION= 8.2 . 0 .Final</span> WILDFLY_VERSION = 8.2 . 0 .Final</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >JBOSS_HOME=/opt/jboss/wildfly</span> JBOSS_HOME = / опт / JBoss / wildfly</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >HOME=/opt/jboss</span> HOME = / Opt / JBoss</span> |
Таким образом, вы можете видеть, что есть DB_*
окружения DB_*
предоставляющие много информации о контейнере источника.
Связывание работает, только если все контейнеры работают на одном хосте. Лучшее решение будет показано в следующем блоге, следите за обновлениями.
Переопределить стандартную команду Docker
Dockerfile для этого изображения наследуется от jboss / wildfly: latest и запускает контейнер WildFly. Контейнеры Docker могут выполнять только одну команду, но нам нужно установить драйвер JDBC, создать ресурс JDBC, используя правильный IP-адрес и порт, и развернуть файл WAR. Поэтому мы переопределим команду, унаследовав ее от jboss / wildfly: latest, и воспользуемся специальной командой. Эта команда сделает все, что мы хотим, а затем запустит WildFly.
Пользовательская команда выполняет следующие действия:
- Добавить модуль MySQL
- Добавить драйвер MySQL JDBC
- Добавьте источник данных JDBC, используя IP-адрес и порт связанного контейнера MySQL.
- Разверните файл WAR
- Запустить контейнер WildFly
Обратите внимание, что WildFly начинается с -b 0.0.0.0
что позволяет ему быть привязанным к любому IP-адресу. Кроме того, команда должна выполняться на переднем плане, чтобы контейнер оставался активным.
Настройка безопасности
В идеале вы должны пробивать дыры в брандмауэре, чтобы обеспечить подключение к конкретному хосту / портам. Но эти инструкции были опробованы на Fedora 20, работающем в Virtual Box. Поэтому для удобства весь брандмауэр был отключен как:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
|
<span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >[arun @localhost wildfly-mysql-javaee7]$ sudo docker run --name mywildfly --link mysqldb:db -p 8080 : 8080 -it arungupta/wildfly-mysql-javaee7 env</span> [arun @ localhost wildfly-mysql-javaee7] $ docker run - name mywildfly --link mysqldb: db -p 8080 : 8080 - это arungupta / wildfly-mysql-javaee7 env</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin</span> PATH = / USR / местные / SBIN: / USR / местные / бен: / USR / SBIN: / USR / бен: / SBIN: / бен</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >HOSTNAME=4e0458981a82</span> HOSTNAME = 4e0458981a82</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >TERM=xterm</span> TERM = Xterm</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_PORT=tcp: //172.17.0.24:3306</span> DB_PORT = ТСР: //172.17.0.24: 3306</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_PORT_3306_TCP=tcp: //172.17.0.24:3306</span> DB_PORT_3306_TCP = ТСР: //172.17.0.24: 3306</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_PORT_3306_TCP_ADDR= 172.17 . 0.24 </span> DB_PORT_3306_TCP_ADDR = 172.17 . 0.24 </span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_PORT_3306_TCP_PORT= 3306 </span> DB_PORT_3306_TCP_PORT = 3306 </span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_PORT_3306_TCP_PROTO=tcp</span> DB_PORT_3306_TCP_PROTO = ТСР</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_NAME=/mywildfly3/db</span> DB_NAME = / mywildfly3 / дБ</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_ENV_MYSQL_USER=mysql</span> DB_ENV_MYSQL_USER = MySQL</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_ENV_MYSQL_PASSWORD=mysql</span> DB_ENV_MYSQL_PASSWORD = MySQL</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_ENV_MYSQL_DATABASE=sample</span> DB_ENV_MYSQL_DATABASE = образец</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_ENV_MYSQL_ROOT_PASSWORD=supersecret</span> DB_ENV_MYSQL_ROOT_PASSWORD = supersecret</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_ENV_MYSQL_MAJOR= 5.6 </span> DB_ENV_MYSQL_MAJOR = 5 , 6 </span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >DB_ENV_MYSQL_VERSION= 5.6 . 22 </span> DB_ENV_MYSQL_VERSION = 5.6 . 22 </span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >JAVA_HOME=/usr/lib/jvm/java</span> JAVA_HOME = / USR / Библиотека / JVM / Java</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >WILDFLY_VERSION= 8.2 . 0 .Final</span> WILDFLY_VERSION = 8.2 . 0 .Final</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >JBOSS_HOME=/opt/jboss/wildfly</span> JBOSS_HOME = / опт / JBoss / wildfly</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >HOME=/opt/jboss</span> HOME = / Opt / JBoss</span> |
Кроме того, адаптер Host-only был добавлен с использованием настроек Virtual Box и выглядит следующим образом:
Вот и все, что должно заставить вас использовать WildFly и MySQL в двух отдельных контейнерах.
Также проверил шаги на boot2docker, и там он также работал без проблем:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >docker-images> docker run --name mysqldb -e MYSQL_USER=mysql -e MYSQL_PASSWORD=mysql -e MYSQL_DATABASE=sample -e MYSQL_ROOT_PASSWORD=supersecret -d mysql</span> docker-images> docker run --name mysqldb -e MYSQL_USER = mysql -e MYSQL_PASSWORD = mysql -e MYSQL_DATABASE = пример -e MYSQL_ROOT_PASSWORD = суперсекрет -d mysql</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >docker-images></span> Докер-изображения></span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >docker-images> docker run --name mywildfly --link mysqldb:db -p 8080 : 8080 -d arungupta/wildfly-mysql-javaee7</span> docker-images> docker run --name mywildfly --link mysqldb: db -p 8080 : 8080 -d arungupta / wildfly-mysql-javaee7</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >Unable to find image 'arungupta/wildfly-mysql-javaee7' locally</span> Невозможно найти изображение 'arungupta / wildfly-mysql-javaee7' локально</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >Pulling repository arungupta/wildfly-mysql-javaee7</span> Потянув хранилище arungupta / wildfly-mysql-javaee7</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >791773b0e1de: Download complete</span> 791773b0e1de: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >511136ea3c5a: Download complete</span> 511136ea3c5a: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >782cf93a8f16: Download complete</span> 782cf93a8f16: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >7d3f07f8de5f: Download complete</span> 7d3f07f8de5f: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >1ef0a50fe8b1: Download complete</span> 1ef0a50fe8b1: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >20a1abe1d9bf: Download complete</span> 20a1abe1d9bf: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >cd5bb934bb67: Download complete</span> cd5bb934bb67: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >379edb00ab07: Download complete</span> 379edb00ab07: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >4d37cbbfc67d: Download complete</span> 4d37cbbfc67d: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >2ea8562cac7c: Download complete</span> 2ea8562cac7c: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >7759146eab1a: Download complete</span> 7759146eab1a: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >b17a20d6f5f8: Download complete</span> b17a20d6f5f8: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >e02bdb6c4ed5: Download complete</span> e02bdb6c4ed5: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >72d585299bb5: Download complete</span> 72d585299bb5: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >90832e1f0bb9: Download complete</span> 90832e1f0bb9: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >2c3484b42034: Download complete</span> 2c3484b42034: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >38fad13dea25: Download complete</span> 38fad13dea25: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >656878d9a6c6: Download complete</span> 656878d9a6c6: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >6510de96c354: Download complete</span> 6510de96c354: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >0cc86be8ac93: Download complete</span> 0cc86be8ac93: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >cc4e21e8b0e7: Download complete</span> cc4e21e8b0e7: загрузка завершена</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >Status: Downloaded newer image for arungupta/wildfly-mysql-javaee7:latest</span> Статус: загружен новый образ для arungupta / wildfly-mysql-javaee7: последний</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >8522df362e57f5b7a5324dba692559b971c7cfda4a687212c44b1118008a4c63</span> 8522df362e57f5b7a5324dba692559b971c7cfda4a687212c44b1118008a4c63</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >docker-images> curl http: //192.168.59.103:8080/employees/index.html</span> docker-images> curl http://192.168.59.103:8080/employees/index.html</span> |
1
2
|
<span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >docker-images> curl http: //192.168.59.103:8080/employees/resources/employees/</span> docker-images> curl http://192.168.59.103:8080/employees/resources/employees/</span> <span class = "notranslate" onmouseover= "_tipon(this)" onmouseout= "_tipoff()" ><span class = "google-src-text" style= "direction: ltr; text-align: left" >1Penny2Sheldon3Amy4Leonard5Bernadette6Raj7Howard8Priya</span> 1Penny2Sheldon3Amy4Leonard5Bernadette6Raj7Howard8Priya</span> |
Исходный код изображения находится по адресу github.com/arun-gupta/docker-images/tree/master/wildfly-mysql-javaee7 .
Наслаждайтесь!
Ссылка: | WildFly / JavaEE7 и MySQL связаны между собой двумя контейнерами Docker (Tech Tip # 65) от нашего партнера по JCG Аруна Гупта из блога Miles to go 2.0… . |