Сеть Docker Multi-Host позволяет создавать виртуальные сети и присоединять к ним контейнеры, чтобы вы могли создать топологию сети, подходящую для вашего приложения. Этот блог покажет, как использовать его с Docker Compose.
Java-приложение CRUD с Couchbase, Java EE и WildFly объяснило, как использовать приложение Java EE для предоставления интерфейса CRUD / REST для корзины данных в Couchbase. Требуется вручную скачать и запустить WildFly. В блоге также использовался сервер Couchbase, использующий Docker, и требовалась ручная настройка для загрузки корзины с примерами travel-sample
.
Сконфигурируйте Couchbase Docker Container с помощью REST API, объясняется, как использовать Couchbase REST API для настройки Couchbase Server.
Этот блог удалит явную загрузку WildFly и ручную настройку сервера Couchbase:
- Используйте Docker Compose для запуска WildFly и Couchbase (загрузка не требуется)
- Используйте профиль Maven для настройки сервера Couchbase (ручная настройка не требуется)
- Использует многоузловую сеть Docker, чтобы WildFly и сервер Couchbase могли общаться друг с другом
Давайте начнем!
Запустите Couchbase и WildFly, используя Docker Multi-Host Networking и Compose
- Запустите сервер WildFly и Couchbase, используя файл
docker-compose.yml
с github.com/arun-gupta/docker-images/blob/master/wildfly-couchbase-javaee7/docker-compose.yml :010203040506070809101112131415mycouchbase:
container_name:
"db"
image: couchbase
/server
ports:
- 8091:8091
- 8092:8092
- 8093:8093
- 11210:11210
mywildfly:
image: arungupta
/wildfly-admin
environment:
- COUCHBASE_URI=db
ports:
- 8080:8080
- 9990:9990
arungupta/wildfly-admin
используется, поскольку оно связывает управление WildFly со всеми сетевыми интерфейсами, а также предоставляет порт 9990. Это позволяет использовать плагин WildFly Maven для развертывания приложения.COUCHBASE_URI
указывается для службы Couchbase и упоминается в службе WildFly с помощьюCOUCHBASE_URI
. Затем он используется для подключения к Couchbase из приложения Java EE.Среда приложения запускается как:
1234docker-compose --x-networking up -d
Creating network
"wildflycouchbasejavaee7"
with driver
"None"
Creating wildflycouchbasejavaee7_mywildfly_1
Creating db
--x-networking
— это экспериментальный ключ, добавленный в Docker Compose 1.9, который позволяет создать мост или оверлейную сеть. По умолчанию он создает мостовую сеть, которая работает на одном хосте. Созданная сеть может рассматриваться как:123456docker network
ls
NETWORK ID NAME DRIVER
968bde2b7745 bridge bridge
79e937bcf1f6 none null
d06a4bd59a4b host host
5e26a9a205ff wildflycouchbasejavaee7 bridge
В выпуске 2221 приведено более подробное описание созданных сетей по умолчанию.
wildflycouchbasejavaee7
— это новая мостовая сеть, созданная для нашего приложения. В выпуске № 2345 приводятся некоторые сведения о неправильном имени драйвера в выходном сообщении.
Настройте сервер Couchbase
- Клон
couchbase-javaee
РЕПО:1https:
//github
.com
/arun-gupta/couchbase-javaee
- Настройте сервер Couchbase:
010203040506070809101112131415161718192021222324252627
mvn
install
-Pcouchbase
[INFO] Scanning
for
projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building couchbase-javaee 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
. . .
* Server auth using Basic with user
'Administrator'
> POST
/sampleBuckets/install
HTTP
/1
.1
> Authorization: Basic QWRtaW5pc3RyYXRvcjpwYXNzd29yZA==
> User-Agent: curl
/7
.37.1
> Host: 192.168.99.100:8091
. . .
< Cache-Control: no-cache
<
{ [data not shown]
100 19 100 2 100 17 50 425 --:--:-- --:--:-- --:--:-- 435
* Connection
#0 to host 192.168.99.100 left intact
[][INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
exec-maven-plugin
используется для вызова REST API и настройки сервера Couchbase и настраивается в профиле Maven . Обязательно установите свойствоpom.xml
вpom.xml
. - Разверните приложение в WildFly:
01020304050607080910111213141516171819
mvn
install
-Pwildfly -Dwildfly.
hostname
=192.168.99.100 -Dwildfly.username=admin -Dwildfly.password=Admin
#007
[INFO] Scanning
for
projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building couchbase-javaee 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
. . .
Nov 26, 2015 5:17:39 AM org.xnio.Xnio <clinit>
INFO: XNIO version 3.3.1.Final
Nov 26, 2015 5:17:39 AM org.xnio.nio.NioXnio <clinit>
INFO: XNIO NIO Implementation Version 3.3.1.Final
Nov 26, 2015 5:17:39 AM org.jboss.remoting3.EndpointImpl <clinit>
INFO: JBoss Remoting version 4.0.9.Final
[INFO] Authenticating against security realm: ManagementRealm
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
Убедитесь, что в CLI указан правильный хост. В данном случае это IP-адрес, полученный с использованием IP-адреса
docker-machine ip default
.
Вызовите приложение
- Вызовите конечную точку REST, используя cURL:
0102030405060708091011121314151617181920
curl -
v
http:
//192
.168.99.100:8080
/couchbase-javaee/resources/airline
* Hostname was NOT found
in
DNS cache
* Trying 192.168.99.100...
* Connected to 192.168.99.100 (192.168.99.100) port 8080 (
#0)
> GET
/couchbase-javaee/resources/airline
HTTP
/1
.1
> User-Agent: curl
/7
.37.1
> Host: 192.168.99.100:8080
> Accept: */*
>
< HTTP
/1
.1 200 OK
< Connection: keep-alive
< X-Powered-By: Undertow
/1
* Server WildFly
/8
is not blacklisted
< Server: WildFly
/8
< Content-Type: application
/octet-stream
< Content-Length: 1393
< Date: Thu, 26 Nov 2015 13:18:36 GMT
<
* Connection
#0 to host 192.168.99.100 left intact
[{
"travel-sample"
:{
"id"
:112,
"iata"
:
"5W"
,
"icao"
:
"AEU"
,
"name"
:
"Astraeus"
,
"callsign"
:
"FLYSTAR"
,
"type"
:
"airline"
,
"country"
:
"United Kingdom"
}}, {
"travel-sample"
:{
"id"
:109,
"iata"
:
"KO"
,
"icao"
:
"AER"
,
"name"
:
"Alaska Central Express"
,
"callsign"
:
"ACE AIR"
,
"type"
:
"airline"
,
"country"
:
"United States"
}}, {
"travel-sample"
:{
"id"
:1191,
"iata"
:
"UU"
,
"icao"
:
"REU"
,
"name"
:
"Air Austral"
,
"callsign"
:
"REUNION"
,
"type"
:
"airline"
,
"country"
:
"France"
}}, {
"travel-sample"
:{
"id"
:1203,
"iata"
:
"A5"
,
"icao"
:
"RLA"
,
"name"
:
"Airlinair"
,
"callsign"
:
"AIRLINAIR"
,
"type"
:
"airline"
,
"country"
:
"France"
}}, {
"travel-sample"
:{
"id"
:10642,
"iata"
:null,
"icao"
:
"JRB"
,
"name"
:
"Jc royal.britannica"
,
"callsign"
:null,
"type"
:
"airline"
,
"country"
:
"United Kingdom"
}}, {
"travel-sample"
:{
"id"
:13633,
"iata"
:
"WQ"
,
"icao"
:
"PQW"
,
"name"
:
"PanAm World Airways"
,
"callsign"
:null,
"type"
:
"airline"
,
"country"
:
"United States"
}}, {
"travel-sample"
:{
"id"
:137,
"iata"
:
"AF"
,
"icao"
:
"AFR"
,
"name"
:
"Air France"
,
"callsign"
:
"AIRFRANS"
,
"type"
:
"airline"
,
"country"
:
"France"
}}, {
"travel-sample"
:{
"id"
:10748,
"iata"
:
"ZQ"
,
"icao"
:
"LOC"
,
"name"
:
"Locair"
,
"callsign"
:
"LOCAIR"
,
"type"
:
"airline"
,
"country"
:
"United States"
}}, {
"travel-sample"
:{
"id"
:10,
"iata"
:
"Q5"
,
"icao"
:
"MLA"
,
"name"
:
"40-Mile Air"
,
"callsign"
:
"MILE-AIR"
,
"type"
:
"airline"
,
"country"
:
"United States"
}}, {
"travel-sample"
:{
"id"
:10226,
"iata"
:
"A1"
,
"icao"
:
"A1F"
,
"name"
:
"Atifly"
,
"callsign"
:
"atifly"
,
"type"
:
"airline"
,
"country"
:
"United States"
}}]
Полный набор конечных точек REST документирован в приложении CRUD Java с Couchbase, Java EE и WildFly . Они перечислены здесь для удобства:
- ПОЛУЧИТЬ одну авиакомпанию:
1
curl -
v
http:
//192
.168.99.100:8080
/couchbase-javaee/resources/airline/139
- Создайте новую авиакомпанию, используя POST:
1
curl -
v
-H
"Content-Type: application/json"
-X POST -d
'{"country":"France","iata":"A5","callsign":"AIRLINAIR","name":"Airlinair","icao":"RLA","type":"airline"}'
http:
//192
.168.99.100:8080
/couchbase-javaee/resources/airline
- Обновите существующую авиакомпанию, используя PUT:
1
curl -
v
-H
"Content-Type: application/json"
-X PUT -d
'{"country":"France","iata":"A5","callsign":"AIRLINAIR","name":"Airlin Air","icao":"RLA","type":"airline","id": "19810"}'
http:
//192
.168.99.100:8080
/couchbase-javaee/resources/airline/19810
- Удалить существующую авиакомпанию, используя DELETE:
1
curl -
v
-X DELETE http:
//192
.168.99.100:8080
/couchbase-javaee/resources/airline/19810
- ПОЛУЧИТЬ одну авиакомпанию:
Наслаждайтесь!
Ссылка: | Docker Multi-Host Networking с Couchbase и WildFly от нашего партнера по JCG Аруна Гупта в блоге Miles to go 2.0… . |