{"id":15773,"date":"2017-01-17T12:15:58","date_gmt":"2017-01-17T10:15:58","guid":{"rendered":"https:\/\/www.webcodegeeks.com\/?p=15773"},"modified":"2017-01-15T14:49:44","modified_gmt":"2017-01-15T12:49:44","slug":"deploying-docker-images-amazon-ec2-container-service","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/","title":{"rendered":"Deploying Docker Images to Amazon EC2 Container Service"},"content":{"rendered":"<p><em>In the first post of this series, we discussed <a href=\"https:\/\/www.webcodegeeks.com\/devops\/setting-aws-authentication-deploying-docker-apps\/\">how to set up continuous deployment to AWS for your Docker apps<\/a> using Codeship. We\u2019ll continue with a quick tutorial on deploying new Docker images to Amazon\u2019s EC2 Container Service.<\/em><\/p>\n<p>Over the past few years, the use of container technology like Docker has grown dramatically within organizations of all sizes, which has led popular cloud providers like Google and Amazon to build in tools to better support this. Like I said, if there is a feature you need, AWS probably has it, and Docker support is no exception.<\/p>\n<p>But just because AWS supports it doesn\u2019t mean getting it all up and running is a simple and intuitive process. Having a large number of products means that important information inevitably gets lost in the noise.<\/p>\n<p>For Docker support, the three most important products to be aware of are the Amazon <a href=\"https:\/\/aws.amazon.com\/ec2\/\">Elastic Compute Cloud (EC2)<\/a>, the Amazon <a href=\"https:\/\/aws.amazon.com\/ecs\/\">EC2 Container Service (ECS)<\/a>, and the Amazon <a href=\"https:\/\/aws.amazon.com\/ecr\/\">EC2 Container Registry (ECR)<\/a>.<\/p>\n<h2>Amazon EC2 Container Service<\/h2>\n<p>EC2 is one of the most popular product offerings on AWS, providing affordable and scalable virtual servers in the cloud. Because of EC2\u2019s simple web interface, developers can easily increase or decrease computing resources in minutes while only paying for the resources they use.<\/p>\n<p>In the same vein as <a href=\"https:\/\/kubernetes.io\/\">Kubernetes<\/a> and <a href=\"https:\/\/docs.docker.com\/swarm\/\">Docker Swarm<\/a>, ECS is Amazon\u2019s solution for running and managing Docker containers across a cluster of Amazon EC2 instances. Should you be interested in learning more about Kubernetes and Docker Swarm, I would recommend checking out this ebook about <a href=\"https:\/\/resources.codeship.com\/ebooks\/deploy-docker-kubernetes-codeship?utm_source=CodeshipeBook&amp;utm_medium=ebook&amp;utm_campaign=deploy-docker-aws-codeship\">continuous deployment for Docker apps to Kubernetes<\/a> and this one about <a href=\"https:\/\/resources.codeship.com\/ebooks\/docker-machine-compose-swarm\">working with Docker Machine, Compose, and Swarm<\/a>.<\/p>\n<p>ECS allows you to easily manage and scale your application without any additional complexity in how you design, build, and run your product. The greatest thing about Amazon ECS (in my opinion) is that there is no additional charge to use it, which means that you only pay for EC2 usage and nothing else.<\/p>\n<p>Similar to Docker Hub and the Google Cloud Container Registry, <a href=\"https:\/\/resources.codeship.com\/ebooks\/private-docker-registry-ec2\">Amazon ECR<\/a> is a Docker image registry that makes it \u201ceasy for developers to store, manage, and deploy Docker container images.\u201d Generally, the best Docker registry to use will be the one that integrates best with the rest of your infrastructure; when paired with Amazon ECS, ECR simplifies the Docker container deployment workflow by providing highly available hosting of Docker images from directly within the AWS ecosystem.<\/p>\n<p>If you want to learn more about Docker hosting, you should check out this ebook: <a href=\"https:\/\/resources.codeship.com\/ebooks\/docker-hosting\">The Shortlist of Docker Hosting.<\/a><\/p>\n<p>While the details of actually getting started with Amazon\u2019s EC2 Container technology and Codeship are both out of the scope of this article (you can find a great <a href=\"http:\/\/docs.aws.amazon.com\/AmazonECS\/latest\/developerguide\/ECS_GetStarted.html\">ECS tutorial here<\/a> and <a href=\"https:\/\/documentation.codeship.com\/pro\/getting-started\/getting-started\/%29\">Codeship tutorial here<\/a>), deploying new Docker images to it with Codeship is a straightforward process.<\/p>\n<h3>Configuration<\/h3>\n<p>The most complicated piece of the Codeship\/ECR integration puzzle is authentication. While we could see above that the AWS access keys can be encrypted and added to the repository for interaction with AWS services, the Docker registry authorization is only temporarily valid.<\/p>\n<p>Because of this, we need to define a custom service in the <code>codeship-services.yml<\/code> file to generate one-off <code>dockercfg<\/code> files for each deploy.<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-8.41.48-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-15781\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-8.41.48-PM.png\" width=\"860\" height=\"154\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-8.41.48-PM.png 1025w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-8.41.48-PM-300x54.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-8.41.48-PM-768x138.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-8.41.48-PM-1024x184.png 1024w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><\/p>\n<p>This section sets up a Docker container based on Codeship\u2019s <code>aws-ecr-dockercfg-generator<\/code> Docker image (you can check out a great <a href=\"https:\/\/blog.codeship.com\/aws-registry\/\">guide to using this image here<\/a>) using your AWS credentials. This allows you to run any necessary AWS commands in an authenticated and preconfigured environment.<\/p>\n<h2>Deployment<\/h2>\n<p>Now that we have an authenticated AWS environment with auto-generated <code>dockercfg<\/code> files, we need to set up our deployment steps to use it in the <code>codeship-steps.yml<\/code> file.<\/p>\n<p>Let\u2019s say, for example, that we have a Docker image (defined as app in the <code>codeship-services.yml<\/code> file) that we want to push to ECR. To accomplish this, add the following to your <code>codeship-steps.yml<\/code> file:<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.07.20-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-15782\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.07.20-PM.png\" width=\"860\" height=\"189\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.07.20-PM.png 1025w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.07.20-PM-300x66.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.07.20-PM-768x169.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.07.20-PM-1024x225.png 1024w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><\/p>\n<p>This step tells Codeship to push the <code>app<\/code> service image up to our Docker registry using the defined <code>aws_dockercfg<\/code> service. Behind the scenes, this Codeship image is doing a few things to facilitate the push to ECR.<\/p>\n<p>The first thing that happens in the <code>aws_dockercfg<\/code> service is that it is generating a login command that can be used to authenticate the Docker command line tool with AWS:<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.08.45-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-15783\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.08.45-PM.png\" width=\"860\" height=\"97\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.08.45-PM.png 1051w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.08.45-PM-300x34.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.08.45-PM-768x87.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.08.45-PM-1024x116.png 1024w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><\/p>\n<p>Once the returned Docker login command is run, the <code>aws_dockercfg<\/code> service has 12 hours to use it before it expires. Next, the image is pushed up to ECR using the standard docker push command (which is what the <a href=\"https:\/\/resources.codeship.com\/ebooks\/deploying-docker-apps-codeship-pro\">push step<\/a> does regardless of the registry):<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.11.29-PM.png\"><img decoding=\"async\" class=\"aligncenter wp-image-15784\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.11.29-PM.png\" width=\"860\" height=\"207\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.11.29-PM.png 1052w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.11.29-PM-300x72.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.11.29-PM-768x185.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-11-at-9.11.29-PM-1024x246.png 1024w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/a><\/p>\n<p>It is important to note that, at this point, these configuration changes only push up the new Docker image to the registry. They do not automatically update any currently running services that are utilizing previous versions of the Docker image.<\/p>\n<p>While I won\u2019t get into the specifics of that in this article (there are a multitude of ways ECR could be set up to facilitate it), <a href=\"http:\/\/docs.aws.amazon.com\/cli\/latest\/reference\/ecs\/index.html\">the AWS CLI tool does provide functionality<\/a> for programmatic management of ECS services and tasks.<\/p>\n<p>This has been Part Two of a series about how to set up continuous deployment to AWS for your Docker apps using Codeship. Can\u2019t wait for Part Three? Download our free ebook, <a href=\"https:\/\/resources.codeship.com\/ebooks\/deploy-docker-aws-codeship?utm_source=CodeshipBlog&amp;utm_campaign=deploy-docker-aws-codeship\">Deploying Docker Apps to AWS<\/a>.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td><span class=\"reference\">Reference: <\/span><\/td>\n<td><a href=\"https:\/\/blog.codeship.com\/deploying-docker-images-to-amazon-ec2-container-service-with-codeship\/\">Deploying Docker Images to Amazon EC2 Container Service<\/a> from our <a href=\"http:\/\/www.webcodegeeks.com\/join-us\/wcg\/\">WCG partner<\/a>\u00a0Zachary Flower at the <a href=\"http:\/\/blog.codeship.com\/\">Codeship Blog<\/a> blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In the first post of this series, we discussed how to set up continuous deployment to AWS for your Docker apps using Codeship. We\u2019ll continue with a quick tutorial on deploying new Docker images to Amazon\u2019s EC2 Container Service. Over the past few years, the use of container technology like Docker has grown dramatically within &hellip;<\/p>\n","protected":false},"author":200,"featured_media":10356,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[325,217],"class_list":["post-15773","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-amazon-aws","tag-docker"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Deploying Docker Images to Amazon EC2 Container Service - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"In the first post of this series, we discussed how to set up continuous deployment to AWS for your Docker apps using Codeship. We\u2019ll continue with a quick\" \/>\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.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deploying Docker Images to Amazon EC2 Container Service - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"In the first post of this series, we discussed how to set up continuous deployment to AWS for your Docker apps using Codeship. We\u2019ll continue with a quick\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-17T10:15:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/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=\"Zachary Flower\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Zachary Flower\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/\"},\"author\":{\"name\":\"Zachary Flower\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/fad2572903e5f01809fc0ebd87f660cf\"},\"headline\":\"Deploying Docker Images to Amazon EC2 Container Service\",\"datePublished\":\"2017-01-17T10:15:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/\"},\"wordCount\":903,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg\",\"keywords\":[\"Amazon AWS\",\"Docker\"],\"articleSection\":[\"DevOps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/\",\"name\":\"Deploying Docker Images to Amazon EC2 Container Service - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg\",\"datePublished\":\"2017-01-17T10:15:58+00:00\",\"description\":\"In the first post of this series, we discussed how to set up continuous deployment to AWS for your Docker apps using Codeship. We\u2019ll continue with a quick\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/#primaryimage\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/devops\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Deploying Docker Images to Amazon EC2 Container Service\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"name\":\"Web Code Geeks\",\"description\":\"Web Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webcodegeeks\",\"https:\/\/x.com\/webcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/fad2572903e5f01809fc0ebd87f660cf\",\"name\":\"Zachary Flower\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cf21b18b45a53a55fbc1de5e222fe603b2602ee381f36abf004a8d6c81ffa1ed?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cf21b18b45a53a55fbc1de5e222fe603b2602ee381f36abf004a8d6c81ffa1ed?s=96&d=mm&r=g\",\"caption\":\"Zachary Flower\"},\"description\":\"Zachary Flower is a freelance web developer, writer, and polymath. He's built projects for the NSA and created features for companies like Name.com and Buffer.\",\"url\":\"https:\/\/www.webcodegeeks.com\/author\/zachary-flower\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Deploying Docker Images to Amazon EC2 Container Service - Web Code Geeks - 2026","description":"In the first post of this series, we discussed how to set up continuous deployment to AWS for your Docker apps using Codeship. We\u2019ll continue with a quick","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.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/","og_locale":"en_US","og_type":"article","og_title":"Deploying Docker Images to Amazon EC2 Container Service - Web Code Geeks - 2026","og_description":"In the first post of this series, we discussed how to set up continuous deployment to AWS for your Docker apps using Codeship. We\u2019ll continue with a quick","og_url":"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_published_time":"2017-01-17T10:15:58+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","type":"image\/jpeg"}],"author":"Zachary Flower","twitter_card":"summary_large_image","twitter_creator":"@webcodegeeks","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Zachary Flower","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/"},"author":{"name":"Zachary Flower","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/fad2572903e5f01809fc0ebd87f660cf"},"headline":"Deploying Docker Images to Amazon EC2 Container Service","datePublished":"2017-01-17T10:15:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/"},"wordCount":903,"commentCount":0,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","keywords":["Amazon AWS","Docker"],"articleSection":["DevOps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/","url":"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/","name":"Deploying Docker Images to Amazon EC2 Container Service - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/#primaryimage"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","datePublished":"2017-01-17T10:15:58+00:00","description":"In the first post of this series, we discussed how to set up continuous deployment to AWS for your Docker apps using Codeship. We\u2019ll continue with a quick","breadcrumb":{"@id":"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/#primaryimage","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/01\/docker-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.webcodegeeks.com\/devops\/deploying-docker-images-amazon-ec2-container-service\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"DevOps","item":"https:\/\/www.webcodegeeks.com\/category\/devops\/"},{"@type":"ListItem","position":3,"name":"Deploying Docker Images to Amazon EC2 Container Service"}]},{"@type":"WebSite","@id":"https:\/\/www.webcodegeeks.com\/#website","url":"https:\/\/www.webcodegeeks.com\/","name":"Web Code Geeks","description":"Web Developers Resource Center","publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.webcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webcodegeeks","https:\/\/x.com\/webcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/fad2572903e5f01809fc0ebd87f660cf","name":"Zachary Flower","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/cf21b18b45a53a55fbc1de5e222fe603b2602ee381f36abf004a8d6c81ffa1ed?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cf21b18b45a53a55fbc1de5e222fe603b2602ee381f36abf004a8d6c81ffa1ed?s=96&d=mm&r=g","caption":"Zachary Flower"},"description":"Zachary Flower is a freelance web developer, writer, and polymath. He's built projects for the NSA and created features for companies like Name.com and Buffer.","url":"https:\/\/www.webcodegeeks.com\/author\/zachary-flower\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/15773","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/users\/200"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=15773"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/15773\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media\/10356"}],"wp:attachment":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media?parent=15773"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=15773"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=15773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}