{"id":2523,"date":"2017-02-03T18:46:36","date_gmt":"2017-02-03T18:46:36","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2523"},"modified":"2023-06-19T03:58:42","modified_gmt":"2023-06-19T10:58:42","slug":"microservice-using-docker-stack-deploy-wildfly-javaee-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/","title":{"rendered":"Docker \uc2a4\ud0dd \ubc30\ud3ec\ub97c \uc0ac\uc6a9\ud558\ub294 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 - WildFly, Java EE \ubc0f CouchBase"},"content":{"rendered":"<p>\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uc5d0 \ub300\ud55c \ub9ce\uc740 \uc790\ub8cc\uac00 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/lmgtfy.com\/?q=microservices\">\uad6c\uae00 \uc787<\/a>! \uba87 \ub144 \uc804 Devoxx \ubca8\uae30\uc5d0\uc5d0\uc11c \ubaa8\ub180\ub9ac\uc2a4\ub97c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub85c \ub9ac\ud329\ud1a0\ub9c1\ud558\ub294 \uac83\uc5d0 \ub300\ud55c \ud504\ub808\uc820\ud14c\uc774\uc158\uc744 \ud588\ub294\ub370, \uc88b\uc740 \ud3c9\uac00\ub97c \ubc1b\uc558\uc2b5\ub2c8\ub2e4:\n<\/p>\n<p>\uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 Docker\uac00 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uc758 \uc0dd\uc131 \ubc0f \uc885\ub8cc\ub97c \uac04\uc18c\ud654\ud558\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\ub4dc\ub9bd\ub2c8\ub2e4. \uc774 \ube14\ub85c\uadf8\uc5d0\uc11c \uc0ac\uc6a9\ub41c \ubaa8\ub4e0 \ucf54\ub4dc\ub294\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/couchbase-javaee\">github.com\/arun-gupta\/couchbase-javaee<\/a>.<\/p>\n<h2>Compose\ub97c \uc0ac\uc6a9\ud55c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc815\uc758<\/h2>\n<p>\ub3c4\ucee4 1.13\uc740 <a href=\"https:\/\/docs.docker.com\/compose\/compose-file\/#version-3\">\ub3c4\ucee4 \ucef4\ud3ec\uc988 v3<\/a>. \uad6c\ubb38\uc758 \ubcc0\uacbd \uc0ac\ud56d\uc740 \ubbf8\ubbf8\ud558\uc9c0\ub9cc \uc8fc\uc694 \ucc28\uc774\uc810\uc740 \ub2e4\uc74c\uc744 \ucd94\uac00\ud55c \uac83\uc785\ub2c8\ub2e4. <a href=\"https:\/\/docs.docker.com\/compose\/compose-file\/#\/deploy\">\ubc30\ud3ec<\/a> \uc5b4\ud2b8\ub9ac\ubdf0\ud2b8. \uc774 \uc18d\uc131\uc744 \uc0ac\uc6a9\ud558\uba74 \ucee8\ud14c\uc774\ub108\uc5d0 \ub300\ud55c \ubcf5\uc81c\ubcf8, \ub864\ub9c1 \uc5c5\ub370\uc774\ud2b8 \ubc0f \uc7ac\uc2dc\uc791 \uc815\ucc45\uc744 \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub294 Java EE \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \uc0ac\uc804 \ubc30\ud3ec\ub41c WldFly \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc11c\ubc84\ub97c \uc2dc\uc791\ud569\ub2c8\ub2e4. \uc774 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 Couchbase \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640 \ud1b5\uc2e0\ud558\uc5ec \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ub370\uc774\ud130\ub97c CRUD\ud569\ub2c8\ub2e4. \ub2e4\uc74c\uc740 Compose \uc815\uc758\uc785\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">\r\nversion: &apos;3&apos;\r\nservices:\r\n  web:\r\n    image: arungupta\/couchbase-javaee:travel\r\n    environment:\r\n      - COUCHBASE_URI=db\r\n    ports:\r\n      - 8080:8080\r\n      - 9990:9990\r\n    depends_on:\r\n      - db\r\n  db:\r\n    image: arungupta\/couchbase:travel\r\n    ports:\r\n      - 8091:8091\r\n      - 8092:8092 \r\n      - 8093:8093 \r\n      - 11210:11210<\/pre>\n<p>\uc774 \uc791\uc131 \ud30c\uc77c\uc5d0\uc11c:<\/p>\n<ol>\n<li>\uc774 \ucef4\ud3ec\uc988\uc758 \ub450 \uc11c\ube44\uc2a4\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \uc774\ub984\uc73c\ub85c \uc815\uc758\ub429\ub2c8\ub2e4. <code>db<\/code> \uadf8\ub9ac\uace0 <code>\uc6f9<\/code> \uc18d\uc131<\/li>\n<li>\ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc815\uc758\ub41c \uac01 \uc11c\ube44\uc2a4\uc758 \uc774\ubbf8\uc9c0 \uc774\ub984 <code>\uc774\ubbf8\uc9c0<\/code> \uc18d\uc131<\/li>\n<li>\uadf8\ub9ac\uace0 <code>\uc544\ub8fd\uc5c5\ud0c0\/\uce74\uc6b0\uce58\ubca0\uc774\uc2a4:\uc5ec\ud589<\/code> \uc774\ubbf8\uc9c0\uac00 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84\ub97c \uc2dc\uc791\ud558\uace0 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \uad6c\uc131\ud569\ub2c8\ub2e4. <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/rest-api\/rest-endpoints-all.html\">Couchbase REST API<\/a>\ubc0f \ub85c\ub4dc\u00a0<code>\uc5ec\ud589 \uc0d8\ud50c<\/code> \ubc84\ud0b7\uc5d0 \ucd5c\ub300 32,000\uac1c\uc758 JSON \ubb38\uc11c\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li>\uadf8\ub9ac\uace0 <code>\uc544\ub8fd\uc5c5\ud0c0\/\uce74\uc6b0\uce58\ubca0\uc774\uc2a4-\uc790\ubc14\uc608:\uc5ec\ud589<\/code> \uc774\ubbf8\uc9c0\uac00 WildFly\ub97c \uc2dc\uc791\ud558\uace0 \ub2e4\uc74c\uc5d0\uc11c \ube4c\ub4dc\ud55c \uc560\ud50c\ub9ac\ucf00\uc774\uc158 WAR \ud30c\uc77c\uc744 \ubc30\ud3ec\ud569\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/arun-gupta\/couchbase-javaee\">https:\/\/github.com\/arun-gupta\/couchbase-javaee<\/a>. \uc790\uc2e0\ub9cc\uc758 \uc774\ubbf8\uc9c0\ub97c \ub9cc\ub4e4\ub824\uba74 \ud574\ub2f9 \ud504\ub85c\uc81d\ud2b8\ub97c \ubcf5\uc81c\ud558\uc138\uc694.<\/li>\n<li><code>\ud658\uacbd<\/code> \uc18d\uc131\uc740 WildFly\uc5d0 \ubc30\ud3ec\ub41c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \uc561\uc138\uc2a4\ud560 \uc218 \uc788\ub294 \ud658\uacbd \ubcc0\uc218\ub97c \uc815\uc758\ud569\ub2c8\ub2e4. <code>COUCHBASE_URI<\/code> \ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc11c\ube44\uc2a4\ub97c \ub098\ud0c0\ub0c5\ub2c8\ub2e4. \uc774\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ucf54\ub4dc\uc5d0\uc11c \ub2e4\uc74c\uacfc \uac19\uc774 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/arun-gupta\/couchbase-javaee\/blob\/master\/src\/main\/java\/org\/couchbase\/sample\/javaee\/Database.java\">https:\/\/github.com\/arun-gupta\/couchbase-javaee\/blob\/master\/src\/main\/java\/org\/couchbase\/sample\/javaee\/Database.java<\/a>.<\/li>\n<li>\ud3ec\ud2b8 \ud3ec\uc6cc\ub529\uc740 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc218\ud589\ub429\ub2c8\ub2e4. <code>\ud3ec\ud2b8<\/code> \uc18d\uc131<\/li>\n<li>\n<div><code>depends_on<\/code> \uc18d\uc131\uc744 \uc0ac\uc6a9\ud558\uba74 \ucee8\ud14c\uc774\ub108 \uc2dc\uc791 \uc21c\uc11c\ub97c \ubcf4\uc7a5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc218\uc900 \uc2dc\uc791\uc740 \ucee8\ud14c\uc774\ub108 \ub0b4\ubd80\uc5d0\uc11c \uc2e4\ud589\ub418\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ubcf4\uc7a5\ud574\uc57c \ud569\ub2c8\ub2e4. \uc800\ud76c\uc758 \uacbd\uc6b0, WildFly\ub294 \ub2e4\uc18c \ube60\ub974\uac8c \uc2dc\uc791\ub418\uc9c0\ub9cc \ub370\uc774\ud130\ubca0\uc774\uc2a4\uac00 \uc2dc\uc791\ub418\ub294 \ub370\ub294 \uba87 \ucd08\uac00 \uac78\ub9bd\ub2c8\ub2e4. \uc774\ub294 WildFly\uc5d0 \ubc30\ud3ec\ub41c Java EE \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640 \ud1b5\uc2e0\ud560 \uc218 \uc5c6\uc74c\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c \ub9c8\uc774\ud06c\ub85c \uc11c\ube44\uc2a4 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uad6c\ucd95\ud560 \ub54c\ub294 \uc2dc\uc791 \uc21c\uc11c\ub97c \uac00\uc815\ud558\uc9c0 \uc54a\uace0 \ubc29\uc5b4\uc801\uc73c\ub85c \ucf54\ub529\ud558\uace0 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ucd08\uae30\ud654\uc5d0\uc11c \uc758\uc874\ud558\ub294 \ub9c8\uc774\ud06c\ub85c \uc11c\ube44\uc2a4\uac00 \uc2dc\uc791\ub418\uc5c8\ub294\uc9c0 \ud655\uc778\ud574\uc57c \ud55c\ub2e4\ub294 \ubaa8\ubc94 \uc0ac\ub840\ub97c \uc124\uba85\ud569\ub2c8\ub2e4. \uc774\ub294 \ub2e4\uc74c \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ucd08\uae30\ud654 \ucf54\ub4dc\uc5d0 \ub098\uc640 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/arun-gupta\/couchbase-javaee\/blob\/master\/src\/main\/java\/org\/couchbase\/sample\/javaee\/Database.java\">https:\/\/github.com\/arun-gupta\/couchbase-javaee\/blob\/master\/src\/main\/java\/org\/couchbase\/sample\/javaee\/Database.java<\/a>. \ub2e4\uc74c \uac80\uc0ac\ub97c \uc218\ud589\ud569\ub2c8\ub2e4:<\/p>\n<ol>\n<li>\ubc84\ud0b7\uc774 \uc788\uc74c<\/li>\n<li>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc758 \ucffc\ub9ac \uc11c\ube44\uc2a4\uac00 \uc2e4\ud589 \uc911\uc785\ub2c8\ub2e4.<\/li>\n<li>\uc0d8\ud50c \ubc84\ud0b7\uc774 \uc644\uc804\ud788 \ub85c\ub4dc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ol><\/div>\n<\/li>\n<\/ol>\n<p>\uc774 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc2dc\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>\ub3c4\ucee4-\ucef4\ud3ec\uc9c0\ud2b8 \uc5c5 -d<\/code> \uba85\ub839\uc744 \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ub294 \uc2a4\uc6dc \ubaa8\ub4dc\uc758 Docker \uc5d4\uc9c4 \ud074\ub7ec\uc2a4\ud130\ub97c \uc0ac\uc6a9\ud558\uc5ec <code>\ub3c4\ucee4 \uc2a4\ud0dd \ubc30\ud3ec<\/code> \uba85\ub839\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<h2>\ub3c4\ucee4 \uc2a4\uc6dc \ubaa8\ub4dc \uc124\uc815<\/h2>\n<p>\ub2e4\uc74c \uba85\ub839\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc2a4\uc6dc \ubaa8\ub4dc\ub97c \ucd08\uae30\ud654\ud569\ub2c8\ub2e4:<\/p>\n<pre>\r\n\ub3c4\ucee4 \uc2a4\uc6dc \ucd08\uae30\ud654<\/pre>\n<div>\uc2a4\uc6dc \ub9e4\ub2c8\uc800\uac00 \uc2dc\uc791\ub429\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c \ub9e4\ub2c8\uc800 \ub178\ub4dc\ub294 \uc6cc\ucee4\uc774\uae30\ub3c4 \ud558\uc9c0\ub9cc \ub9e4\ub2c8\uc800 \uc804\uc6a9\uc73c\ub85c \uad6c\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/div>\n<div>\ub2e4\uc74c \uba85\ub839\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc774 \uc6d0\ub178\ub4dc \ud074\ub7ec\uc2a4\ud130\uc5d0 \ub300\ud55c \uba87 \uac00\uc9c0 \uc815\ubcf4\ub97c \ucc3e\uc2b5\ub2c8\ub2e4. <code>\ub3c4\ucee4 \uc815\ubcf4<\/code> \uba85\ub839\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">\r\nContainers: 0\r\n Running: 0\r\n Paused: 0\r\n Stopped: 0\r\nImages: 17\r\nServer Version: 1.13.0\r\nStorage Driver: overlay2\r\n Backing Filesystem: extfs\r\n Supports d_type: true\r\n Native Overlay Diff: true\r\nLogging Driver: json-file\r\nCgroup Driver: cgroupfs\r\nPlugins:\r\n Volume: local\r\n Network: bridge host ipvlan macvlan null overlay\r\nSwarm: active\r\n NodeID: 92mydh0e09ba5hx3wtmcmvktz\r\n Is Manager: true\r\n ClusterID: v68ikyaff7rdxpaw1j0c9i60s\r\n Managers: 1\r\n Nodes: 1\r\n Orchestration:\r\n  Task History Retention Limit: 5\r\n Raft:\r\n  Snapshot Interval: 10000\r\n  Number of Old Snapshots to Retain: 0\r\n  Heartbeat Tick: 1\r\n  Election Tick: 3\r\n Dispatcher:\r\n  Heartbeat Period: 5 seconds\r\n CA Configuration:\r\n  Expiry Duration: 3 months\r\n Node Address: 192.168.65.2\r\n Manager Addresses:\r\n  192.168.65.2:2377\r\nRuntimes: runc\r\nDefault Runtime: runc\r\nInit Binary: docker-init\r\ncontainerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e\r\nrunc version: 2f7393a47307a16f8cee44a37b262e8b81021e3e\r\ninit version: 949e6fa\r\nSecurity Options:\r\n seccomp\r\n  Profile: default\r\nKernel Version: 4.9.5-moby\r\nOperating System: Alpine Linux v3.5\r\nOSType: linux\r\nArchitecture: x86_64\r\nCPUs: 4\r\nTotal Memory: 1.952 GiB\r\nName: moby\r\nID: SGCM:KDRD:G3M7:PZHN:J4RL:VFFR:G2SR:EKD5:JV4J:RL3X:LF7T:XF6V\r\nDocker Root Dir: \/var\/lib\/docker\r\nDebug Mode (client): false\r\nDebug Mode (server): true\r\n File Descriptors: 31\r\n Goroutines: 124\r\n System Time: 2017-01-27T08:25:58.032295342Z\r\n EventsListeners: 1\r\nNo Proxy: *.local, 169.254\/16\r\nUsername: arungupta\r\nRegistry: https:\/\/index.docker.io\/v1\/\r\nExperimental: true\r\nInsecure Registries:\r\n 127.0.0.0\/8\r\nLive Restore Enabled: false<\/pre>\n<p>\uc774 \ud074\ub7ec\uc2a4\ud130\uc5d0\ub294 1\uac1c\uc758 \ub178\ub4dc\uac00 \uc788\uc73c\uba70 \uc774 \ub178\ub4dc\uac00 \ubc14\ub85c \ub9e4\ub2c8\uc800\uc785\ub2c8\ub2e4. \ub610\ub294 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \uba40\ud2f0 \ud638\uc2a4\ud2b8 \ud074\ub7ec\uc2a4\ud130\ub97c \uc27d\uac8c \uc124\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/docker\/labs\/blob\/master\/developer-tools\/java\/chapters\/ch08-aws.adoc\">AWS\uc6a9 Docker<\/a>.<\/p>\n<h2>\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \ubc30\ud3ec<\/h2>\n<p>\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub294 \ub2e4\uc74c \uc774\ub984\uc73c\ub85c \uc2dc\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">\r\ndocker stack deploy --compose-file=docker-compose.yml webapp<\/pre>\n<p>\ucd9c\ub825 \uacb0\uacfc\uac00 \ud45c\uc2dc\ub429\ub2c8\ub2e4:<\/p><\/div>\n<pre class=\"lang:default decode:true\">\r\nCreating network webapp_default\r\nCreating service webapp_web\r\nCreating service webapp_db<\/pre>\n<div>\uc774 \ub178\ub4dc\uc5d0\uc11c WildFly \ubc0f Couchbase \uc11c\ube44\uc2a4\uac00 \uc2dc\uc791\ub429\ub2c8\ub2e4. \uac01 \uc11c\ube44\uc2a4\uc5d0\ub294 \ub2e8\uc77c \ucee8\ud14c\uc774\ub108\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\ub7ec \ub178\ub4dc\uc5d0\uc11c \uc2a4\uc6dc \ubaa8\ub4dc\uac00 \ud65c\uc131\ud654\ub41c \uacbd\uc6b0 \ucee8\ud14c\uc774\ub108\uac00 \uc5ec\ub7ec \ub178\ub4dc\uc5d0 \ubd84\uc0b0\ub429\ub2c8\ub2e4.<\/div>\n<div>\uc0c8 \uc624\ubc84\ub808\uc774 \ub124\ud2b8\uc6cc\ud06c\uac00 \uc0dd\uc131\ub429\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \uc11c\ub85c \ub2e4\ub978 \ud638\uc2a4\ud2b8\uc5d0 \uc788\ub294 \uc5ec\ub7ec \ucee8\ud14c\uc774\ub108\uac00 \uc11c\ub85c \ud1b5\uc2e0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/div>\n<p>\ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec WildFly \ubc0f Couchbase \uc11c\ube44\uc2a4\uac00 \uc2e4\ud589\ub418\uace0 \uc788\ub294\uc9c0 \ud655\uc778\ud569\ub2c8\ub2e4. <code>\ub3c4\ucee4 \uc11c\ube44\uc2a4 ls<\/code>:<\/p>\n<pre class=\"lang:default decode:true\">\r\nID            NAME        MODE        REPLICAS  IMAGE\r\na9pkiziw3vgw  webapp_db   replicated  1\/1       arungupta\/couchbase:travel\r\nhr5s6ue54kwj  webapp_web  replicated  1\/1       arungupta\/couchbase-javaee:travel<\/pre>\n<div>\uc11c\ube44\uc2a4 \ub85c\uadf8\ub294 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>\ub3c4\ucee4 \uc11c\ube44\uc2a4 \ub85c\uadf8 -f webapp_web<\/code>:<\/div>\n<div>\n<pre class=\"lang:default decode:true\">\r\nwebapp_web.1.wby0b04t7bap@moby    | =========================================================================\r\nwebapp_web.1.wby0b04t7bap@moby    |\r\nwebapp_web.1.wby0b04t7bap@moby    |   JBoss Bootstrap Environment\r\nwebapp_web.1.wby0b04t7bap@moby    |\r\nwebapp_web.1.wby0b04t7bap@moby    |   JBOSS_HOME: \/opt\/jboss\/wildfly\r\nwebapp_web.1.wby0b04t7bap@moby    |\r\nwebapp_web.1.wby0b04t7bap@moby    |   JAVA: \/usr\/lib\/jvm\/java\/bin\/java\r\nwebapp_web.1.wby0b04t7bap@moby    |\r\nwebapp_web.1.wby0b04t7bap@moby    |   JAVA_OPTS:  -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true\r\nwebapp_web.1.wby0b04t7bap@moby    |\r\nwebapp_web.1.wby0b04t7bap@moby    | =========================================================================\r\n\r\n. . .\r\n\r\nwebapp_web.1.wby0b04t7bap@moby    | 23:14:15,811 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 34) WFLYSRV0010: Deployed \"airlines.war\" (runtime-name : \"airlines.war\")\r\nwebapp_web.1.wby0b04t7bap@moby    | 23:14:16,076 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on https:\/\/127.0.0.1:9990\/management\r\nwebapp_web.1.wby0b04t7bap@moby    | 23:14:16,077 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on https:\/\/127.0.0.1:9990\r\nwebapp_web.1.wby0b04t7bap@moby    | 23:14:16,077 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full 10.1.0.Final (WildFly Core 2.2.0.Final) started in 98623ms - Started 443 of 691 services (404 services are lazy, passive or on-demand)<\/pre>\n<p>\ub9c8\uc9c0\ub9c9 \ub85c\uadf8 \ubb38\uc774 \ud45c\uc2dc\ub420 \ub54c\uae4c\uc9c0 \uae30\ub2e4\ub9ac\uc138\uc694.<\/p><\/div>\n<h2>\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc561\uc138\uc2a4<\/h2>\n<p>\ub9c8\uc774\ud06c\ub85c \uc11c\ube44\uc2a4\uc5d0\uc11c 10\uac1c\uc758 \ud56d\uacf5\uc0ac\ub97c \uac00\uc838\uc635\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">\r\ncurl -v https:\/\/localhost:8080\/airlines\/resources\/airline<\/pre>\n<p>\uacb0\uacfc\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">\r\n*   Trying ::1...\r\n* Connected to localhost (::1) port 8080 (#0)\r\n&gt; GET \/airlines\/resources\/airline HTTP\/1.1\r\n&gt; Host: localhost:8080\r\n&gt; User-Agent: curl\/7.43.0\r\n&gt; Accept: *\/*\r\n&gt; \r\n&lt; HTTP\/1.1 200 OK\r\n&lt; Connection: keep-alive\r\n&lt; X-Powered-By: Undertow\/1\r\n&lt; Server: WildFly\/10\r\n&lt; Content-Type: application\/octet-stream\r\n&lt; Content-Length: 1402\r\n&lt; Date: Fri, 03 Feb 2017 17:02:45 GMT\r\n&lt; \r\n* Connection #0 to host localhost left intact\r\n[{&quot;travel-sample&quot;:{&quot;country&quot;:&quot;United States&quot;,&quot;iata&quot;:&quot;Q5&quot;,&quot;callsign&quot;:&quot;MILE-AIR&quot;,&quot;name&quot;:&quot;40-Mile Air&quot;,&quot;icao&quot;:&quot;MLA&quot;,&quot;id&quot;:10,&quot;type&quot;:&quot;airline&quot;}}, {&quot;travel-sample&quot;:{&quot;country&quot;:&quot;United States&quot;,&quot;iata&quot;:&quot;TQ&quot;,&quot;callsign&quot;:&quot;TXW&quot;,&quot;name&quot;:&quot;Texas Wings&quot;,&quot;icao&quot;:&quot;TXW&quot;,&quot;id&quot;:10123,&quot;type&quot;:&quot;airline&quot;}}, {&quot;travel-sample&quot;:{&quot;country&quot;:&quot;United States&quot;,&quot;iata&quot;:&quot;A1&quot;,&quot;callsign&quot;:&quot;atifly&quot;,&quot;name&quot;:&quot;Atifly&quot;,&quot;icao&quot;:&quot;A1F&quot;,&quot;id&quot;:10226,&quot;type&quot;:&quot;airline&quot;}}, {&quot;travel-sample&quot;:{&quot;country&quot;:&quot;United Kingdom&quot;,&quot;iata&quot;:null,&quot;callsign&quot;:null,&quot;name&quot;:&quot;Jc royal.britannica&quot;,&quot;icao&quot;:&quot;JRB&quot;,&quot;id&quot;:10642,&quot;type&quot;:&quot;airline&quot;}}, {&quot;travel-sample&quot;:{&quot;country&quot;:&quot;United States&quot;,&quot;iata&quot;:&quot;ZQ&quot;,&quot;callsign&quot;:&quot;LOCAIR&quot;,&quot;name&quot;:&quot;Locair&quot;,&quot;icao&quot;:&quot;LOC&quot;,&quot;id&quot;:10748,&quot;type&quot;:&quot;airline&quot;}}, {&quot;travel-sample&quot;:{&quot;country&quot;:&quot;United States&quot;,&quot;iata&quot;:&quot;K5&quot;,&quot;callsign&quot;:&quot;SASQUATCH&quot;,&quot;name&quot;:&quot;SeaPort Airlines&quot;,&quot;icao&quot;:&quot;SQH&quot;,&quot;id&quot;:10765,&quot;type&quot;:&quot;airline&quot;}}, {&quot;travel-sample&quot;:{&quot;country&quot;:&quot;United States&quot;,&quot;iata&quot;:&quot;KO&quot;,&quot;callsign&quot;:&quot;ACE AIR&quot;,&quot;name&quot;:&quot;Alaska Central Express&quot;,&quot;icao&quot;:&quot;AER&quot;,&quot;id&quot;:109,&quot;type&quot;:&quot;airline&quot;}}, {&quot;travel-sample&quot;:{&quot;country&quot;:&quot;United Kingdom&quot;,&quot;iata&quot;:&quot;5W&quot;,&quot;callsign&quot;:&quot;FLYSTAR&quot;,&quot;name&quot;:&quot;Astraeus&quot;,&quot;icao&quot;:&quot;AEU&quot;,&quot;id&quot;:112,&quot;type&quot;:&quot;airline&quot;}}, {&quot;travel-sample&quot;:{&quot;country&quot;:&quot;France&quot;,&quot;iata&quot;:&quot;UU&quot;,&quot;callsign&quot;:&quot;REUNION&quot;,&quot;name&quot;:&quot;Air Austral&quot;,&quot;icao&quot;:&quot;REU&quot;,&quot;id&quot;:1191,&quot;type&quot;:&quot;airline&quot;}}, {&quot;travel-sample&quot;:{&quot;country&quot;:&quot;France&quot;,&quot;iata&quot;:&quot;A5&quot;,&quot;callsign&quot;:&quot;AIRLINAIR&quot;,&quot;name&quot;:&quot;Airlinair&quot;,&quot;icao&quot;:&quot;RLA&quot;,&quot;id&quot;:1203,&quot;type&quot;:&quot;airline&quot;}}]<\/pre>\n<p><a href=\"https:\/\/github.com\/docker\/labs\/tree\/master\/developer-tools\/java\">Java \uac1c\ubc1c\uc790\ub97c \uc704\ud55c \ub3c4\ucee4 \uc6cc\ud06c\uc0f5<\/a> \ub294 \uc790\uae30 \uc8fc\ub3c4\ud615 \uc2e4\uc2b5 \uc2e4\uc2b5\uc73c\ub85c, Docker\ub97c \uc27d\uac8c \uc2dc\uc791\ud560 \uc218 \uc788\ub3c4\ub85d \ub3c4\uc640\uc90d\ub2c8\ub2e4. \ub2e8\uc77c \ub9ac\uc18c\uc2a4 \ubc1b\uae30:<\/p>\n<pre class=\"lang:default decode:true\">\r\ncurl -v https:\/\/localhost:8080\/airlines\/resources\/airline\/137<\/pre>\n<p>\uc0c8 \ub9ac\uc18c\uc2a4\ub97c \ub9cc\ub4ed\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">\r\ncurl -v -H \"Content-Type: application\/json\" -X POST -d &apos;{\"country\":\"France\",\"iata\":\"A5\",\"callsign\":\"AIRLINAIR\",\"name\":\"Airlinair\",\"icao\":\"RLA\",\"type\":\"airline\"}&apos; https:\/\/localhost:8080\/airlines\/resources\/airline<\/pre>\n<p>\ub9ac\uc18c\uc2a4\ub97c \uc5c5\ub370\uc774\ud2b8\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">\r\ncurl -v -H \"Content-Type: application\/json\" -X PUT -d &apos;{\"country\":\"France\",\"iata\":\"A5\",\"callsign\":\"AIRLINAIR\",\"name\":\"Airlin Air\",\"icao\":\"RLA\",\"type\":\"airline\",\"id\": \"19810\"}&apos; https:\/\/localhost:8080\/airlines\/resources\/airline\/19810\r\n<\/pre>\n<p>\ub9ac\uc18c\uc2a4\ub97c \uc0ad\uc81c\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">\r\ncurl -v -X DELETE https:\/\/localhost:8080\/airlines\/resources\/airline\/19810<\/pre>\n<p>\uc774\ub7ec\ud55c \uac01 \uba85\ub839\uc758 \uc790\uc138\ud55c \ucd9c\ub825\uc740 \ub2e4\uc74c \ub9c1\ud06c\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/couchbase-javaee\">github.com\/arun-gupta\/couchbase-javaee<\/a>.<\/p>\n<h2>\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc0ad\uc81c<\/h2>\n<p>\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub294 \ub2e4\uc74c \uba85\ub839\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc81c\uac70\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\u00a0<span class=\"s1\"><code>\ub3c4\ucee4 \uc2a4\ud0dd RM \uc6f9\uc571<\/code>:<\/span><\/p>\n<pre class=\"lang:default decode:true\">\r\nRemoving service webapp_web\r\nRemoving service webapp_db\r\nRemoving network webapp_default<\/pre>\n<p>Couchbase\ub97c \uc2dc\uc791\ud558\uace0 \uc2f6\uc73c\uc2e0\uac00\uc694? \ub2e4\uc74c\uc744 \uc0b4\ud3b4\ubcf4\uc138\uc694. <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/getting-started\/starter-kits.html\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc2a4\ud0c0\ud130 \ud0a4\ud2b8<\/a>. \ucee8\ud14c\uc774\ub108\uc5d0\uc11c Couchbase\ub97c \uc2e4\ud589\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uace0 \uc2f6\uc73c\uc2e0\uac00\uc694?<\/p>\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/containers\/\">\ucee8\ud14c\uc774\ub108\uc758 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4<\/a><\/li>\n<li><a href=\"https:\/\/forums.couchbase.com\/\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ud3ec\ub7fc<\/a><\/li>\n<li><a href=\"https:\/\/developer.couchbase.com\/\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uac1c\ubc1c\uc790 \ud3ec\ud138<\/a><\/li>\n<li><a href=\"https:\/\/twitter.com\/couchbasedev\">@couchhasedev<\/a> \uadf8\ub9ac\uace0 <a href=\"https:\/\/twitter.com\/couchbase\">@couchbase<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>There is plenty of material on\u00a0microservices, just google it! I gave a presentation on\u00a0refactoring monolith to microservices at Devoxx Belgium a couple of years back and it has\u00a0good reviews: This blog will show how\u00a0Docker simplifies creation and shutting down of [&hellip;]<\/p>","protected":false},"author":58,"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":[],"ppma_author":[8933],"class_list":["post-2523","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server"],"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>Microservice using Docker stack deploy - WildFly, Java EE and Couchbase - 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\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Microservice using Docker stack deploy - WildFly, Java EE and Couchbase\" \/>\n<meta property=\"og:description\" content=\"There is plenty of material on\u00a0microservices, just google it! I gave a presentation on\u00a0refactoring monolith to microservices at Devoxx Belgium a couple of years back and it has\u00a0good reviews: This blog will show how\u00a0Docker simplifies creation and shutting down of [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-02-03T18:46:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-19T10:58:42+00:00\" \/>\n<meta name=\"author\" content=\"Arun Gupta, VP, Developer Advocacy, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@arungupta\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Arun Gupta, VP, Developer Advocacy, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/\"},\"author\":{\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\"},\"headline\":\"Microservice using Docker stack deploy &#8211; WildFly, Java EE and Couchbase\",\"datePublished\":\"2017-02-03T18:46:36+00:00\",\"dateModified\":\"2023-06-19T10:58:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/\"},\"wordCount\":669,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Couchbase Server\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/\",\"name\":\"Microservice using Docker stack deploy - WildFly, Java EE and Couchbase - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-02-03T18:46:36+00:00\",\"dateModified\":\"2023-06-19T10:58:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/#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\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Microservice using Docker stack deploy &#8211; WildFly, Java EE and Couchbase\"}]},{\"@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\/39d8caed0f536489b6aa6e8d31ee631f\",\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8900a75409c646948fe0bd80f6240337\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g\",\"caption\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\"},\"description\":\"Arun Gupta is the vice president of developer advocacy at Couchbase. He has built and led developer communities for 10+ years at Sun, Oracle, and Red Hat. He has deep expertise in leading cross-functional teams to develop and execute strategy, planning and execution of content, marketing campaigns, and programs. Prior to that he led engineering teams at Sun and is a founding member of the Java EE team. Gupta has authored more than 2,000 blog posts on technology. He has extensive speaking experience in more than 40 countries on myriad topics and is a JavaOne Rock Star for three years in a row. Gupta also founded the Devoxx4Kids chapter in the US and continues to promote technology education among children. An author of several books on technology, an avid runner, a globe trotter, a Java Champion, a JUG leader, NetBeans Dream Team member, and a Docker Captain, he is easily accessible at @arungupta.\",\"sameAs\":[\"https:\/\/x.com\/arungupta\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/arun-gupta\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Microservice using Docker stack deploy - WildFly, Java EE and Couchbase - The Couchbase Blog","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\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/","og_locale":"ko_KR","og_type":"article","og_title":"Microservice using Docker stack deploy - WildFly, Java EE and Couchbase","og_description":"There is plenty of material on\u00a0microservices, just google it! I gave a presentation on\u00a0refactoring monolith to microservices at Devoxx Belgium a couple of years back and it has\u00a0good reviews: This blog will show how\u00a0Docker simplifies creation and shutting down of [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-02-03T18:46:36+00:00","article_modified_time":"2023-06-19T10:58:42+00:00","author":"Arun Gupta, VP, Developer Advocacy, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@arungupta","twitter_misc":{"Written by":"Arun Gupta, VP, Developer Advocacy, Couchbase","Est. reading time":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/"},"author":{"name":"Arun Gupta, VP, Developer Advocacy, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f"},"headline":"Microservice using Docker stack deploy &#8211; WildFly, Java EE and Couchbase","datePublished":"2017-02-03T18:46:36+00:00","dateModified":"2023-06-19T10:58:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/"},"wordCount":669,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Couchbase Server"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/","name":"Microservice using Docker stack deploy - WildFly, Java EE and Couchbase - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-02-03T18:46:36+00:00","dateModified":"2023-06-19T10:58:42+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/#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\/microservice-using-docker-stack-deploy-wildfly-javaee-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Microservice using Docker stack deploy &#8211; WildFly, Java EE and Couchbase"}]},{"@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\/39d8caed0f536489b6aa6e8d31ee631f","name":"Arun Gupta, \uac1c\ubc1c\uc790 \uc9c0\uc6d0 \ubd80\ubb38 \ubd80\uc0ac\uc7a5, Couchbase","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8900a75409c646948fe0bd80f6240337","url":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","caption":"Arun Gupta, VP, Developer Advocacy, Couchbase"},"description":"Arun Gupta is the vice president of developer advocacy at Couchbase. He has built and led developer communities for 10+ years at Sun, Oracle, and Red Hat. He has deep expertise in leading cross-functional teams to develop and execute strategy, planning and execution of content, marketing campaigns, and programs. Prior to that he led engineering teams at Sun and is a founding member of the Java EE team. Gupta has authored more than 2,000 blog posts on technology. He has extensive speaking experience in more than 40 countries on myriad topics and is a JavaOne Rock Star for three years in a row. Gupta also founded the Devoxx4Kids chapter in the US and continues to promote technology education among children. An author of several books on technology, an avid runner, a globe trotter, a Java Champion, a JUG leader, NetBeans Dream Team member, and a Docker Captain, he is easily accessible at @arungupta.","sameAs":["https:\/\/x.com\/arungupta"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/arun-gupta\/"}]}},"authors":[{"term_id":8933,"user_id":58,"is_guest":0,"slug":"arun-gupta","display_name":"Arun Gupta, VP, Developer Advocacy, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","author_category":"","last_name":"Gupta","first_name":"Arun","job_title":"","user_url":"","description":"\uc544\ub8ec \uad7d\ud0c0\ub294 Couchbase\uc758 \uac1c\ubc1c\uc790 \uc9c0\uc6d0 \ub2f4\ub2f9 \ubd80\uc0ac\uc7a5\uc785\ub2c8\ub2e4. \uadf8\ub294 Sun, Oracle, Red Hat\uc5d0\uc11c 10\ub144 \uc774\uc0c1 \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0\ub97c \uad6c\ucd95\ud558\uace0 \uc774\ub04c\uc5c8\uc2b5\ub2c8\ub2e4. \uadf8\ub294 \ucf58\ud150\uce20, \ub9c8\ucf00\ud305 \ucea0\ud398\uc778 \ubc0f \ud504\ub85c\uadf8\ub7a8\uc758 \uc804\ub7b5, \uacc4\ud68d \ubc0f \uc2e4\ud589\uc744 \uac1c\ubc1c \ubc0f \uc2e4\ud589\ud558\ub294 \uad50\ucc28 \uae30\ub2a5 \ud300\uc744 \uc774\ub044\ub294 \ub370 \uc788\uc5b4 \uae4a\uc740 \uc804\ubb38\uc131\uc744 \ubcf4\uc720\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uadf8 \uc804\uc5d0\ub294 Sun\uc5d0\uc11c \uc5d4\uc9c0\ub2c8\uc5b4\ub9c1 \ud300\uc744 \uc774\ub04c\uc5c8\uc73c\uba70 Java EE \ud300\uc758 \ucc3d\ub9bd \uba64\ubc84\uc785\ub2c8\ub2e4.\r\n\r\nGupta\ub294 \uae30\uc220\uc5d0 \uad00\ud55c \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc744 2,000\uac1c \uc774\uc0c1 \uc791\uc131\ud588\uc2b5\ub2c8\ub2e4. 40\uc5ec \uac1c\uad6d\uc5d0\uc11c \uc218\ub9ce\uc740 \uc8fc\uc81c\uc5d0 \ub300\ud574 \uad11\ubc94\uc704\ud55c \uac15\uc5f0 \uacbd\ud5d8\uc744 \uac00\uc9c0\uace0 \uc788\uc73c\uba70, 3\ub144 \uc5f0\uc18d JavaOne Rock Star\ub85c \uc120\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ub610\ud55c \ubbf8\uad6d\uc5d0\uc11c Devoxx4Kids \uc9c0\ubd80\ub97c \uc124\ub9bd\ud558\uc5ec \uc5b4\ub9b0\uc774\ub97c \ub300\uc0c1\uc73c\ub85c \ud55c \uae30\uc220 \uad50\uc721\uc744 \uc9c0\uc18d\uc801\uc73c\ub85c \uc7a5\ub824\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uae30\uc220\uc5d0 \uad00\ud55c \uc5ec\ub7ec \uad8c\uc758 \ucc45\uc744 \uc800\uc220\ud588\uc73c\uba70, \uc5f4\ub82c\ud55c \ub9c8\ub77c\ud1a0\ub108\uc774\uc790 \uc9c0\uad6c\ub97c \ud6a1\ub2e8\ud558\ub294 \uc0ac\ub78c, Java \ucc54\ud53c\uc5b8, JUG \ub9ac\ub354, NetBeans \ub4dc\ub9bc\ud300 \uba64\ubc84, Docker \ucea1\ud2f4\uc774\uae30\ub3c4 \ud55c \uadf8\ub294 @arungupta\uc5d0\uc11c \uc27d\uac8c \ub9cc\ub098\ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2523","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\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=2523"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2523\/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=2523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=2523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=2523"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=2523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}