{"id":4823,"date":"2018-01-12T06:46:08","date_gmt":"2018-01-12T06:46:08","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/?p=4823"},"modified":"2021-11-17T12:07:57","modified_gmt":"2021-11-17T12:07:57","slug":"docker-compose-prepends-current-directory-name-to-named-volumes","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/docker-compose-prepends-current-directory-name-to-named-volumes\/","title":{"rendered":"docker-compose prepends current directory name to named volumes"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4848 aligncenter\" src=\"http:\/\/www.scmgalaxy.com\/tutorials\/wp-content\/uploads\/2018\/01\/docker-compose.png\" alt=\"docker-compose\" width=\"600\" height=\"400\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2018\/01\/docker-compose.png 600w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2018\/01\/docker-compose-300x200.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>Issues &#8211;&nbsp;docker-compose prepends current directory name to named volumes<\/p>\n<p>What actually happens is that the named volume gets prepended with (a simplified version of) the directory name from which the docker-compose command was run.<\/p>\n<p>For instance, if I run from the &#8220;dcompos-programs&#8221; directory, and I name the volume &#8220;my_named_vol&#8221;, then I end up with a volume named &#8220;dcompos-programs_my_named_vol&#8221;.<\/p>\n<p><strong>docker-compose-named-volume.yml:<\/strong><\/p>\n<p>[text]<\/p>\n<p>version: &#8216;3&#8217;<br>\nservices:<\/p>\n<p>solr:<br>\nimage: alpine:3.5<br>\ncontainer_name: foo<br>\nvolumes:<br>\n&#8211; my_named_vol:\/opt\/foo<br>\nvolumes:<br>\nmy_named_vol:<\/p>\n<p>[\/text]<\/p>\n<p><strong>Result:<\/strong><\/p>\n<p>[text]<\/p>\n<p>$ docker-compose -f docker-compose-named-volume.yml up -d &amp;amp;&amp;amp; \\<br>\n&amp;gt; echo &#8220;## named volume:&#8221; &amp;amp;&amp;amp; \\<br>\n&amp;gt; docker volume ls | grep my_named_vol &amp;amp;&amp;amp; \\<br>\n&amp;gt; echo &#8220;## stop&#8221; &amp;amp;&amp;amp; \\<br>\n&amp;gt; docker-compose -f docker-compose-named-volume.yml down &amp;amp;&amp;amp; \\<br>\n&amp;gt; echo &#8220;## rm volume&#8221; &amp;amp;&amp;amp; \\<br>\n&amp;gt; docker volume rm $(docker volume ls | grep my_named_vol | awk &#8216;{print $2}&#8217;)<br>\nCreating network &#8220;deploymentroot_default&#8221; with the default driver<br>\nCreating volume &#8220;dcompos-programs_my_named_vol&#8221; with default driver<br>\nCreating foo<\/p>\n<p>[\/text]<\/p>\n<p><strong>Answer<\/strong><br>\ndocker-compose uses a project name. By default it\u2019s the directory name which prevents collisions with existing containers. But you can use -p to change the prefix name.<\/p>\n<p>Docker Tutorials Fundamental To Advanced-2021 Crash Course:- <a href=\"https:\/\/bit.ly\/3hOIbTB\" target=\"_blank\" rel=\"noopener\">https:\/\/bit.ly\/3hOIbTB<\/a><\/p>\n<p>You can use the external volume setting to avoid the prefix.<br>\n<a href=\"https:\/\/docs.docker.com\/compose\/compose-file\/#external\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.docker.com\/compose\/compose-file\/#external<\/a><\/p>\n\n<div class=\"epyt-gallery\" data-currpage=\"1\" id=\"epyt_gallery_73689\"><iframe loading=\"lazy\"  id=\"_ytid_25498\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  data-epytgalleryid=\"epyt_gallery_73689\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><div class=\"epyt-gallery-list\"><div>Sorry, there was a YouTube error.<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Issues &#8211;&nbsp;docker-compose prepends current directory name to named volumes What actually happens is that the named volume gets prepended with (a simplified version of) the directory name from which the&#8230; <\/p>\n","protected":false},"author":1,"featured_media":4848,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[4862],"tags":[567,4863],"class_list":["post-4823","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-docker","tag-docker","tag-docker-compose"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/4823","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=4823"}],"version-history":[{"count":4,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/4823\/revisions"}],"predecessor-version":[{"id":25626,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/4823\/revisions\/25626"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/4848"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=4823"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=4823"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=4823"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}