{"id":3316,"date":"2017-04-21T04:52:51","date_gmt":"2017-04-21T11:52:51","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=3316"},"modified":"2023-06-19T02:39:16","modified_gmt":"2023-06-19T09:39:16","slug":"docker-vaadin-meet-couchbase-part2","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/docker-vaadin-meet-couchbase-part2\/","title":{"rendered":"Docker\uc640 Vaadin\uc758 \ub9cc\ub0a8, \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 - 2\ubd80"},"content":{"rendered":"<p><em><a href=\"https:\/\/www.linkedin.com\/in\/ratnopam-chakrabarti\" target=\"_blank\" rel=\"noopener noreferrer\">\ub77c\ud2b8\ub178\ud31c \ucc28\ud06c\ub77c\ubc14\ud2f0<\/a><\/em><em>\u00a0\ub294 \ud604\uc7ac \uc5d0\ub9ad\uc2a8\uc5d0\uc11c \uadfc\ubb34\ud558\ub294 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c\uc790\uc785\ub2c8\ub2e4. \uadf8\ub294 \uc624\ub7ab\ub3d9\uc548 IoT, \uae30\uacc4 \uac04 \uae30\uc220, \ucee4\ub125\ud2f0\ub4dc \uce74, \uc2a4\ub9c8\ud2b8 \uc2dc\ud2f0 \ubd84\uc57c\uc5d0 \uc9d1\uc911\ud574 \uc654\uc2b5\ub2c8\ub2e4. \uadf8\ub294 \uc0c8\ub85c\uc6b4 \uae30\uc220\uc744 \ubc30\uc6b0\uace0 \uc774\ub97c \uc2e4\ubb34\uc5d0 \uc801\uc6a9\ud558\ub294 \uac83\uc744 \uc88b\uc544\ud569\ub2c8\ub2e4. \uc77c\ud558\uc9c0 \uc54a\uc744 \ub54c\ub294 3\uc0b4 \ub09c \uc544\ub4e4\uacfc \ud568\uaed8 \uc2dc\uac04\uc744 \ubcf4\ub0b4\ub294 \uac83\uc744 \uc990\uae41\ub2c8\ub2e4.<\/em><\/p>\n<h3>\uc18c\uac1c<\/h3>\n<p>\uc774 \uc2dc\ub9ac\uc988\uc758 2\ubd80\uc5d0\uc11c\ub294 Docker \ub3c4\uad6c \uc138\ud2b8\ub97c \uc0ac\uc6a9\ud558\uc5ec Couchbase \uae30\ubc18\uc758 \uc644\uc804\ud55c \uae30\ub2a5\uc744 \uac16\ucd98 Spring Boot \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uac1c\ubc1c\ud558\uace0 \uc2e4\ud589\ud558\ub294 \ubc29\ubc95\uc744 \uc124\uba85\ud569\ub2c8\ub2e4. In <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/docker-vaadin-meet-couchbase-part1\/\">\ud30c\ud2b8 1 <\/a>\uc2dc\ub9ac\uc988\uc5d0\uc11c\ub294 \ub450 \uac1c\uc758 Docker \ucee8\ud14c\uc774\ub108\ub97c \uc2e4\ud589\ud558\uc5ec \ubcf4\uae30 \uc88b\uc740 UI\ub97c \uac16\ucd98 \uae30\ub2a5\uc801\uc778 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc2e4\ud589\ud558\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\ub4dc\ub838\uc2b5\ub2c8\ub2e4. \uc2e4\ud589\ud55c \ub450 \uac1c\uc758 Docker \ucee8\ud14c\uc774\ub108\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<ol>\n<li>A <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/containers\/\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ucee8\ud14c\uc774\ub108<\/a> \uc0ac\uc804 \uad6c\uc131\ub41c \uc124\uc815\uc73c\ub85c<\/li>\n<li>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ucee8\ud14c\uc774\ub108\uc640 \ub300\ud654\ud558\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ucee8\ud14c\uc774\ub108(1\ub2e8\uacc4\uc5d0\uc11c \uc2e4\ud589)<\/li>\n<\/ol>\n<p>\uc774 \ubc29\ubc95\uc740 \uc720\uc6a9\ud558\uc9c0\ub9cc \uc644\uc804\ud788 \uc790\ub3d9\ud654\ub41c \uac83\uc740 \uc544\ub2c8\ubbc0\ub85c \uc790\ub3d9\ud654\ub41c \uc624\ucf00\uc2a4\ud2b8\ub808\uc774\uc158\uc774 \uc81c\uacf5\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc804\uccb4 \uc124\uc815\uc744 \uc2e4\ud589\ud558\ub824\uba74 \ub450 \uac1c\uc758 \uc11c\ub85c \ub2e4\ub978 Docker \uc2e4\ud589 \uba85\ub839\uc744 \uc2e4\ud589\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ucee8\ud14c\uc774\ub108\ub97c \ube4c\ub4dc\ud558\uace0 \uc2e4\ud589\ud558\ub294 \ub3d9\uc2dc\uc5d0 Couchbase \ucee8\ud14c\uc774\ub108\uc758 \uc2e4\ud589\uc744 \ud2b8\ub9ac\uac70\ud558\ub294 \ubc29\ubc95\uc774 \uc788\ub098\uc694? \ubb3c\ub860 \ubc29\ubc95\uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>Docker \uc791\uc131 \uc2dc\uc791<\/h3>\n<p>\uc0ac\uc6a9 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/couchbase-using-docker-compose\/\">\ub3c4\ucee4 \ucef4\ud3ec\uc988<\/a>\ub97c \uc0ac\uc6a9\ud558\uba74 \ub2e4\uc911 \ucee8\ud14c\uc774\ub108 \ud658\uacbd\uc758 \uc2e4\ud589\uc744 \uc624\ucf00\uc2a4\ud2b8\ub808\uc774\uc158\ud560 \uc218 \uc788\uc73c\uba70, \uc774\uac83\uc774 \ubc14\ub85c \uc6b0\ub9ac \uc0ac\uc6a9 \uc0ac\ub840\uc5d0 \ud544\uc694\ud55c \uac83\uc785\ub2c8\ub2e4. \uba3c\uc800 Couchbase \ucee8\ud14c\uc774\ub108\ub97c \uc2e4\ud589\ud55c \ub2e4\uc74c \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ucee8\ud14c\uc774\ub108\uac00 \uc2e4\ud589\ub418\uc5b4 Couchbase \ucee8\ud14c\uc774\ub108\uc640 \ud1b5\uc2e0\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\uc74c\uc740 \uc774\ub97c \uc704\ud55c docker-compose.yml \ud30c\uc77c\uc785\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">version: \"2\"\r\n\r\nservices:\r\n\r\n\u00a0 app:\r\n\r\n\u00a0 \u00a0 build: .\r\n\r\n\u00a0 \u00a0 ports:\r\n\r\n\u00a0 \u00a0 \u00a0 - 8080:8080\r\n\r\n\u00a0 \u00a0 environment:\r\n\r\n\u00a0 \u00a0 \u00a0 - BUCKET_NAME=books\r\n\r\n\u00a0 \u00a0 \u00a0 - HOST=192.168.99.100\r\n\r\n\u00a0 \u00a0 depends_on:\r\n\r\n\u00a0 \u00a0 \u00a0 - db\r\n\r\n\u00a0 db:\r\n\r\n\u00a0 \u00a0 image: chakrar27\/couchbase:books\r\n\r\n\u00a0 \u00a0 ports:\r\n\r\n\u00a0 \u00a0 \u00a0 - 8091:8091\r\n\r\n\u00a0 \u00a0 \u00a0 - 8092:8092\r\n\r\n\u00a0 \u00a0 \u00a0 - 8093:8093\r\n\r\n\u00a0 \u00a0 \u00a0 - 8094:8094\r\n\r\n\u00a0 \u00a0 \u00a0 - 11210:11210\r\n\r\n<\/pre>\n<p>\uc6b0\ub9ac \uc571\uc740 Couchbase \ucee8\ud14c\uc774\ub108\uc778 DB \uc774\ubbf8\uc9c0\uc5d0 \"\uc758\uc874\"\ud569\ub2c8\ub2e4. \uc989, Couchbase \ucee8\ud14c\uc774\ub108\uac00 \uba3c\uc800 \uc2e4\ud589\ub41c \ub2e4\uc74c \uc571 \ucee8\ud14c\uc774\ub108\uac00 \uc2e4\ud589\ub418\uae30 \uc2dc\uc791\ud569\ub2c8\ub2e4. \uc5ec\uae30\uc11c \ud55c \uac00\uc9c0 \uc7a0\uc7ac\uc801\uc778 \ubb38\uc81c\uac00 \uc788\uc2b5\ub2c8\ub2e4. \"depends_on\" \ud0a4\uc6cc\ub4dc\ub294 Couchbase \ucee8\ud14c\uc774\ub108\uac00 \uc774\ubbf8\uc9c0 \uad6c\uc131\uc744 \uc644\ub8cc\ud558\uace0 \uc2e4\ud589\uc744 \uc2dc\uc791\ud588\ub2e4\ub294 \uac83\uc744 \ubcf4\uc7a5\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ucee8\ud14c\uc774\ub108\uac00 \uba3c\uc800 \uc2dc\uc791\ub418\uc5c8\ub2e4\ub294 \uac83\ub9cc \ubcf4\uc7a5\ud560 \ubfd0, \ucee8\ud14c\uc774\ub108\uac00 \uc2e4\uc81c\ub85c \uc2e4\ud589 \uc911\uc778\uc9c0 \ub610\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc694\uccad\uc744 \uc218\ub77d\ud560 \uc900\ube44\uac00 \ub418\uc5c8\ub294\uc9c0 \uc5ec\ubd80\ub294 \ud655\uc778\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. Couchbase \ucee8\ud14c\uc774\ub108\uac00 \uc2e4\uc81c\ub85c \uc2e4\ud589 \uc911\uc774\uace0 \ucffc\ub9ac, \uc778\ub371\uc2a4 \uc11c\ube44\uc2a4 \ubc0f \ubc84\ud0b7 \uc124\uc815\uacfc \uac19\uc740 \ubaa8\ub4e0 \uc0ac\uc804 \uad6c\uc131 \ub2e8\uacc4\uac00 \uc644\ub8cc\ub418\uc5c8\ub294\uc9c0 \ud655\uc778\ud558\ub824\uba74 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ucee8\ud14c\uc774\ub108\uc5d0\uc11c \ud655\uc778\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\uc74c\uc740 \ubc84\ud0b7\uc774 \uc774\ubbf8 \uc124\uc815\ub418\uc5c8\ub294\uc9c0 \uc5ec\ubd80\ub97c \ucc28\ub840\ub85c \ud655\uc778\ud558\ub294 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \ud638\ucd9c\ud558\ub294 \uc571 \ucee8\ud14c\uc774\ub108\uc758 Docker\ud30c\uc77c\uc785\ub2c8\ub2e4. \uc774 \uc2a4\ud06c\ub9bd\ud2b8\ub294 \ubc84\ud0b7\uc774 \uc124\uc815\ub420 \ub54c\uae4c\uc9c0 \ub8e8\ud504\ub85c \uc774\ub3d9\ud55c \ub2e4\uc74c \uc571 \ucee8\ud14c\uc774\ub108\ub97c \ud2b8\ub9ac\uac70\ud569\ub2c8\ub2e4.<\/p>\n<p><u><a href=\"https:\/\/github.com\/ratchakr\/bookstoreapp\/blob\/master\/Dockerfile-v1\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/ratchakr\/bookstoreapp\/blob\/master\/Dockerfile-v1<\/a><\/u><\/p>\n<p>\uc2a4\ud06c\ub9bd\ud2b8\ub294 \ub2e4\uc74c\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <u><a href=\"https:\/\/github.com\/ratchakr\/bookstoreapp\/blob\/master\/run_app.sh\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/ratchakr\/bookstoreapp\/blob\/master\/run_app.sh<\/a><\/u><\/p>\n<p>\uc2a4\ud06c\ub9bd\ud2b8\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \uc791\uc5c5\uc744 \uc218\ud589\ud569\ub2c8\ub2e4:<\/p>\n<p>\ubc84\ud0b7\uc744 \ucffc\ub9ac\ud558\uae30 \uc704\ud574 Couchbase\uc5d0\uc11c \uc9c0\uc6d0\ud558\ub294 REST \uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<p>\uceec\uc740 REST \uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub97c \ud638\ucd9c\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. curl\uc758 \uc124\uce58\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 Docker\ud30c\uc77c\uc5d0\uc11c \ub2e4\ub8f9\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uc2a4\ud06c\ub9bd\ud2b8\ub294 jq\ub77c\ub294 \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\uc5ec REST \ud638\ucd9c\uc758 JSON \uc751\ub2f5\uc744 \uad6c\ubb38 \ubd84\uc11d\ud569\ub2c8\ub2e4.<\/p>\n<p>\ubc84\ud0b7\uc774 \uc124\uc815\ub418\uc5b4 \uc788\uc73c\uba74 \uc571 \ucee8\ud14c\uc774\ub108\ub97c \uc2e4\ud589\ud558\uace0, \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74 \ubc84\ud0b7\uc774 \uba3c\uc800 \uc124\uc815\ub420 \ub54c\uae4c\uc9c0 \uae30\ub2e4\ub9bd\ub2c8\ub2e4.<\/p>\n<p>\uc778\ub371\uc2a4 \uc11c\ube44\uc2a4\uc640 \ucffc\ub9ac \uc11c\ube44\uc2a4\uac00 \uc81c\ub300\ub85c \uc124\uc815\ub418\uc5c8\ub294\uc9c0 \uc5ec\ubd80\uc640 \uac19\uc740 \ub354 \ub9ce\uc740 \uac80\uc0ac\ub97c \uc178 \uc2a4\ud06c\ub9bd\ud2b8\uc5d0 \ucd94\uac00\ud558\uc5ec \ub354 \uac15\ub825\ud558\uac8c \ub9cc\ub4e4 \uc218 \uc788\ub2e4\ub294 \uc810\uc744 \uc5b8\uae09\ud560 \uac00\uce58\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ud55c \uac00\uc9c0 \uc8fc\uc758\ud560 \uc810\uc740 docker-compose \uc811\uadfc \ubc29\uc2dd\uc744 \ub530\ub974\uae30 \uc804\uc5d0 \ud2b9\uc815 \uc0ac\uc6a9 \uc0ac\ub840\uc640 \uc694\uad6c \uc0ac\ud56d\uc744 \ud655\uc778\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. Couchbase db \ucee8\ud14c\uc774\ub108\uac00 \uc644\uc804\ud788 \uc2e4\ud589 \uc911\uc774\uace0 \ud074\ub77c\uc774\uc5b8\ud2b8 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc694\uccad\uc744 \ucc98\ub9ac\ud560 \uc900\ube44\uac00 \ub418\uc5b4 \uc788\ub294\uc9c0 \ud655\uc778\ud560 \uc218 \uc788\ub294 \ud655\uc2e4\ud55c \ubc29\ubc95\uc740 \uc5c6\uc2b5\ub2c8\ub2e4. \uc791\ub3d9\ud560 \uc218 \uc788\ub294 \uba87 \uac00\uc9c0 \uc811\uadfc \ubc29\uc2dd\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<ol>\n<li>\ubbf8\ub9ac \uad6c\uc131\ub41c \ubc84\ud0b7\uc774 \uc788\ub294 \uacbd\uc6b0 \ubc84\ud0b7\uc774 \uc874\uc7ac\ud558\ub294\uc9c0 \ud14c\uc2a4\ud2b8\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li>\uc778\ub371\uc2a4\uac00 \uc81c\uc790\ub9ac\uc5d0 \uc788\ub294\uc9c0 \ud655\uc778<\/li>\n<li>\ubc84\ud0b7\uc758 \ub808\ucf54\ub4dc \uc218\ub97c \uc54c\uace0 \uc788\ub2e4\uba74(\ucd08\uae30 \ub370\uc774\ud130 \ub85c\ub4dc \uc2dc \ubc84\ud0b7\uc73c\ub85c \uac00\uc838\uc628 .csv \ud30c\uc77c\uc744 \uc608\ub85c \ub4e4\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4), \uadf8 \uc218\uac00 .csv \ud30c\uc77c\uc758 \ub808\ucf54\ub4dc \uc218\uc640 \uc77c\uce58\ud558\ub294\uc9c0 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.) \uc800\ud76c \uc0ac\uc6a9 \uc0ac\ub840\uc758 \uacbd\uc6b0, \uc704\uc5d0\uc11c \uc5b8\uae09\ud55c \ubc29\ubc95\uc774 \uc798 \uc791\ub3d9\ud569\ub2c8\ub2e4.<\/li>\n<\/ol>\n<h3>\ube4c\ub4dc \ubc0f \uc2e4\ud589<\/h3>\n<p>\uc774\uc81c \ub3c4\ucee4 \ucef4\ud3ec\uc988 \ud30c\uc77c\uacfc \ub3c4\ucee4\ud30c\uc77c\uc744 \uc900\ube44\ud588\uc73c\ub2c8, \uc774\uc81c \uac04\ub2e8\ud55c <em>\ub3c4\ucee4-\ucef4\ud3ec\uc9c0\ud2b8 \uc5c5<\/em>\u00a0\uba85\ub839\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\uc74c\uc740 Docker \ucf58\uc194\uc758 \ucd9c\ub825 \uc2a4\ub2c8\ud3ab\uc785\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">$ docker-compose up\r\n\r\nCreating network \"bookstoreapp_default\" with the default driver\r\n\r\nPulling db (chakrar27\/couchbase:books)...\r\n\r\nbooks: Pulling from chakrar27\/couchbase\r\n\r\nDigest: sha256:4bc356a1f2b5b3d7ee3daf10cd5c55480ab831a0a147b07f5b14bea3de909fd9\r\n\r\nStatus: Downloaded newer image for chakrar27\/couchbase:books\r\n\r\nBuilding app\r\n\r\nStep 1\/8 : FROM frolvlad\/alpine-oraclejdk8:full\r\n\r\nfull: Pulling from frolvlad\/alpine-oraclejdk8\r\n\r\nDigest: sha256:a344745faa77a9aa5229f26bc4f5c596d13bcfc8fcac051a701b104a469aff1f\r\n\r\nStatus: Downloaded newer image for frolvlad\/alpine-oraclejdk8:full\r\n\r\n---&gt; 5f7037acb78d\r\n\r\nStep 2\/8 : VOLUME \/tmp\r\n\r\n---&gt; Running in 7d18e0b90bfd\r\n\r\n---&gt; 6a43ccb712dc\r\n\r\nRemoving intermediate container 7d18e0b90bfd\r\n\r\nStep 3\/8 : ADD target\/bookstore-1.0.0-SNAPSHOT.jar app.jar\r\n\r\n---&gt; a3b4bf7745e0\r\n\r\nRemoving intermediate container 0404f1d094d3\r\n\r\nStep 4\/8 : RUN sh -c 'touch \/app.jar'\r\n\r\n---&gt; Running in 64d1c82a0694\r\n\r\n---&gt; 1ec5a68cafa9\r\n\r\nRemoving intermediate container 64d1c82a0694\r\n\r\nStep 5\/8 : RUN apk update &amp;&amp; apk add curl\r\n\r\n---&gt; Running in 1f912e8341bd\r\n\r\nfetch https:\/\/dl-cdn.alpinelinux.org\/alpine\/v3.5\/main\/x86_64\/APKINDEX.tar.gz\r\n\r\nfetch https:\/\/dl-cdn.alpinelinux.org\/alpine\/v3.5\/community\/x86_64\/APKINDEX.tar.gz\r\n\r\nv3.5.2-16-g53ad101cf8 [https:\/\/dl-cdn.alpinelinux.org\/alpine\/v3.5\/main]\r\n\r\nv3.5.2-14-gd7ba0e189f [https:\/\/dl-cdn.alpinelinux.org\/alpine\/v3.5\/community]\r\n\r\nOK: 7961 distinct packages available\r\n\r\n(1\/4) Installing ca-certificates (20161130-r1)\r\n\r\n(2\/4) Installing libssh2 (1.7.0-r2)\r\n\r\n(3\/4) Installing libcurl (7.52.1-r2)\r\n\r\n(4\/4) Installing curl (7.52.1-r2)\r\n\r\nExecuting busybox-1.25.1-r0.trigger\r\n\r\nExecuting ca-certificates-20161130-r1.trigger\r\n\r\nExecuting glibc-bin-2.25-r0.trigger\r\n\r\nOK: 12 MiB in 18 packages\r\n\r\n---&gt; 8f99863af926\r\n\r\nRemoving intermediate container 1f912e8341bd\r\n\r\nStep 6\/8 : ADD run_app.sh .\r\n\r\n---&gt; cedb8d545070\r\n\r\nRemoving intermediate container 8af5ac3ab0a0\r\n\r\nStep 7\/8 : RUN chmod +x run_app.sh\r\n\r\n---&gt; Running in 74a141de2f52\r\n\r\n---&gt; 77ffd7425bea\r\n\r\nRemoving intermediate container 74a141de2f52\r\n\r\nStep 8\/8 : CMD sh run_app.sh\r\n\r\n---&gt; Running in 6f81c8ebaa37\r\n\r\n---&gt; 56a3659005ef\r\n\r\nRemoving intermediate container 6f81c8ebaa37\r\n\r\nSuccessfully built 56a3659005ef\r\n\r\nImage for service app was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.\r\n\r\nCreating bookstoreapp_db_1\r\n\r\nCreating bookstoreapp_app_1\r\n\r\nAttaching to bookstoreapp_db_1, bookstoreapp_app_1\r\n\r\ndb_1 \u00a0 | docker host ip = \u00a0192.168.99.100\r\n\r\ndb_1 \u00a0 | sleeping...\r\n\r\napp_1 \u00a0| Starting application run script...........\r\n\r\napp_1 \u00a0| couchbase is running on 192.168.99.100\r\n\r\napp_1 \u00a0| bucket to check is books\r\n\r\ndb_1 \u00a0 | &lt; Date: Fri, 24 Mar 2017 06:53:00 GMT\r\n\r\ndb_1 \u00a0 | &lt; Content-Length: 0\r\n\r\ndb_1 \u00a0 | &lt; Cache-Control: no-cache\r\n\r\ndb_1 \u00a0 | &lt;\r\n\r\n100 \u00a0 \u00a055 \u00a0 \u00a00 \u00a0 \u00a0 0 \u00a0100 \u00a0 \u00a055 \u00a0 \u00a0 \u00a00 \u00a0 \u00a0827 --:--:-- --:--:-- --:--:-- \u00a0 833\r\n\r\ndb_1 \u00a0 | * Connection #0 to host 127.0.0.1 left intact\r\n\r\ndb_1 \u00a0 | bucket set up done\r\n\r\napp_1 \u00a0| response from cb\r\n\r\napp_1 \u00a0| ************************************************\r\n\r\napp_1 \u00a0| ************************************************\r\n\r\napp_1 \u00a0| response from cb books\r\n\r\napp_1 \u00a0| ************************************************\r\n\r\napp_1 \u00a0| ************************************************\r\n\r\napp_1 \u00a0| bucket is now ready bucket name books\r\n\r\napp_1 \u00a0| Run application container now\r\n\r\napp_1 \u00a0| ************************************************\r\n\r\napp_1 \u00a0|\r\n\r\napp_1 \u00a0| \u00a0 . \u00a0 ____ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0_ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0__ _ _\r\n\r\napp_1 \u00a0| \u00a0\/\\\\ \/ ___'_ __ _ _(_)_ __ \u00a0__ _ \\ \\ \\ \\\r\n\r\napp_1 \u00a0| ( ( )\\___ | '_ | '_| | '_ \\\/ _` | \\ \\ \\ \\\r\n\r\napp_1 \u00a0| \u00a0\\\\\/ \u00a0___)| |_)| | | | | || (_| | \u00a0) ) ) )\r\n\r\napp_1 \u00a0| \u00a0 ' \u00a0|____| .__|_| |_|_| |_\\__, | \/ \/ \/ \/\r\n\r\napp_1 \u00a0| \u00a0=========|_|==============|___\/=\/_\/_\/_\/\r\n\r\napp_1 \u00a0| \u00a0:: Spring Boot :: \u00a0 \u00a0 \u00a0 \u00a0(v1.4.2.RELEASE)\r\n\r\napp_1 \u00a0|\r\n\r\napp_1 \u00a0| 2017-03-24 06:53:59.839 \u00a0INFO 31 --- [ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 main] c.chakrar.sample.books.BookStoreRunner \u00a0 : Book Details = Book [id=06bad9c4-85fc-4c0b-83a7-ad21b2fdd405, title=The Immortal Irishman, author=Timothy Egan, isbn=ISBN444, category=History]\r\n\r\napp_1 \u00a0| 2017-03-24 06:53:59.839 \u00a0INFO 31 --- [ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 main] c.chakrar.sample.books.BookStoreRunner \u00a0 : Book Details = Book [id=328eaf44-edff-43c6-9f55-62d7e095256d, title=The Kite Runner, author=Khaled Hosseini, isbn=ISBN663, category=Fiction]\r\n\r\napp_1 \u00a0| 2017-03-24 06:53:59.839 \u00a0INFO 31 --- [ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 main] c.chakrar.sample.books.BookStoreRunner \u00a0 : Book Details = Book [id=56882f5a-d466-457f-82c1-1c3bca0c6d75, title=Breaking Blue, author=Timothy Egan, isbn=ISBN777, category=Thriller]\r\n\r\napp_1 \u00a0| 2017-03-24 06:53:59.839 \u00a0INFO 31 --- [ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 main] c.chakrar.sample.books.BookStoreRunner \u00a0 : Book Details = Book [id=845a2fe8-cbbf-4780-b216-41abf86d7d61, title=History of Mankind, author=Gabriel Garcia, isbn=ISBN123, category=History]\r\n\r\napp_1 \u00a0| 2017-03-24 06:53:59.840 \u00a0INFO 31 --- [ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 main] c.chakrar.sample.books.BookStoreRunner \u00a0 : Book Details = Book [id=9d2833c3-e005-4c4f-98f9-75b69bbb7bf5, title=The Night Gardener, author=Eric Fan, isbn=ISBN333, category=Kids Books]\r\n\r\napp_1 \u00a0| 2017-03-24 06:53:59.840 \u00a0INFO 31 --- [ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 main] c.chakrar.sample.books.BookStoreRunner \u00a0 : Book Details = Book [id=5756bf4d-551c-429e-8bc3-2339dc065ff8, title=Grit: The Power of Passion and Perseverance, author=Angela Duckworth, isbn=ISBN555, category=Business]\r\n\r\napp_1 \u00a0| 2017-03-24 06:53:59.840 \u00a0INFO 31 --- [ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 main] c.chakrar.sample.books.BookStoreRunner \u00a0 : Book Details = Book [id=e8e34f30-6fdf-4ca7-9cef-e06f504f8778, title=War and Turpentine, author=Stefan Hertmans, isbn=ISBN222, category=Fiction]\r\n\r\napp_1 \u00a0| 2017-03-24 06:54:00.234 \u00a0INFO 31 --- [ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 main] c.chakrar.sample.books.BookStoreRunner \u00a0 : Books by Timothy Egan = Book [id=06bad9c4-85fc-4c0b-83a7-ad21b2fdd405, title=The Immortal Irishman, author=Timothy Egan, isbn=ISBN444, category=History]\r\n\r\napp_1 \u00a0| 2017-03-24 06:54:00.238 \u00a0INFO 31 --- [ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 main] c.chakrar.sample.books.BookStoreRunner \u00a0 : Books by Timothy Egan = Book [id=56882f5a-d466-457f-82c1-1c3bca0c6d75, title=Breaking Blue, author=Timothy Egan, isbn=ISBN777, category=Thriller]\r\n\r\napp_1 \u00a0| 2017-03-24 06:54:00.346 \u00a0INFO 31 --- [ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 main] c.chakrar.sample.books.BookStoreRunner \u00a0 : Book Starting with title 'The' = Book [id=06bad9c4-85fc-4c0b-83a7-ad21b2fdd405, title=The Immortal Irishman, author=Timothy Egan, isbn=ISBN444, category=History]\r\n\r\napp_1 \u00a0| 2017-03-24 06:54:00.349 \u00a0INFO 31 --- [ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 main] c.chakrar.sample.books.BookStoreRunner \u00a0 : Book Starting with title 'The' = Book [id=328eaf44-edff-43c6-9f55-62d7e095256d, title=The Kite Runner, author=Khaled Hosseini, isbn=ISBN663, category=Fiction]\r\n\r\napp_1 \u00a0| 2017-03-24 06:54:00.349 \u00a0INFO 31 --- [ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 main] c.chakrar.sample.books.BookStoreRunner \u00a0 : Book Starting with title 'The' = Book [id=9d2833c3-e005-4c4f-98f9-75b69bbb7bf5, title=The Night Gardener, author=Eric Fan, isbn=ISBN333, category=Kids Books]\r\n\r\napp_1 \u00a0| 2017-03-24 06:54:00.443 \u00a0INFO 31 --- [ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 main] c.chakrar.sample.books.BookStoreRunner \u00a0 : Book in Fiction = Book [id=328eaf44-edff-43c6-9f55-62d7e095256d, title=The Kite Runner, author=Khaled Hosseini, isbn=ISBN663, category=Fiction]\r\n\r\napp_1 \u00a0| 2017-03-24 06:54:00.453 \u00a0INFO 31 --- [ \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 main] c.chakrar.sample.books.BookStoreRunner \u00a0 : Book in Fiction = Book [id=e8e34f30-6fdf-4ca7-9cef-e06f504f8778, title=War and Turpentine, author=Stefan Hertmans, isbn=ISBN222, category=Fiction]\r\n\r\napp_1 \u00a0| 2017-03-24 06:54:02.745 \u00a0INFO 31 --- [nio-8080-exec-1] o.v.spring.servlet.Vaadin4SpringServlet \u00a0: Could not find a SystemMessagesProvider in the application context, using default\r\n\r\napp_1 \u00a0| 2017-03-24 06:54:02.753 \u00a0INFO 31 --- [nio-8080-exec-1] o.v.spring.servlet.Vaadin4SpringServlet \u00a0: Custom Vaadin4Spring servlet initialization completed\r\n\r\napp_1 \u00a0| 2017-03-24 06:54:02.864 \u00a0INFO 31 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[\/] \u00a0 \u00a0 \u00a0 : Initializing Spring FrameworkServlet 'dispatcherServlet'\r\n\r\napp_1 \u00a0| 2017-03-24 06:54:02.865 \u00a0INFO 31 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet \u00a0 \u00a0 \u00a0 \u00a0: FrameworkServlet 'dispatcherServlet': initialization started<\/pre>\n<p>\uc774 \uc2dc\uc810\uc5d0\uc11c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \ub2e8\uc77c docker-compose \uc624\ucf00\uc2a4\ud2b8\ub808\uc774\uc158 \uba85\ub839\uc73c\ub85c \uc2e4\ud589\ub429\ub2c8\ub2e4.<\/p>\n<p>\uc720\ud615 <u>192.168.99.100:8080<\/u>\u00a0\ub97c \ube0c\ub77c\uc6b0\uc800\uc5d0 \uc785\ub825\ud558\uba74 \ub2e4\uc74c \ud654\uba74\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/04\/pasted-image-0-12.png\" alt=\"pasted image 0 12\" \/><\/p>\n<p>Docker Compose\ub294 \uba40\ud2f0 \ucee8\ud14c\uc774\ub108 Docker \ud658\uacbd\uc744 \uc624\ucf00\uc2a4\ud2b8\ub808\uc774\uc158\ud558\ub294 \uc88b\uc740 \ubc29\ubc95\uc785\ub2c8\ub2e4. \"docker\" \uba85\ub839 \uc9d1\ud569\uacfc \uac70\uc758 \uc720\uc0ac\ud55c \uba85\ub839 \uccb4\uc778\uc744 \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uc2e4\ud589 \uc911\uc778 \ucee8\ud14c\uc774\ub108 \ubaa9\ub85d\uc744 \ubcf4\ub824\uba74 \uac04\ub2e8\ud788 \uc785\ub825\ud558\uae30\ub9cc \ud558\uba74 \ub429\ub2c8\ub2e4:<\/p>\n<p>docker-compose ps &gt;\ub97c \uc2e4\ud589\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \uacb0\uacfc\uac00 \ub098\ud0c0\ub0a9\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:default decode:true\">$ docker-compose ps\r\n\r\nName \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 Command \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 State \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Ports\r\n\r\n---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\nbookstoreapp_app_1\u00a0 \u00a0\/bin\/sh -c sh run_app.sh \u00a0 \u00a0 \u00a0 \u00a0 Up \u00a0 \u00a0 \u00a00.0.0.0:8080-&gt;8080\/tcp\r\n\r\nbookstoreapp_db_1\u00a0 \u00a0 \/entrypoint.sh \/opt\/couchb ... \u00a0 Up \u00a0 \u00a0 \u00a011207\/tcp, 0.0.0.0:11210-&gt;11210\/tcp, 11211\/tcp, 18091\/tcp, 18092\/tcp, 18093\/tcp, 0.0.0.0:8091-&gt;8091\/tcp, 0.0.0.0:8092-&gt;8092\/tcp, 0.0.0.0:8093-&gt;8093\/tcp, 0.0.0.0:8094-&gt;8094\/tcp\r\n\r\n<\/pre>\n<p>\uc5ec\uae30\uc5d0\ub294 \ucee8\ud14c\uc774\ub108 \uc774\ub984\uc774 \uad75\uc740 \uae00\uc528\ub85c \ud45c\uc2dc\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>Docker Compose\ub85c \uc624\ucf00\uc2a4\ud2b8\ub808\uc774\uc158\ub41c \ud658\uacbd\uc744 \uc911\uc9c0\ud558\uac70\ub098 \ud574\uccb4\ud574\uc57c \ud558\ub294 \uacbd\uc6b0, \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc774\ub97c \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <strong>\ub3c4\ucee4-\ucef4\ud3ec\uc9c0\ud2b8 \ub2e4\uc6b4 <\/strong>\uba85\ub839\uc744 \uc2e4\ud589\ud569\ub2c8\ub2e4:<\/p>\n<p>\uc0d8\ud50c \uc2e4\ud589\uc774 \uc0dd\uc131\ub429\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">$ docker-compose down\r\n\r\nStopping bookstoreapp_app_1 ... done\r\n\r\nStopping bookstoreapp_db_1 ... done\r\n\r\nRemoving bookstoreapp_app_1 ... done\r\n\r\nRemoving bookstoreapp_db_1 ... done\r\n\r\nRemoving network bookstoreapp_default<\/pre>\n<p>\uc774\uc81c docker-compose ps\ub97c \uc2e4\ud589\ud558\uba74 \ud604\uc7ac \uc2e4\ud589 \uc911\uc778 \ucee8\ud14c\uc774\ub108\uac00 \uc5c6\uc74c\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:default decode:true\">$ docker-compose ps\r\n\r\nName \u00a0 Command \u00a0 State \u00a0 Ports\r\n\r\n---------------------------------------------------------------<\/pre>\n<p>\ub610\ud55c, \uc790\ub3d9\ud654\ub41c \ud14c\uc2a4\ud2b8 \ud658\uacbd\uc5d0\uc11c Docker \ucee8\ud14c\uc774\ub108\ub97c \uc2dc\uc791\ud558\uace0, \ud14c\uc2a4\ud2b8\ub97c \uc2e4\ud589\ud55c \ub2e4\uc74c, \uc804\uccb4 \uc778\ud504\ub77c\ub97c \ud574\uccb4\ud558\ub294 \ub370 Docker compose\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc73c\uba70, \uc774 \ubaa8\ub4e0 \uc791\uc5c5\uc744 Compose\ub85c \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Docker Compose\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \uac1c\uc694\ub97c \ubcf4\ub824\uba74 <u><a href=\"https:\/\/docs.docker.com\/compose\/overview\/\" target=\"_blank\" rel=\"noopener noreferrer\">\uacf5\uc2dd \uc6f9\uc0ac\uc774\ud2b8<\/a><\/u>.<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/community\/community-writers-program\/\"><em>\uc774 \uac8c\uc2dc\ubb3c\uc740 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ucee4\ubba4\ub2c8\ud2f0 \uae00\uc4f0\uae30 \ud504\ub85c\uadf8\ub7a8\uc758 \uc77c\ubd80\uc785\ub2c8\ub2e4.<\/em><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Docker \ub3c4\uad6c \uc138\ud2b8\ub97c \uc0ac\uc6a9\ud558\uc5ec Couchbase \uae30\ubc18\uc758 \uc644\uc804\ud55c \uae30\ub2a5\uc744 \uac16\ucd98 Spring Boot \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uac1c\ubc1c \ubc0f \uc2e4\ud589\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uc138\uc694. \uc2dc\ub9ac\uc988\uc758 1\ubd80\uc5d0\uc11c\ub294 \ub450 \uac1c\uc758 Docker \ucee8\ud14c\uc774\ub108\ub97c \uc2e4\ud589\ud558\uc5ec \ubcf4\uae30 \uc88b\uc740 UI\ub97c \uac16\ucd98 \uae30\ub2a5\uc801\uc778 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc2e4\ud589\ud558\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\ub4dc\ub838\uc2b5\ub2c8\ub2e4.<\/p>","protected":false},"author":53,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816],"tags":[1519,1594],"ppma_author":[9026],"class_list":["post-3316","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","tag-docker","tag-vaadin"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Docker and Vaadin Meet Couchbase - Part 2 - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/ko\/docker-vaadin-meet-couchbase-part2\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker and Vaadin Meet Couchbase - Part 2\" \/>\n<meta property=\"og:description\" content=\"How to develop and run a Couchbase powered, fully functional Spring Boot web application using the Docker toolset. In part one of the series, I demonstrated how to run two Docker containers to run a functional application with a presentable UI.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/docker-vaadin-meet-couchbase-part2\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-04-21T11:52:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-19T09:39:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/04\/pasted-image-0-12.png\" \/>\n<meta name=\"author\" content=\"Laura Czajkowski, Developer Community Manager, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Laura Czajkowski, Developer Community Manager, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/\"},\"author\":{\"name\":\"Laura Czajkowski, Developer Community Manager, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220\"},\"headline\":\"Docker and Vaadin Meet Couchbase &#8211; Part 2\",\"datePublished\":\"2017-04-21T11:52:51+00:00\",\"dateModified\":\"2023-06-19T09:39:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/\"},\"wordCount\":882,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"docker\",\"vaadin\"],\"articleSection\":[\"Couchbase Server\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/\",\"name\":\"Docker and Vaadin Meet Couchbase - Part 2 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-04-21T11:52:51+00:00\",\"dateModified\":\"2023-06-19T09:39:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker and Vaadin Meet Couchbase &#8211; Part 2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220\",\"name\":\"Laura Czajkowski, Developer Community Manager, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/9deb07d5daaa00220534c31768bc4409\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g\",\"caption\":\"Laura Czajkowski, Developer Community Manager, Couchbase\"},\"description\":\"Laura Czajkowski is the Snr. Developer Community Manager at Couchbase overseeing the community. She\u2019s responsible for our monthly developer newsletter.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/laura-czajkowski\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Docker\uc640 Vaadin\uc758 \ub9cc\ub0a8 - 2\ubd80 - CouchBase \ube14\ub85c\uadf8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/ko\/docker-vaadin-meet-couchbase-part2\/","og_locale":"ko_KR","og_type":"article","og_title":"Docker and Vaadin Meet Couchbase - Part 2","og_description":"How to develop and run a Couchbase powered, fully functional Spring Boot web application using the Docker toolset. In part one of the series, I demonstrated how to run two Docker containers to run a functional application with a presentable UI.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/docker-vaadin-meet-couchbase-part2\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-04-21T11:52:51+00:00","article_modified_time":"2023-06-19T09:39:16+00:00","og_image":[{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/04\/pasted-image-0-12.png","type":"","width":"","height":""}],"author":"Laura Czajkowski, Developer Community Manager, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Laura Czajkowski, Developer Community Manager, Couchbase","Est. reading time":"8\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/"},"author":{"name":"Laura Czajkowski, Developer Community Manager, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220"},"headline":"Docker and Vaadin Meet Couchbase &#8211; Part 2","datePublished":"2017-04-21T11:52:51+00:00","dateModified":"2023-06-19T09:39:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/"},"wordCount":882,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["docker","vaadin"],"articleSection":["Couchbase Server"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/","url":"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/","name":"Docker\uc640 Vaadin\uc758 \ub9cc\ub0a8 - 2\ubd80 - CouchBase \ube14\ub85c\uadf8","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-04-21T11:52:51+00:00","dateModified":"2023-06-19T09:39:16+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/docker-vaadin-meet-couchbase-part2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Docker and Vaadin Meet Couchbase &#8211; Part 2"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220","name":"Laura Czajkowski, \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0 \uad00\ub9ac\uc790, Couchbase","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/9deb07d5daaa00220534c31768bc4409","url":"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g","caption":"Laura Czajkowski, Developer Community Manager, Couchbase"},"description":"\ub85c\ub77c \ucc60\ucf54\ube0c\uc2a4\ud0a4\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc758 Snr. \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0 \ub9e4\ub2c8\uc800\ub85c \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc758 \ucee4\ubba4\ub2c8\ud2f0\ub97c \ucd1d\uad04\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub140\ub294 \uc6d4\uac04 \uac1c\ubc1c\uc790 \ub274\uc2a4\ub808\ud130\ub97c \ub2f4\ub2f9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/laura-czajkowski\/"}]}},"authors":[{"term_id":9026,"user_id":53,"is_guest":0,"slug":"laura-czajkowski","display_name":"Laura Czajkowski, Developer Community Manager, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g","author_category":"","last_name":"Czajkowski","first_name":"Laura","job_title":"","user_url":"","description":"\ub85c\ub77c \ucc60\ucf54\ube0c\uc2a4\ud0a4\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc758 Snr. \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0 \ub9e4\ub2c8\uc800\ub85c \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc758 \ucee4\ubba4\ub2c8\ud2f0\ub97c \ucd1d\uad04\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub140\ub294 \uc6d4\uac04 \uac1c\ubc1c\uc790 \ub274\uc2a4\ub808\ud130\ub97c \ub2f4\ub2f9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/3316","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/53"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=3316"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/3316\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=3316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=3316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=3316"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=3316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}