{"id":72745,"date":"2019-06-05T11:00:06","date_gmt":"2019-06-05T08:00:06","guid":{"rendered":"http:\/\/examples.javacodegeeks.com\/?p=72745"},"modified":"2019-05-30T14:47:04","modified_gmt":"2019-05-30T11:47:04","slug":"docker-link-ambassador-container","status":"publish","type":"post","link":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/","title":{"rendered":"Docker Link via Ambassador Container Example"},"content":{"rendered":"<p>In this post, we feature a comprehensive article on Docker Link via Ambassador Container. I am going to demonstrate how the Docker Containers can be connected across Docker Hosts by using Ambassador Container or Pattern.<\/p>\n<p>To understand about connecting Docker Containers across Docker Hosts by using Ambassador Pattern, we must first understand the concept of linking Docker Containers in a Single Host.<\/p>\n<h2 class=\"wp-block-heading\">1. Linking Docker Containers in a single host<\/h2>\n<p>The following diagram shows that there are two docker containers (web application and Database) linked in a Single Docker Host.<\/p>\n<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"814\" height=\"563\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/V5.jpg\" alt=\"\" class=\"wp-image-72885\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/V5.jpg 814w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/V5-300x207.jpg 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/V5-768x531.jpg 768w\" sizes=\"(max-width: 814px) 100vw, 814px\" \/><figcaption>Container Linking in a Single Docker Host<\/figcaption><\/figure>\n<p>Linking is a communication method between docker containers which allows them to securely transfer data from source to the recipient.<\/p>\n<ul class=\"wp-block-list\">\n<li>Source and Recipient Containers<\/li>\n<li>Recipient Containers have access to data on Source containers<\/li>\n<li>Links are established based on Container names<\/li>\n<\/ul>\n<p>We can link containers which will allow them to talk to each other without having to expose any Network Ports.<\/p>\n<h3 class=\"wp-block-heading\">1.1 How to Create a Link between the Docker Containers?<\/h3>\n<ul class=\"wp-block-list\">\n<li>First, create the source container<\/li>\n<li>Create the recipient container and use the &#8211; &#8211; link option<\/li>\n<\/ul>\n<p><strong>Best Practice<\/strong> \u2013 Give your containers meaningful names<\/p>\n<h3 class=\"wp-block-heading\">1.2 Docker Containers Link in a Single Docker Host Example<\/h3>\n<p>Let us create a container (a Redis server) and another container (a Redis client).  The Redis client is used to enter information into the Redis server.  The following command will start a Redis server called redis_server:<br \/><strong>$ docker run -d &#8211;name redis_server redis<\/strong><\/p>\n<p>Let\u2019s start the interactive Redis client called redis_client with the following command:<br \/><strong>$ docker run -it &#8211;name redis_client &#8211;link redis_server:redisDB redis bash<\/strong><\/p>\n<p>The <strong>\u201clink\u201d<\/strong> option is linking to the redis_server while giving it the alias redisDB. After executing the command, you should see a command prompt like this: <br \/><strong>root@e2364251d31d:\/data#<\/strong><\/p>\n<p>Note: $ designates your host machine prompt and # designates the container prompt.<\/p>\n<p>You can check the effect of the linking alias in your redis_client:<br \/><strong>cat\/etc\/hosts<\/strong><\/p>\n<p>Install ping:  <strong># apt-get update<\/strong><\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"814\" height=\"613\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/link1.jpg\" alt=\"\" class=\"wp-image-72939\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/link1.jpg 814w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/link1-300x226.jpg 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/link1-768x578.jpg 768w\" sizes=\"(max-width: 814px) 100vw, 814px\" \/><figcaption>Docker Container Linking in a Single Docker Host &#8211; Step 1<\/figcaption><\/figure>\n<p><strong> # apt-get upgrade <\/strong><\/p>\n<p><strong> # apt-get install iputils-ping <\/strong><\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"814\" height=\"610\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/link4.jpg\" alt=\"\" class=\"wp-image-72954\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/link4.jpg 814w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/link4-300x225.jpg 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/link4-768x576.jpg 768w\" sizes=\"(max-width: 814px) 100vw, 814px\" \/><figcaption> Docker Container Linking in a Single Docker Host &#8211; Step 2<\/figcaption><\/figure>\n<p>If you ping the Redis server, you should get a response back:<\/p>\n<p><strong>ping redisDB<\/strong><\/p>\n<p>Let\u2019s connect to the Redis server:<\/p>\n<p><strong>redis-cli -h redisDB<\/strong><\/p>\n<p><strong>redisDB:6379&gt;<\/strong> <\/p>\n<p>The new prompt <strong>redisDB:6379<\/strong> means that you are connected to the Redis server. You can now enter information into the server.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"814\" height=\"612\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/link3.jpg\" alt=\"\" class=\"wp-image-72941\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/link3.jpg 814w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/link3-300x226.jpg 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/link3-768x577.jpg 768w\" sizes=\"(max-width: 814px) 100vw, 814px\" \/><figcaption> Docker Container Linking in a Single Docker Host &#8211; Step 3<\/figcaption><\/figure>\n<p><strong>Use of Linking:<\/strong><\/p>\n<ul class=\"wp-block-list\">\n<li>Containers<br \/>\ncan talk to each other without having to expose ports to the host<\/li>\n<li>Essential<br \/>\nfor micro service application architecture<\/li>\n<\/ul>\n<h3 class=\"wp-block-heading\">1.3 <strong>Docker Containers Link in a Single Docker Host &#8211; Example<\/strong><\/h3>\n<ul class=\"wp-block-list\">\n<li>Container<br \/>\nwith Tomcat running<\/li>\n<li>Container<br \/>\nwith MySQL running<\/li>\n<li>Application<br \/>\non Tomcat needs to connect to MySQL<\/li>\n<\/ul>\n<p>You have a recipient container and the source container, You connect the recipient to the source and the recipient has access to the data on the source container. The links are established by using the container names.&nbsp; <\/p>\n<p>The main use of <strong>Containing Linking<\/strong> is when you are building an application with a microservice architecture having many independent components running in their own container. These Components need to talk to each other. If you have a tomcat container with your webapp and on the backend is mysql container. webapp needs to connect to the database so you link those two containers together. mysql is the source container and tomcat is the recipient container.<\/p>\n<h2 class=\"wp-block-heading\" id=\"title\">2. Docker Link via ambassador container<\/h2>\n<p>One of the limitations of Docker is that they cannot link containers across docker hosts using the native <strong>link <\/strong>feature as we discussed above.<\/p>\n<p>We can connect the Docker Containers over the network and across the different docker hosts using <strong>Ambassador Container<\/strong>.<\/p>\n<p>In this Ambassador pattern, we can deploy an ambassador container in each host, and the ambassadors will link the containers together across the hosts. <\/p>\n<p>Ambassadors are containers. They are used to&nbsp;help connect containers across multiple docker hosts.<\/p>\n<p>How to connect Docker containers by using the ambassador pattern so that they can communicate over the network and across Docker hosts.?<\/p>\n<p>The following diagram shows that there are two containers (web application and Database) are in different docker hosts, which are connected by using Ambassador Containers (Ambassador Pattern):<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"814\" height=\"661\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/ambassador.jpg\" alt=\"Docker Link via Ambassador Container - Connect Containers\" class=\"wp-image-72768\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/ambassador.jpg 814w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/ambassador-300x244.jpg 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/ambassador-768x624.jpg 768w\" sizes=\"(max-width: 814px) 100vw, 814px\" \/><figcaption>Connect Containers across Docker Hosts by using the Ambassador Pattern <\/figcaption><\/figure>\n<ul class=\"wp-block-list\">\n<li>The web application container uses normal Docker networking to connect to the ambassador.<\/li>\n<li>The database container also talks with an ambassador.<\/li>\n<li>For both containers, the ambassador is totally transparent.&nbsp;<\/li>\n<li>If the database container is moved (or a failover happens), its new location will be tracked by the ambassador containers, and the web application container will still be able to connect, without reconfiguration.<\/li>\n<\/ul>\n<h3 class=\"wp-block-heading\">2.1 Example:<\/h3>\n<p>The following example shows  how a Redis client container talk to the remote Redis server, just by linking to the local Redis ambassador: <\/p>\n<p><strong>In Docker Host 1:  <\/strong>do the following:<\/p>\n<p><strong>$ docker run -d &#8211;name redis crosbymichael\/redis <\/strong> &#8211; Start actual Redis server [ulp id=&#8217;6PVIvOz3kDbYmNRn&#8217;]<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"812\" height=\"611\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/V1.jpg\" alt=\"Docker Link via Ambassador Container - Start actual Redis\" class=\"wp-image-72872\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/V1.jpg 812w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/V1-300x226.jpg 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/V1-768x578.jpg 768w\" sizes=\"(max-width: 812px) 100vw, 812px\" \/><figcaption>Docker Host 1 &#8211;   Start actual Redis server  <\/figcaption><\/figure>\n<p>In <strong>Docker Host 1:<\/strong> do the following<br \/>Add an ambassador linked to the Redis server, mapping a port to the outside world<br \/><strong>$ docker run -d &#8211;link redis:redis &#8211;name redis_ambassador -p 6379:6379 svendowideit\/ambassador<\/strong><\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"814\" height=\"359\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/V2.jpg\" alt=\"Docker Link via Ambassador Container - linked to the Redis server \" class=\"wp-image-72873\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/V2.jpg 814w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/V2-300x132.jpg 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/V2-768x339.jpg 768w\" sizes=\"(max-width: 814px) 100vw, 814px\" \/><figcaption>Docker Host 1 &#8211;  Ambassador linked to the Redis server <\/figcaption><\/figure>\n<p>In <strong>Docker Host 2:<\/strong> do the following:<br \/>Set up another ambassador setting environment variables for each remote port we want to proxy to the Docker Host 1:<br \/><strong>$ docker run -d &#8211;name redis_ambassador &#8211;expose 6379 -e REDIS_PORT_6379_TCP=tcp:\/\/192.168.1.52:6379 svendowideit\/ambassador<\/strong><\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"813\" height=\"452\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/o1.jpg\" alt=\"Docker Link via Ambassador Container - Set up Ambassador\" class=\"wp-image-73083\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/o1.jpg 813w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/o1-300x167.jpg 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/o1-768x427.jpg 768w\" sizes=\"(max-width: 813px) 100vw, 813px\" \/><figcaption>Docker Host 2 &#8211; Set up Ambassador &#8211; Proxy to Docker Host 1<\/figcaption><\/figure>\n<p>In <strong>Docker Host 2:<\/strong> do the following:<br \/>Use a Redis client container to talk to the remote Redis server, just by linking to the local Redis ambassador:<br \/><strong>client-server $ docker run -i -t &#8211;rm &#8211;link redis_ambassador:redis relateiq\/redis-cli<br \/>redis 172.17.0.160:6379&gt; ping<\/strong><\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"812\" height=\"394\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/o2.jpg\" alt=\"Docker Link via Ambassador Container - Redis Client container\" class=\"wp-image-73084\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/o2.jpg 812w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/o2-300x146.jpg 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/05\/o2-768x373.jpg 768w\" sizes=\"(max-width: 812px) 100vw, 812px\" \/><figcaption>Docker Host 2 &#8211; Redis Client container talk to remote Redis Server<\/figcaption><\/figure>\n<h3 class=\"wp-block-heading\">2.2 How does it work?<\/h3>\n<p>The&nbsp;<code>svendowideit\/ambassador<\/code>&nbsp;container automatically (with a tiny amount of&nbsp;<code>sed<\/code>) does the following:<\/p>\n<p>On the Docker host (192.168.1.52) that Redis will run on:<\/p>\n<pre class=\"brush:java\"># Start actual redis server\n$ docker run -d --name redis crosbymichael\/redis\n# Get a redis-cli image for connection testing\n$ docker pull relateiq\/redis-cli\n# Test the redis server by talking to it directly\n$ docker run -t -i --rm --link redis:redis relateiq\/redis-cli\nredis 172.17.0.136:6379&gt; ping\nPONG\n^D\n# Add redis ambassador\n$ docker run -t -i --link redis:redis --name redis_ambassador -p 6379:6379 alpine:3.2 sh\n<\/pre>\n<p>In the redis_ambassador container, you can see the linked Redis containers env:<\/p>\n<pre class=\"brush:java\">\\ # env \nREDIS_PORT=tcp:\/\/172.17.0.136:6379\nREDIS_PORT_6379_TCP_ADDR=172.17.0.136 \nREDIS_NAME=\/redis_ambassador\/redis  \nHOSTNAME=19d7adf4705e \nSHLVL=1  \nHOME=\/root  \nREDIS_PORT_6379_TCP_PORT=6379 \nREDIS_PORT_6379_TCP_PROTO=tcp\nREDIS_PORT_6379_TCP=tcp:\/\/172.17.0.136:6379\nTERM=xterm\nPATH=\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin  \nPWD=\/  \n\/ # exit<\/pre>\n<p>This environment is used by the ambassador&nbsp;<code>socat<\/code>&nbsp;script to expose Redis to the world (via the&nbsp;<code>-p 6379:6379<\/code>&nbsp;port mapping):<\/p>\n<pre class=\"brush:java\">$ docker rm redis_ambassador\n$ CMD=\"apk update &amp;&amp; apk add socat &amp;&amp; sh\" \n$ docker run -t -i --link redis:redis --name redis_ambassador -p 6379:6379 alpine:3.2 sh -c \"$CMD\"\n[\u2026] \n\/ # socat -t 100000000 TCP4-LISTEN:6379,fork,reuseaddr TCP4:172.17.0.136:6379<\/pre>\n<p>Now ping the Redis server via the ambassador:<\/p>\n<p>Now go to a different server:<\/p>\n<pre class=\"brush:java\">$ CMD=\"apk update &amp;&amp; apk add socat &amp;&amp; sh\"\n$ docker run -t -i --expose 6379 --name redis_ambassador alpine:3.2 sh -c \"$CMD\"\n[\u2026]\n\/ # socat -t 100000000 TCP4-LISTEN:6379,fork,reuseaddr TCP4:192.168.1.52:6379<\/pre>\n<p>And get the&nbsp;<code>redis-cli<\/code>&nbsp;image so we can talk over the ambassador bridge.<\/p>\n<pre class=\"brush:java\"> \n$ docker pull relateiq\/redis-cli\n$ docker run -i -t --rm --link redis_ambassador:redis relateiq\/redis-cli\nredis 172.17.0.160:6379&gt; ping\nPONG\n<\/pre>\n<h2 class=\"wp-block-heading\">3. Docker Link via Ambassador Container &#8211; Summary<\/h2>\n<p>We have learned the following in this Docker Link via Ambassador Container Example:<\/p>\n<ul class=\"wp-block-list\">\n<li>Linking Docker Containers in a Single Docker host using<strong><em> &#8211;link<\/em><\/strong> option<\/li>\n<li>Linking Docker Containers across Docker hosts using <strong><em>Ambassador Container<\/em><\/strong> Pattern<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In this post, we feature a comprehensive article on Docker Link via Ambassador Container. I am going to demonstrate how the Docker Containers can be connected across Docker Hosts by using Ambassador Container or Pattern. To understand about connecting Docker Containers across Docker Hosts by using Ambassador Pattern, we must first understand the concept of &hellip;<\/p>\n","protected":false},"author":174,"featured_media":31013,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1354],"tags":[],"class_list":["post-72745","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-docker"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Docker Link via Ambassador Container Example - Examples Java Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"Interested to learn more about Docker? Then check out our detailed example on Docker Link via Ambassador Container! Containers across Docker Hosts.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker Link via Ambassador Container Example - Examples Java Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"Interested to learn more about Docker? Then check out our detailed example on Docker Link via Ambassador Container! Containers across Docker Hosts.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/\" \/>\n<meta property=\"og:site_name\" content=\"Examples Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2019-06-05T08:00:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Suresh Kumar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Suresh Kumar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/\"},\"author\":{\"name\":\"Suresh Kumar\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/ac1fac173967e873fddcb64faf3af1f6\"},\"headline\":\"Docker Link via Ambassador Container Example\",\"datePublished\":\"2019-06-05T08:00:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/\"},\"wordCount\":1114,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg\",\"articleSection\":[\"Docker\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/\",\"name\":\"Docker Link via Ambassador Container Example - Examples Java Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg\",\"datePublished\":\"2019-06-05T08:00:06+00:00\",\"description\":\"Interested to learn more about Docker? Then check out our detailed example on Docker Link via Ambassador Container! Containers across Docker Hosts.\",\"breadcrumb\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/#primaryimage\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/examples.javacodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/devops\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Docker\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/devops\/docker\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Docker Link via Ambassador Container Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Examples and Code Snippets\",\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/javacodegeeks\",\"https:\/\/x.com\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/ac1fac173967e873fddcb64faf3af1f6\",\"name\":\"Suresh Kumar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/02\/suresh.kumar_-96x96.png\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/02\/suresh.kumar_-96x96.png\",\"caption\":\"Suresh Kumar\"},\"description\":\"He holds a Master's degree in Computer Applications from the University of Madras. He is a Senior Solution Architect with over 20 years of experience in Java, J2ee, .Net, Mobile, Cloud and DevOps Technologies. He is actively involved in all the project phases (Pre-Sales and Post-Sales, Initiation, Configuration Management, Planning, Design, Architecting, Tracking and Monitoring, Scheduling, Testing, Estimation, Closure, Delivery) in his Projects. He holds experience in Banking, E-Commerce, Travels, Finance, Automobiles, Insurance, Services domains. He has implemented various methodologies ( Waterfall, Spiral, Agile Scrum, Kanban) in his projects. He is a Sun Certified Java Programmer, Sun Certified Java Web Component Developer, Sun Certified Java Architect, Microsoft Certified Visual Studio &amp; TFS Administrator, and PMI Certified PMP. He is currently working as a Senior Solution Architect in Indian Government Project using Angular 8, ESRI ArcGIS, JSF PrimeFaces, Spring, Restful web services, PostgreSQL, MongoDB.\",\"sameAs\":[\"http:\/\/msk_suresh@hotmail.com\"],\"url\":\"https:\/\/examples.javacodegeeks.com\/author\/suresh_kumar-mattaparthi\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Docker Link via Ambassador Container Example - Examples Java Code Geeks - 2026","description":"Interested to learn more about Docker? Then check out our detailed example on Docker Link via Ambassador Container! Containers across Docker Hosts.","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:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/","og_locale":"en_US","og_type":"article","og_title":"Docker Link via Ambassador Container Example - Examples Java Code Geeks - 2026","og_description":"Interested to learn more about Docker? Then check out our detailed example on Docker Link via Ambassador Container! Containers across Docker Hosts.","og_url":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/","og_site_name":"Examples Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2019-06-05T08:00:06+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg","type":"image\/jpeg"}],"author":"Suresh Kumar","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Suresh Kumar","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/#article","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/"},"author":{"name":"Suresh Kumar","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/ac1fac173967e873fddcb64faf3af1f6"},"headline":"Docker Link via Ambassador Container Example","datePublished":"2019-06-05T08:00:06+00:00","mainEntityOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/"},"wordCount":1114,"commentCount":2,"publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg","articleSection":["Docker"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/","url":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/","name":"Docker Link via Ambassador Container Example - Examples Java Code Geeks - 2026","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/#primaryimage"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg","datePublished":"2019-06-05T08:00:06+00:00","description":"Interested to learn more about Docker? Then check out our detailed example on Docker Link via Ambassador Container! Containers across Docker Hosts.","breadcrumb":{"@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/#primaryimage","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/examples.javacodegeeks.com\/devops\/docker\/docker-link-ambassador-container\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/examples.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"DevOps","item":"https:\/\/examples.javacodegeeks.com\/category\/devops\/"},{"@type":"ListItem","position":3,"name":"Docker","item":"https:\/\/examples.javacodegeeks.com\/category\/devops\/docker\/"},{"@type":"ListItem","position":4,"name":"Docker Link via Ambassador Container Example"}]},{"@type":"WebSite","@id":"https:\/\/examples.javacodegeeks.com\/#website","url":"https:\/\/examples.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Examples and Code Snippets","publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/examples.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/examples.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/ac1fac173967e873fddcb64faf3af1f6","name":"Suresh Kumar","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/02\/suresh.kumar_-96x96.png","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2019\/02\/suresh.kumar_-96x96.png","caption":"Suresh Kumar"},"description":"He holds a Master's degree in Computer Applications from the University of Madras. He is a Senior Solution Architect with over 20 years of experience in Java, J2ee, .Net, Mobile, Cloud and DevOps Technologies. He is actively involved in all the project phases (Pre-Sales and Post-Sales, Initiation, Configuration Management, Planning, Design, Architecting, Tracking and Monitoring, Scheduling, Testing, Estimation, Closure, Delivery) in his Projects. He holds experience in Banking, E-Commerce, Travels, Finance, Automobiles, Insurance, Services domains. He has implemented various methodologies ( Waterfall, Spiral, Agile Scrum, Kanban) in his projects. He is a Sun Certified Java Programmer, Sun Certified Java Web Component Developer, Sun Certified Java Architect, Microsoft Certified Visual Studio &amp; TFS Administrator, and PMI Certified PMP. He is currently working as a Senior Solution Architect in Indian Government Project using Angular 8, ESRI ArcGIS, JSF PrimeFaces, Spring, Restful web services, PostgreSQL, MongoDB.","sameAs":["http:\/\/msk_suresh@hotmail.com"],"url":"https:\/\/examples.javacodegeeks.com\/author\/suresh_kumar-mattaparthi\/"}]}},"_links":{"self":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/72745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/users\/174"}],"replies":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=72745"}],"version-history":[{"count":0,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/72745\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media\/31013"}],"wp:attachment":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=72745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=72745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=72745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}