Сеть 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/serverports:- 8091:8091- 8092:8092- 8093:8093- 11210:11210mywildfly:image: arungupta/wildfly-adminenvironment:- COUCHBASE_URI=dbports:- 8080:8080- 9990:9990arungupta/wildfly-adminиспользуется, поскольку оно связывает управление WildFly со всеми сетевыми интерфейсами, а также предоставляет порт 9990. Это позволяет использовать плагин WildFly Maven для развертывания приложения.COUCHBASE_URIуказывается для службы Couchbase и упоминается в службе WildFly с помощьюCOUCHBASE_URI. Затем он используется для подключения к Couchbase из приложения Java EE.Среда приложения запускается как:
1234docker-compose --x-networking up -dCreating network"wildflycouchbasejavaee7"with driver"None"Creating wildflycouchbasejavaee7_mywildfly_1Creating db--x-networking— это экспериментальный ключ, добавленный в Docker Compose 1.9, который позволяет создать мост или оверлейную сеть. По умолчанию он создает мостовую сеть, которая работает на одном хосте. Созданная сеть может рассматриваться как:123456docker networklsNETWORK ID NAME DRIVER968bde2b7745 bridge bridge79e937bcf1f6 none nulld06a4bd59a4b host host5e26a9a205ff wildflycouchbasejavaee7 bridgeВ выпуске 2221 приведено более подробное описание созданных сетей по умолчанию.
wildflycouchbasejavaee7— это новая мостовая сеть, созданная для нашего приложения. В выпуске № 2345 приводятся некоторые сведения о неправильном имени драйвера в выходном сообщении.
Настройте сервер Couchbase
- Клон
couchbase-javaeeРЕПО:1https://github.com/arun-gupta/couchbase-javaee - Настройте сервер Couchbase:
010203040506070809101112131415161718192021222324252627
mvninstall-Pcouchbase[INFO] Scanningforprojects...[INFO][INFO] ------------------------------------------------------------------------[INFO] Building couchbase-javaee 1.0-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO]. . .* Server auth using Basic with user'Administrator'> POST/sampleBuckets/installHTTP/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
mvninstall-Pwildfly -Dwildfly.hostname=192.168.99.100 -Dwildfly.username=admin -Dwildfly.password=Admin#007[INFO] Scanningforprojects...[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.FinalNov 26, 2015 5:17:39 AM org.xnio.nio.NioXnio <clinit>INFO: XNIO NIO Implementation Version 3.3.1.FinalNov 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 -vhttp://192.168.99.100:8080/couchbase-javaee/resources/airline* Hostname was NOT foundinDNS cache* Trying 192.168.99.100...* Connected to 192.168.99.100 (192.168.99.100) port 8080 (#0)> GET/couchbase-javaee/resources/airlineHTTP/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/8is 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 -vhttp://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… . |