{"id":15018,"date":"2024-03-13T18:37:13","date_gmt":"2024-03-13T15:07:13","guid":{"rendered":"https:\/\/www.itpiran.net\/blog\/?p=15018"},"modified":"2024-03-13T18:37:13","modified_gmt":"2024-03-13T15:07:13","slug":"working-with-docker-containers","status":"publish","type":"post","link":"https:\/\/www.itpiran.net\/blog\/en\/tutorials\/working-with-docker-containers\/","title":{"rendered":"Working with Docker Containers"},"content":{"rendered":"<h2 id=\"%d9%85%d9%82%d8%af%d9%85%d9%87\">Introduction<\/h2>\n<p>Docker is a popular containerization tool used to provide software applications with a file system that contains everything they need to run. Using Docker containers ensures that the software behaves the same no matter where it is deployed, because its runtime environment is ruthlessly consistent. In this tutorial, we will provide a brief overview of the relationship between Docker images and Docker containers. Then, we will take a closer look at how to run, start, stop, and remove containers.<\/p>\n<h2 id=\"%d8%a8%d8%b1%d8%b1%d8%b3%db%8c-%d8%a7%d8%ac%d9%85%d8%a7%d9%84%db%8c\">Overview<\/h2>\n<p>We can think of a Docker image as a bare metal template used to create Docker containers. Images typically start with a root filesystem and add filesystem changes and their corresponding execution parameters in neat, read-only layers. Unlike a typical Linux distribution, a Docker image typically contains only the bare metal necessary to run the application. Images are stateless and do not change. Instead, they form the starting point for Docker containers. Images are brought to life with the docker run command, which creates a container by adding a read-write layer on top of the image. This combination of read-only layers placed on top of that read-write layer is known as a union filesystem. When a change is made to a file in a running container, the file is copied from the read-only space to the read-write layer, where the changes are applied. The version in the read-write layer hides the original file but does not delete it. Changes in the read-write layer only exist in a separate container instance. When a container is deleted, any changes are lost unless steps are taken to preserve them.<\/p>\n<h5 id=\"%d9%86%d8%ad%d9%88%d9%87-%da%a9%d8%a7%d8%b1-%d8%a8%d8%a7-%da%a9%d8%a7%d9%86%d8%aa%db%8c%d9%86%d8%b1%d9%87%d8%a7%db%8c-%d8%af%d8%a7%da%a9%d8%b1\">How to work with Docker containers<\/h5>\n<ol>\n<li>Create two Docker containers<\/li>\n<li>Restart the first container.<\/li>\n<li>Delete both containers.<\/li>\n<\/ol>\n<h2 id=\"%da%a9%d8%a7%d8%b1-%d8%a8%d8%a7-%da%a9%d8%a7%d9%86%d8%aa%db%8c%d9%86%d8%b1%d9%87%d8%a7\">Working with containers<\/h2>\n<p>Every time you use the command <code>docker run<\/code> When you use it, it creates a new container from the image you specified. This can be a source of confusion, so let&#039;s take a look at some examples:<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-1-%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%d8%af%d9%88-%da%a9%d8%a7%d9%86%d8%aa%db%8c%d9%86%d8%b1\">Step 1: Create two containers<\/h2>\n<p>Execution command <code>docker<\/code> The following creates a new container using the base Ubuntu image. <code>-t<\/code> It gives us a terminal and <code>-i<\/code> It allows us to interact with it. We follow the default command in the Docker file of the Ubuntu base image, <code>bash<\/code>We rely on it to leave us in a shell.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker run -ti ubuntu<\/code><\/pre>\n<\/div>\n<p>The command line will change to show that we are inside the container as the root user, followed by the 12-character container ID.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>root@11cc47339ee1:\/#<\/code><\/pre>\n<\/div>\n<p>We made a change with text reflection in the folder <code>\/tmp<\/code> We create a container, then use <code>cat<\/code> We use it to confirm that it was saved successfully.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>echo \"Example1\" &gt; \/tmp\/Example1.txt\r\ncat \/tmp\/Example1.txt<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nExample1\r\n<\/code><\/pre>\n<\/div>\n<p>Now let&#039;s get out of the container.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>exit<\/code><\/pre>\n<\/div>\n<p>Docker containers don&#039;t run as soon as the command they issue completes, so our container was stopped when we exited the bash shell. If the command <code>p.s.<\/code> If we run the command to show running containers, we will not see our command.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker ps<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES<\/code><\/pre>\n<\/div>\n<p>If the flag <code>-a <\/code>Add the command that shows all containers, stopped or running, and our container will appear in the list:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker ps -a<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\r\n11cc47339ee1 ubuntu \"\/bin\/bash\" 6 minutes ago Exited (127) 8 seconds ago small_sinoussi<\/code><\/pre>\n<\/div>\n<p>When the container was created, it was given a container ID and a randomly generated name. In this case, <code>11cc47339ee1<\/code> Container ID and <code>small_sinoussi <\/code>It is a randomly generated name. <code>ps -a<\/code> Those values, as well as the image the container was built from (ubuntu), when the container was created (six minutes ago), and the command it ran in (\/bin\/bash). The output also provides the container&#039;s state (Exited) and the time the container has been in that state (6 seconds ago). If the container was still running, we would see a status of &quot;up&quot;, followed by the time it had been running.<\/p>\n<p>If we run the same command again, a completely new container will be created:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker run -ti ubuntu<\/code><\/pre>\n<\/div>\n<p>We can tell it&#039;s a new container because the identifier is different on the command line, and when we look for our Example1 file, we don&#039;t find it:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>cat \/tmp\/Example1<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\ncat: \/tmp\/Example1: No such file or directory<\/code><\/pre>\n<\/div>\n<p>This may seem like the data has disappeared, but it hasn&#039;t. Now we&#039;ll exit the second container to see that it and our first container with the file we created are both still on the system.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>exit<\/code><\/pre>\n<\/div>\n<p>When we list the containers again, both appear:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker ps -a<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\r\n6e4341887b69 ubuntu \"\/bin\/bash\" About a minute ago Exited (1) 6 seconds ago kickass_borg\r\n11cc47339ee1 ubuntu \"\/bin\/bash\" 13 minutes ago Exited (127) 6 minutes ago small_sinoussi<\/code><\/pre>\n<\/div>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-2-%d8%b1%d8%a7%d9%87-%d8%a7%d9%86%d8%af%d8%a7%d8%b2%db%8c-%d9%85%d8%ac%d8%af%d8%af-%d8%a7%d9%88%d9%84%db%8c%d9%86-%da%a9%d8%a7%d9%86%d8%aa%db%8c%d9%86%d8%b1\">Step 2: Restart the first container<\/h2>\n<p>To restart an existing container, we use the start command with the -a flag to connect to it and the -i flag to make it interactive, followed by the container ID or name. Be sure to substitute your container ID in the following command:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker start -ai 11cc47339ee1<\/code><\/pre>\n<\/div>\n<p>We find ourselves once again at the container bash prompt and when we cat the file we created earlier, it is still there.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>cat \/tmp\/Example1.txt<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nExample1<\/code><\/pre>\n<\/div>\n<p>Now we can exit the container:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>exit<\/code><\/pre>\n<\/div>\n<p>This output shows that changes made inside the container persist through stopping and starting it. Only when the container is removed is the content removed. This example also shows that the changes were limited to the individual container. When we started the second container, it reflected the original state of the image.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-3-%d8%ad%d8%b0%d9%81-%d9%87%d8%b1-%d8%af%d9%88-%da%a9%d8%a7%d9%86%d8%aa%db%8c%d9%86%d8%b1\">Step 3: Delete both containers<\/h2>\n<p>We have created two containers and we will finish our short tutorial by removing them. The docker rm command, which only works on stopped containers, allows you to specify the name or ID of one or more containers, so we can remove both with the following:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker rm 11cc47339ee1 kickass_borg<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\n11cc47339ee1\r\nkickass_borg<\/code><\/pre>\n<\/div>\n<p>Both containers and any changes we made inside them are now gone.<\/p>\n<h2 id=\"%d9%86%d8%aa%db%8c%d8%ac%d9%87\">Result<\/h2>\n<div class=\"Markdown_markdown___3RCz\">\n<p>We take a close look at the recipe. <code>docker run<\/code> We&#039;ve seen how it automatically creates a new container each time it runs. We&#039;ve also seen how to find a stopped container, start it, and connect to it. If you want to learn more about container management, you might be interested in Docker Container Naming Guide: 3 Tips for Beginners.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"Introduction Docker is a popular containerization tool used to deliver software applications with a file system that includes\u2026","protected":false},"author":1,"featured_media":15019,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"\u06a9\u0627\u0631 \u0628\u0627 Docker Containers","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_focuskeywords":"","_yoast_wpseo_primary_category":"193","footnotes":""},"categories":[193],"tags":[346],"class_list":{"0":"post-15018","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-tutorials","8":"tag-docker"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u06a9\u0627\u0631 \u0628\u0627 Docker Containers - \u0628\u0644\u0627\u06af ITPiran<\/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.itpiran.net\/blog\/en\/tutorials\/working-with-docker-containers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u06a9\u0627\u0631 \u0628\u0627 Docker Containers - \u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"og:description\" content=\"\u0645\u0642\u062f\u0645\u0647 Docker \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc\u200c\u0633\u0627\u0632\u06cc \u0645\u062d\u0628\u0648\u0628 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u0628\u0627 \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u0641\u0627\u06cc\u0644 \u06a9\u0647 \u0634\u0627\u0645\u0644&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.itpiran.net\/blog\/en\/tutorials\/working-with-docker-containers\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-13T15:07:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.itpiran.net\/2024\/03\/13183537\/Docker-Containers.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1793\" \/>\n\t<meta property=\"og:image:height\" content=\"1110\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/working-with-docker-containers\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/working-with-docker-containers\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\"},\"headline\":\"\u06a9\u0627\u0631 \u0628\u0627 Docker Containers\",\"datePublished\":\"2024-03-13T15:07:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/working-with-docker-containers\\\/\"},\"wordCount\":28,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/working-with-docker-containers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/03\\\/13183537\\\/Docker-Containers.jpg\",\"keywords\":[\"Docker\"],\"articleSection\":[\"\u0622\u0645\u0648\u0632\u0634\u06cc\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/working-with-docker-containers\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/working-with-docker-containers\\\/\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/working-with-docker-containers\\\/\",\"name\":\"\u06a9\u0627\u0631 \u0628\u0627 Docker Containers - \u0628\u0644\u0627\u06af ITPiran\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/working-with-docker-containers\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/working-with-docker-containers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/03\\\/13183537\\\/Docker-Containers.jpg\",\"datePublished\":\"2024-03-13T15:07:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/working-with-docker-containers\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/working-with-docker-containers\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/working-with-docker-containers\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/03\\\/13183537\\\/Docker-Containers.jpg\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/03\\\/13183537\\\/Docker-Containers.jpg\",\"width\":1793,\"height\":1110},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/working-with-docker-containers\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/category\\\/tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u06a9\u0627\u0631 \u0628\u0627 Docker Containers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"name\":\"\u0628\u0644\u0627\u06af ITPiran\",\"description\":\"\u0627\u062e\u0628\u0627\u0631 \u0648 \u0645\u0642\u0627\u0644\u0627\u062a \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\",\"name\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"alternateName\":\"ITPIran Blog\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"width\":512,\"height\":512,\"caption\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\",\"name\":\"admin\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/en\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Working with Docker Containers - ITPiran 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.itpiran.net\/blog\/en\/tutorials\/working-with-docker-containers\/","og_locale":"en_US","og_type":"article","og_title":"\u06a9\u0627\u0631 \u0628\u0627 Docker Containers - \u0628\u0644\u0627\u06af ITPiran","og_description":"\u0645\u0642\u062f\u0645\u0647 Docker \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc\u200c\u0633\u0627\u0632\u06cc \u0645\u062d\u0628\u0648\u0628 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u0628\u0627 \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u0641\u0627\u06cc\u0644 \u06a9\u0647 \u0634\u0627\u0645\u0644&hellip;","og_url":"https:\/\/www.itpiran.net\/blog\/en\/tutorials\/working-with-docker-containers\/","og_site_name":"\u0628\u0644\u0627\u06af ITPiran","article_published_time":"2024-03-13T15:07:13+00:00","og_image":[{"width":1793,"height":1110,"url":"https:\/\/cdn.itpiran.net\/2024\/03\/13183537\/Docker-Containers.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/working-with-docker-containers\/#article","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/working-with-docker-containers\/"},"author":{"name":"admin","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81"},"headline":"\u06a9\u0627\u0631 \u0628\u0627 Docker Containers","datePublished":"2024-03-13T15:07:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/working-with-docker-containers\/"},"wordCount":28,"commentCount":0,"publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/working-with-docker-containers\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/03\/13183537\/Docker-Containers.jpg","keywords":["Docker"],"articleSection":["\u0622\u0645\u0648\u0632\u0634\u06cc"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/working-with-docker-containers\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/working-with-docker-containers\/","url":"https:\/\/www.itpiran.net\/blog\/tutorials\/working-with-docker-containers\/","name":"Working with Docker Containers - ITPiran Blog","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/working-with-docker-containers\/#primaryimage"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/working-with-docker-containers\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/03\/13183537\/Docker-Containers.jpg","datePublished":"2024-03-13T15:07:13+00:00","breadcrumb":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/working-with-docker-containers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/working-with-docker-containers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/working-with-docker-containers\/#primaryimage","url":"https:\/\/cdn.itpiran.net\/2024\/03\/13183537\/Docker-Containers.jpg","contentUrl":"https:\/\/cdn.itpiran.net\/2024\/03\/13183537\/Docker-Containers.jpg","width":1793,"height":1110},{"@type":"BreadcrumbList","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/working-with-docker-containers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.itpiran.net\/blog\/"},{"@type":"ListItem","position":2,"name":"\u0622\u0645\u0648\u0632\u0634\u06cc","item":"https:\/\/www.itpiran.net\/blog\/category\/tutorials\/"},{"@type":"ListItem","position":3,"name":"\u06a9\u0627\u0631 \u0628\u0627 Docker Containers"}]},{"@type":"WebSite","@id":"https:\/\/www.itpiran.net\/blog\/#website","url":"https:\/\/www.itpiran.net\/blog\/","name":"ITPiran Blog","description":"Iranian Sustainable Trade News and Articles","publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.itpiran.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.itpiran.net\/blog\/#organization","name":"Sustainable Iranian Business Blog","alternateName":"ITPIran Blog","url":"https:\/\/www.itpiran.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","contentUrl":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","width":512,"height":512,"caption":"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81","name":"admin","url":"https:\/\/www.itpiran.net\/blog\/en\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/posts\/15018","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/comments?post=15018"}],"version-history":[{"count":1,"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/posts\/15018\/revisions"}],"predecessor-version":[{"id":15020,"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/posts\/15018\/revisions\/15020"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/media\/15019"}],"wp:attachment":[{"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/media?parent=15018"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/categories?post=15018"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/en\/wp-json\/wp\/v2\/tags?post=15018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}