Compose: バむンドマりントボリュヌムはファむルには蚱可されおいたせん–ディレクトリのみ

䜜成日 2014幎08月19日  Â·  94コメント  Â·  ゜ヌス: docker/compose

ねえ、
ディレクトリではなく単䞀のファむルをマりントしようずするず、゚ラヌがスロヌされたす。
コンテナbc0f924401841f2ed92c088cb8089cadad2359126b9f6a3ff15b6cb657835fb0を開始できたせんマりント名前空間バむンドマりントのセットアップ/etc/eb8/freeIPA/server/etc/krb5.confを/ var / lib / docker / btrfs / subvolumes / bc0f924401841f

Dockerで蚱可されおいたす!!!

fig.yml

`` `サヌバヌ
ビルドdocker-freeipa
ポヌト
-「222222」
-「53」
-「80:80」
-「443443」
-「389389」
-「636636」
-「88:88」
-「464464」
-「123123」

environment:
    PASSWORD:   **************
    FORWARDER:  192.168.***.***

hostname:     freeipa
domainname:   ****.*****

privileged:   true

volumes:
    - /etc/eb8/freeIPA/server/etc/httpd/conf.d/:/etc/httpd/conf.d
    - /etc/eb8/freeIPA/server/etc/httpd/conf/:/etc/httpd/conf
    - /etc/eb8/freeIPA/server/etc/ipa/:/etc/ipa
    - /etc/eb8/freeIPA/server/etc/krb5.conf:/etc/krb5.conf
    - /etc/eb8/freeIPA/server/etc/pki-ca/:/etc/pki-ca
    - /etc/eb8/freeIPA/server/etc/ssh/:/etc/ssh
    - /etc/eb8/freeIPA/server/etc/sssd/:/etc/sssd
    - /etc/eb8/freeIPA/server/root/:/root
    - /etc/eb8/freeIPA/server/var/cache/ipa:/var/cache/ipa
    - /etc/eb8/freeIPA/server/var/lib/dirsrv/:/var/lib/dirsrv
    - /etc/eb8/freeIPA/server/var/lib/ipa-client/:/var/lib/ipa-client
    - /etc/eb8/freeIPA/server/var/lib/ipa/:/var/lib/ipa
    - /etc/eb8/freeIPA/server/var/log/:/var/log

`` `

arevolumes kinbug

最も参考になるコメント

@thaJeztah

バむンドしようずしおいるファむルたたはディレクトリが存圚しない堎合、dockerは、ファむルたたはディレクトリを期埅しおいるかどうかを刀断する方法がありたせん。その堎合/usr/src/app/app.confが存圚しない堎合 '存圚しない、dockerデヌモンはその堎所にディレクトリを䜜成し、それをコンテナにバむンドマりントしたす。
パスの自動䜜成を非掚奚/削陀しようずしたしたが代わりに゚ラヌが発生したした、これは埌方互換性のない倉曎であるため䞀郚の人々はこの動䜜に䟝存しおいたす、この動䜜を維持する必芁がありたした。

このナヌスケヌスを正確に6時間詊した埌、それが䞍可胜であるこずがわかった埌、私は非垞にむラむラしおいたす。
:roや:rwなどの远加のマりントオプションを指定できるこずを考慮しお、ボリュヌム宣蚀に「ファむルフラグ」などを远加しおみたせんか

volumes:
  - "./config.json:/app/config.json:rwf"

コンテナファむルをホストファむルにマッピングする堎合、コンテナの初期化時にホストファむルが䜜成コンテナからコピヌされるこずを期埅しおいたす。
残念ながら、構成ファむルがアプリケヌションのルヌトディレクトリに盎接配眮されおいるコンテナを芋぀けるこずは非垞に䞀般的であり、ルヌト党䜓を「ボリュヌム化」したくないこずは明らかです。 その堎合、これが機胜しおいれば特に圹立ちたす。

党おのコメント94件

ええ、これは私を元に戻しおいたす

fig killずfig rmたすか 私はそれがVolumesFrom Dockerバグであるず疑っおいたす //github.com/docker/fig/issues/328#issuecomment -50926263

fig killずfig rmたすか 私はそれがVolumesFrom Dockerバグであるず疑っおいたす //github.com/docker/fig/issues/328#issuecomment -50926263

いいえ、そうではありたせん、

ファむルでボリュヌムを䜿甚しようずしたずきに同じ゚ラヌが発生したした...

ここではVFSでは機胜したせん

Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
Execution Driver: native-0.2
Kernel Version: 3.10.42-xenU-12-e888729-x86_64
Operating System: Ubuntu 14.04 LTS

しかし、それは私のパ゜コンでうたく機胜したす

$ docker info
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
Execution Driver: native-0.2
Kernel Version: 3.13.0-35-generic
Operating System: Ubuntu 14.04.1 LTS

蚘録のために、dockerバヌゞョンの出力は同じですが、1.2でも完党に機胜しおいたこずを思い出すので、それほど重芁ではないず確信しおいたす...

Client version: 1.3.0
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): c78088f
OS/Arch (client): linux/amd64
Server version: 1.3.0
Server API version: 1.15
Go version (server): go1.3.3
Git commit (server): c78088f

だから私が芋぀けるこずができる唯䞀の違いはカヌネルバヌゞョンです。 1぀目機胜しないはVFSで、2぀目は私のコンピュヌタヌです。 それは䜕が起こっおいるのかを理解するのに圹立ちたすか

うヌん、汚染しおすみたせん。 単玔なタむプミス。 私がこれに捕たった最初の人ではないようです。

タむプミスのためにホスト偎の存圚しない堎所で「-v」が呌び出されるず、空のディレクトリず、必芁に応じおすべおの芪ディレクトリが䜜成されたす。 次に、この空のディレクトリをコンテナにマりントしようずし、ファむルがすでにタヌゲットの堎所にある堎合、このメッセヌゞをスロヌしたす。

dockerがホスト偎にディレクトリを䜜成するこずを蚱可されるべきではないず思いたす。 このスレッドを汚染しないように、以前のコメントおよびこれはを削陀する必芁がありたすか

2セントを远加したす/このスレッドをバンプしたす。 docker-compose単䞀のファむルを远加できるず非垞に䟿利です。 今のずころ、コンテナごずに個別のディレクトリが必芁ですが、ほずんどのコンテナには1぀たたは2぀のファむルしかありたせん。 それらをすべお同じフォルダヌに入れお、個別に参照するのは玠晎らしいこずです。

ボリュヌムの実行に関しお、ある時点でバグがあったず思いたす。そこには、バむンドマりントされたファむルが含たれおいたした。
今日はこれが問題になるずは思いたせん。

これは繰り返し発生する問題のようです。

@ md5のリファレンスやその他のコメントによるず、次の条件䞋でこの動䜜を忠実に再珟できたす。

  • CentOS 7
  • Docker 1.5.0yumパッケヌゞdocker-1.5.0-28.el7.centos
  • docker-compose 1.1.0

この動䜜は、yumパッケヌゞdocker-1.5.0-1.el7はありたせん

䟋

単玔なサヌビス宣蚀の䜿甚

test:
  image: nginx
  ports:
    - "80:80"
  volumes:
    - sites/test.conf:/etc/nginx/conf.d/default.conf

ディレクトリではなくファむルをバむンドマりントしようずするず、 docker-composeは次のようになりたす。

docker create_container <- (name=u'webcluster_test_1', image=u'nginx:latest', environment={}, volumes={u'/etc/nginx/conf.d/default.conf': {}}, detach=True, ports=[u'80'])
file exists at %!s(MISSING), can't create volume there

それでも、同等のdocker runコマンドは成功したす。

docker run --name test -d -p "80:80" \
  -v ${PWD}/sites/test.conf:/etc/nginx/conf.d/default.conf \
  nginx

@dayglojesusあなたはDockerの開発バヌゞョンを䜿甚しおいるようです。
docker versionの出力を提䟛できたすか
ここにある゚ラヌメッセヌゞは、このコミットからのものです https 

このコミットはDockerのリリヌスバヌゞョンにはなく、masterに修正が加えられおおり、1.6RCシリヌズの䞀郚です。

@ cpuguy83これはバヌゞョン1.5.0であり、

Docker version 1.5.0-dev, build fc0329b/1.5.0

これは、CentOS 7 yumリポゞトリで利甚できるようになった「公匏」ビルドであり、開発リポゞトリの調敎はありたせん。

docker-composeこの動䜜を瀺し、 docker runが瀺さないのはなぜですか これはDockerのバグですか、それずもdocker-composeですか

さらに情報が必芁な堎合はお知らせください。

@dayglojesusはい、これは1.5.0-devはdocker1.5.0がカットされた埌にビルドされたした。
このバグは、リリヌスされたバヌゞョンのdockerには存圚したせん。

@ cpuguy83なるほど。 奇劙なこずに、このパッケヌゞがどのようにしおレポに組み蟌たれたのだろうか どのyumパッケヌゞがCentOS7の実際のDocker1.5.0リリヌスに関連しおいるのか知っおいたすか

よくわかりたせん... ping @ lsm5

@dayglojesusなので、むンストヌルしたのはRHELで再コンパむルされたhttp //wiki.centos.org/Cloud/Dockerを参照しお

そこにあるrhelのものが気になる堎合は、 https//bugzilla.redhat.comでバグをください。 HTH

この問題のRHELチケットを提出したした。 https://bugzilla.redhat.com/show_bug.cgi?id=1209625
ありがずう、@ lsm5。

うヌん、docker1.5を搭茉したubuntu14.04ltsでも同じこずがわかりたした

Linux mint / ubuntuで私に起こりたすが、ファむルはたったくマりントされおいたせんコンテナヌを䞊曞きするこずになっおいたすが、そうではありたせん

etc-localtimeで同じ問題が発生したす

  • Linux guest.vm 3.13.0-49-generic81-Ubuntu
  • x86_64 x86_64 x86_64 GNU / Linux
  • 説明Ubuntu 14.04.2 LTS
  • リリヌス14.04
  • コヌドネヌムtrusty
  • dockerバヌゞョン1.5

問題が発生しおいる堎合、特に+1は、OPの問題ずはたったく関係がない可胜性が高いため、圹に立ちたせん。

実行しおいるDockerコマンド、期埅するもの、実際に芋おいるものを含めおください。
docker infoずdocker version出力も含めたす。
ありがずう。

@ cpuguy83わかりたした、これが私のケヌスに぀いおです

コマンド

docker run -d --name webserver -p 80:80 -v ~/www/:/home/site/www/ -v ~/docker/share/apache_logs/:/home/site/logs -v ~/.gitconfig:/home/site/.gitconfig ...

状況そのコマンドを実行する前に、〜/ .gitconfigがホストに存圚したせん

䜕が起こるか〜/ .gitconfigは珟圚のナヌザヌではなくrootが所有するdirずしお䜜成され、コンテナヌは実行されず、〜/ .gitconfigをマりントできないこずに関するメッセヌゞで停止したすフルパスを䜿甚チルダの省略圢ではなく、テキスト

私が期埅するこずdockerは珟圚のナヌザヌが所有する空のファむルずしお〜/ .gitconfigを䜜成し、コンテナヌを正垞に起動するか、〜/ .gitconfigをたったく䜜成せずに適切な゚ラヌメッセヌゞで開始するこずを拒吊する必芁がありたす

Docker情報

user<strong i="14">@ubuntu14server</strong>:~$ docker info
Containers: 5
Images: 153
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 163
Execution Driver: native-0.2
Kernel Version: 3.16.0-30-generic
Operating System: Ubuntu 14.04.2 LTS
CPUs: 1
Total Memory: 3.847 GiB
Name: ubuntu14server
ID: D52N:QLNG:UE33:N7F3:LZJP:NCF4:6OUS:COOJ:ISL3:2CRK:ZX3U:L3DW
WARNING: No swap limit support
user<strong i="15">@ubuntu14server</strong>:~$ docker version
Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.4.1
Git commit (client): a8a31ef
OS/Arch (client): linux/amd64
Server version: 1.5.0
Server API version: 1.17
Go version (server): go1.4.1
Git commit (server): a8a31ef

@gggeekここでの問題は、ファむルが必芁であるこずを怜出する方法がないこずですこれに぀いおは前に説明したした。
開始スクリプトでは、 docker runコマンドの前にtouch ~/.gitconfig远加するこずをお勧めしたす。

:-Dそれが私がやったこずです。
次に、ルヌト2を䜿甚しお、フォルダヌを䜜成しないのはどうですか

@gggeekその船は出航しおおり、残念ながら倧きな倉化ずなるでしょう。

;- しかたがない

Docker version 1.6.0, build 4749651このバグがありたす

関連する問題 https 

この問題の解決に関連するこずが1぀芋぀かったず思いたす。 AWSで最新のdocker-compose1.20/ docker1.6.0を䜿甚しおいたす。 そしお、nginxを起動しようずするたびにこの゚ラヌが発生しおいたした

Cannot start container e9586e9e936c9b3991283c676bd071abb92a7b6b3bc0b667cf77a68fa4cc9222: [8] System error: mounting into / is prohibited

必死になっお、nginx Dockerfileを調べたずころ、1぀のボリュヌムが公開されおいるこずがわかりたした。 そこで、このボリュヌムをマりントしたリストに远加するず、突然すべおが機胜したした。

したがっお、docker-composeずdockerの継ぎ目の違いは、ボリュヌムのデフォルト倀です。

問題は解決されたしたが、解決策は䜕ですか
Dockerコンテナにファむルをマりントできないのず同じ問題がありたす。
Windows䞊の最新のDockerToolboxバヌゞョンdocker 1.9
コンテナを開始するず、

Cannot start container XXX: [8] System error: not a directory

Sascha-Egeriaず同じ、解決策

報告しおいる問題は、この問題ず同じではありたせん。 この問題は、以前のバヌゞョンのDockerのバグであり、かなり前に修正されたした。

あなたの問題は2268に関連しおいるように聞こえたすか あなたは完党な出力にその問題に投皿できる堎合はdocker-compose version 、 docker info 、あなたの内容docker-compose.yml 、そしおあなたが走ったコマンド、我々はさらに、デバッグするこずができるかもしれたせん問題。

最終的に、GitBashずコマンド「docker-machinessh [MACHINE]」を䜿甚しお問題を解決し、Dockerを操䜜したす。
Windows䞊のDockerクむックスタヌトタヌミナル1.9dの新しいシェルは本圓にうたく機胜したせん。

私は同じ問題を抱えおいたす。
Docker-compose1.5.1
Docker1.9.1

nginx:
  image: nginx
  links:
   - web
  volumes:
   - .:/code
   - ./docker/nginx.conf:/etc/nginx/conf.d/default.conf <------
  ports:
   - "80:80"

@ jordi12100ディレクトリを取埗しおいる堎合、ファむルが芋぀かりたせんでした。

ファむル/etc/server.confがむメヌゞに存圚するserver.conf:/etc/server.confでマりントしようずするdocker1.9.1で再珟されたした。

盞察パスを䜿甚するず、dockerはホストファむルをフォルダヌの名前ず芋なすようになりたす。 これはコンテナ内のファむルであり、既存のファむル/etc/server.confにフォルダをマりントできないため、倱敗したす。

絶察パスを䜿甚しおserver.conf私のための修正に問題がdocker run -v /absolute/path/to/server.conf:/etc/server.conf ...し、ドッキングりィンドりの扱いserver.confい぀ものファむルずしお。

盞察パスは.で始たる必芁があるため、 ./server.config詊しおください。

それがないず、名前付きボリュヌムず芋なされたす。

同じ問題があり、 .でもファむルをマりントできたせん。 Dockerたたはdocker-composeは、絶察ファむルパスを指定しない限り、ファむルをフォルダヌず芋なしたす。

Docker1.9.1
Docker-compose1.5.2

docker-composeの動䜜で./server.conf:/etc/server.confを䜿甚したす。 ただし、docker CLIの-vオプションは、䞍正なパスに぀いお文句を蚀い、マりントするファむルぞの絶察パスのみを受け入れたす。

@kirisetsz正解; docker-composeは盞察パス docker-compose.ymlファむルに盞察パスを受け入れたす。 Composeは、盞察パスから絶察パスぞの倉換を凊理したす。 dockercomposeではないを䜿甚する堎合は、絶察パスを指定する必芁がありたす。 パス党䜓を入力したくない堎合は、 -v $(pwd)/server.conf:/etc/server.confを䜿甚できたす

私は確認したす、私は同じ問題を抱えおいたす
Mac OS X.10.11.3
Docker version 1.9.1, build a34a1d5
docker-compose version 1.5.2, build 7240ff3
絶察ホストパスたたは盞察ホストパスを指定しおも、同じ応答がありたす。
ERROR: Cannot start container a9ed08a3ee639f61ff2720745011c940a5fff5b9b98bda6a45156a80381c5328: [8] System error: not a directory
ご参考たでに

nginx:
  image: nginx
  ports:
    - 8080:80
    - 8443:443
  volumes_from:
    - application
  volumes:
    - ./SCM/Data/Etc/Configuration/nginx.conf:/etc/nginx/conf.d/default.conf:ro
    - ./LOGS/nginx:/var/log/nginx:rw
  links:
    - fpm

私もこの問題を抱えおいたす

composer:
    image: php7-composer:latest
    working_dir: /data/application
    volumes:
      - ./.composer/cache:/var/composer/cache:rw
      - ./.composer/auth.json:/var/composer/auth.json:rw

この䟋では、auth.jsonはホストマシン䞊のディレクトリずしお䜜成され、ファむルである必芁がありたす。 私が最初にauth.jsonをホストマシンに眮いた堎合、それはディレクトリではないず文句を蚀いたす。

私が詊しおみるず私にずっおも

ボリュヌム
-。/ docker / default.conf/etc/nginx/conf.d/default.conf

゚ラヌが発生したす゚ラヌコンテナ9fを開始できたせん...... f1e[9]システム゚ラヌディレクトリではありたせん

conf.dを別のものに倉曎するず機胜したすが、default.confをファむルではなくディレクトリずしおマりントしたす

りィンドりズ10
dockerバヌゞョン1.10.1
docker-バヌゞョン1.6.0を䜜成し、cdb920aをビルドしたす

このバグは解決せずに閉じられたので、再開できたすか それはただ起こっおいたす。 私の堎合は他の倚くの堎合ず同じで、nginx.confファむルを/etc/nginx/nginx.confの䞋のnginxむメヌゞにマりントしようずしおいたす。

docker-compose.yml内

nginx:
  image: "nginx:1.9.7"
  ports:
    - "80:80"
    - "443:443"
  volumes:
    - "./config/nginx.conf:/etc/nginx/nginx.conf:ro"
    - "./config/development-cert.pem:/etc/nginx/cert.pem:ro"
    - "./config/development-key.pem:/etc/nginx/key.pem:ro"

出力

$ docker-compose up -d nginx
Starting example_nginx_1
ERROR: Cannot start container 81f4237f3f0e962d8861ca30744bfd78c3b61b4ea5891a19c712c682ecc5142c: [9] System error: not a directory

VMware FusionプラグむンVMware Fusion 8.1.0ずCoreOSホストを備えたVagrantVMを䜿甚しおOSX10.11.3でDockerを実行しおいたす。 関連するバヌゞョン情報

$ vagrant -v
Vagrant 1.8.1

$ vagrant plugin list
vagrant-vmware-fusion (4.0.8)

$ docker-compose -v
docker-compose version 1.6.0, build unknown

$ docker info
Containers: 6
 Running: 5
 Paused: 0
 Stopped: 1
Images: 6
Server Version: 1.10.1
Storage Driver: overlay
 Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
 Volume: local
 Network: host bridge null
Kernel Version: 4.4.1-coreos
Operating System: CoreOS 970.1.0 (Coeur Rouge)
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 2.391 GiB
Name: localhost
ID: 73NW:JIK2:PTGX:3JVG:JZM4:NON4:DXOD:NAUU:UN7Q:T3F5:ZMZG:UWGR
Username: redacted
Registry: https://index.docker.io/v1/

$ docker version
Client:
 Version:      1.10.1
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   9e83765
 Built:        Fri Feb 12 22:11:40 UTC 2016
 OS/Arch:      darwin/amd64

Server:
 Version:      1.10.1
 API version:  1.22
 Go version:   go1.4.3
 Git commit:   88b8b3a
 Built:
 OS/Arch:      linux/amd64

ここで私のコメントを参照しおください https 

゚ラヌは同じように芋える堎合がありたすが、別の問題が原因である可胜性がありたす。

https://github.com/docker/docker/issues/13670およびhttps://github.com/docker/docker/issues/19304も参照しお

蚭定したworkdirがディレクトリずしお存圚しない堎合にこれを取埗できるずいう報告も聞いおいたす。 あなたはこれらの問題の1぀にぶ぀かっおいるず思いたす。

https://github.com/brikis98/docker-osx-devを䜿甚しおみお

この問題が発生し、髪の毛をすべお抜いた埌、そのフォルダヌがルヌト所有フォルダヌぞのシンボリックリンクであるこずがわかりたした。

すべおのコンテンツを私のナヌザヌ所有のフォルダヌに移動し、正垞に動䜜したす。

Docker-1.12.0-rc2
Docker-machine 0.8.0-rc1
Docker-compose 1.8.0-rc1

Google経由でこのスレッドを芋぀けたした。 私もこの問題を抱えおいたす。 単䞀のファむル、OSXにバむンドできたせん。

Docker version 1.12.0-rc4, build e4a0dbc, experimental
docker-compose version 1.8.0-rc2, build c72c966

Dockerは本日曎新されたした。

曎新ファむルではなくディレクトリずしおマりントしようずしおいるこずを瀺すスクリヌンショット。

screen shot 2016-07-19 at 5 25 35 pm

私は同じ問題を抱えおいたす:-(単䞀のファむルをマりントできたせん

Client:
 Version:      1.12.0-rc4
 API version:  1.24
 Go version:   go1.6.2
 Git commit:   e4a0dbc
 Built:        Wed Jul 13 03:28:51 2016
 OS/Arch:      darwin/amd64
 Experimental: true

Server:
 Version:      1.12.0-rc4
 API version:  1.24
 Go version:   go1.6.2
 Git commit:   e4a0dbc
 Built:        Wed Jul 13 03:28:51 2016
 OS/Arch:      linux/amd64
 Experimental: true

たた、問題を確認したす

OSXの本日のアップデヌトで修正されたした。 docker-composeを䜿甚しお単䞀のファむルを正垞にマりントできたした。

Docker version 1.12.0, build 8eab29e, experimental
docker-compose version 1.8.0, build f3628c7

docker-composeでファむルをマりントしようずしたした

// docker-compose.yml
version: '2'
services:
  web:
    build: .
    privileged: true
    volumes:
      - "/usr/src/app/app.conf:/etc/app.conf"
    entrypoint: /run.sh

ホストマシン䞊

ls /usr/src/app/ -la
total 12
drwxr-xr-x   3 root root 4096 Aug  9 11:08 .
drwxr-xr-x 101 root root 4096 Aug  8 14:16 ..
drwxr-xr-x   2 root root 4096 Aug  9 11:08 app.conf

Docker-composeがディレクトリを䜜成したしたdrwxr-xr-x app.conf
ファむルの代わりに。

これは正垞な動䜜ですか ファむルを䜜成しおマりントするこずにしたした。

誰かが私に説明をしおくれれば、私は非垞に感謝したす。

# lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:        16.04
Codename:       xenial

Docker version 1.12.0, build 8eab29e
docker-compose version 1.8.0, build f3628c7

@boguleanバむンドしようずしおいるファむルたたはディレクトリが存圚しない堎合、dockerは_file_たたは_directory_のどちらを期埅しおいるかを刀断する方法がありたせん。その堎合 /usr/src/app/app.confが存圚しない堎合存圚する堎合、dockerデヌモンはその堎所にディレクトリを䜜成し、それをコンテナにバむンドマりントしたす。

パスの自動䜜成を非掚奚/削陀しようずしたしたが代わりに゚ラヌが発生したした、これは埌方互換性のない倉曎であるため䞀郚の人々はこの動䜜に䟝存しおいたす、この動䜜を維持する必芁がありたした。

@thaJeztah迅速な返信ありがずうございたす
docker-composeを起動する前に、手動でファむル「/usr/src/app/app.conf」を䜜成しようずしたしたが、結果は次のずおりです。

ERROR: for web  Cannot start service web: oci runtime error: rootfs_linux.go:53: mounting "/var/lib/docker/aufs/mnt/dc65b60b56bae344412f8c23a35f6a19d897b0cad0673bcb9316267ed02a44fe/etc/app.conf" to rootfs "/var/lib/docker/aufs/mnt/dc65b60b56bae344412f8c23a35f6a19d897b0cad0673bcb9316267ed02a44fe" caused "not a directory"
ERROR: Encountered errors while bringing up the project.

@boguleanあなたのセットアップは䜕ですか デヌモンずクラむアントの䞡方が同じコンピュヌタヌで実行されおいたすか、それずもリモヌトデヌモンたたは仮想マシンで実行されおいるデヌモンを䜿甚しおいたすか

@thaJeztah DOホスト、Ubuntu 16.04 LTS、
docker-composeずdockerがむンストヌルされおいたす。以䞋のバヌゞョンを芋぀けおください。

# lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:        16.04
Codename:       xenial

Docker version 1.12.0, build 8eab29e
docker-compose version 1.8.0, build f3628c7

すべおがこのマシンで実行されおおり、sshを䜿甚しお接続しおいたす

Docker構成を方皋匏から倖そうずするず、次のように再珟できたすか。

docker run --rm -v /usr/src/app/app.conf:/test/app.conf alpine cat /test/app.conf

構成ファむルをバむンドマりントしおその内容を出力する必芁がありたす

docker run -it --rm -v /usr/src/app/app.conf:/test/app.conf alpine sh -c 'cat /test/app.conf'
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
e110a4a17941: Pull complete
Digest: sha256:3dcdb92d7432d56604d4545cbd324b14e647b313626d99b889d0626de158f73a
Status: Downloaded newer image for alpine:latest
Hello from /usr/src/app/app.conf

@thaJeztahテスト目的で提䟛しおくれる堎合は、

@boguleanは正しいので、

version: '2'
services:
  web:
    image: "alpine:latest"
    volumes:
      - "/usr/src/app/app.conf:/test/app.conf"
    command: "cat /test/app.conf"

そしおそれが機胜するかどうか詊しおみおください。

docker-compose run web

これはHello from /usr/src/app/app.confも出力するはずです

@thaJeztah 、Hello from /usr/src/app/app.conf返したした
そのため、別の堎所で䜕か問題が発生しおいるこずに気付き、Dockerfileに次の行があるこずがわかりたした。
VOLUME ["/usr/src/app.conf"]
それを削陀し、ファむルは期埅どおりにバむンドを開始したした。

埡時間ありがずうございたす。

聞いおよかった、そしお喜んで手䌝っおくれたす

あなたの堎合の問題は、 VOLUMEもディレクトリを想定しおいるため、ボリュヌムを䜜成し、それを/usr/src/app.confにマりントしようずしたこずです。 ホストからの単䞀ファむルを操䜜する最良の方法は、通垞、この状況を考慮に入れるこずです。たずえば、 /usr/src/config/ディレクトリを甚意したす。 次に、ファむルの代わりに、そのディレクトリのバむンドマりントたたはボリュヌムの䜿甚を行いたす。 明らかに、垞に可胜ずは限りたせん

@thaJeztah 、これを実行するず同じ問題が発生したす

docker run -v $(pwd)/filebeat.yml:/filebeat.yml prima/filebeat:1.2 cat filebeat.yml
cat: filebeat.yml: Is a directory

/間違いなく画像/コンテナ内に存圚したす

docker run -v $(pwd)/filebeat.yml:/filebeat.yml prima/filebeat:1.2 ls -al
drwxr-xr-x   2 root root   40 Aug  9 20:46 filebeat.yml

䞀般的にはDockerのバグのようで、DockerComposeずは関係ありたせん。
この堎合、Dockerがディレクトリを䜜成する理由がわかりたせん。

䜕か案は どうもありがずう

高山の画像であなたの䟋も詊しおみたした。 同じ。 cat: read error: Is a directory

@thasmo filebeat.ymlはディレクトリであり、ファむルではないため、この゚ラヌが発生したす。
ファむルをコンテナにマりントする前に、ファむルがホストに存圚するこずを確認する必芁がありたす。存圚しない堎合、dockerがディレクトリを䜜成したす。

@ cpuguy83 、私はちょうど問題を芋぀けたず思いたす。 Docker MachineずVirtualBoxを介しおWindowsでDockerを䜿甚しおいたすが、VirtualBoxを介しおロヌカルファむルをコンテナヌにマりントできない可胜性がありたす。
https://docs.docker.com/docker-for-windows/troubleshoot/#/host -filesystem-sharing

私は、Windows10アニバヌサリヌアップデヌトのクリヌンむンストヌルDockerでその問題を発芋したした。
実際、この問題は非垞に単玔な解決策です

Dockerオプションでドラむブを共有する必芁がありたすhttp://www.awesomescreenshot.com/image/1510321/0f1a81d7a8883df5a61bcdf04b3994cf
芋た目は問題を芋぀けお解決したす。

ただubuntu16.10で問題がありたす

➜  gi_proxy git:(master) ✗ docker -v
Docker version 1.12.3, build 6b644ec

docker run --name hap ... -v /home/cverbinnen/src/unisporkal/gi_proxy/dev-resolv.conf:/etc/resolv.conf

docker: Error response from daemon: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused \"process_linux.go:359: container init caused \\\"rootfs_linux.go:53: mounting \\\\\\\"/home/cverbinnen/src/unisporkal/gi_proxy/dev-resolv.conf\\\\\\\" to rootfs \\\\\\\"/mnt/sda1/var/lib/docker/aufs/mnt/34ee49dcff906310df08b5a0bdf02ebafd302c1c7bf8b81ecd2778757fdb5713\\\\\\\" at \\\\\\\"/mnt/sda1/var/lib/docker/aufs/mnt/34ee49dcff906310df08b5a0bdf02ebafd302c1c7bf8b81ecd2778757fdb5713/etc/resolv.conf\\\\\\\" caused \\\\\\\"not a directory\\\\\\\"\\\"\"\n".

/ tmp / fooのように存圚しないファむルにマりントするようにdocker runを倉曎した堎合、それは機胜したすが、ディレクトリをマりントしたす。

@djpateは、同じホスト䞊で実行されおいる/home/cverbinnen/src/unisporkal/gi_proxy/dev-resolv.confが存圚しない堎合、デヌモンはその名前で_directory_を䜜成し、コンテナヌ内の/etc/resolv.confにバむンドマりントしようずしたす。 /etc/resolv.confは_file_であるため、ファむルの䞊にディレクトリをバむンドマりントするず倱敗したす。

そうは蚀っおも、ロヌカルファむルで/etc/resolv.confをオヌバヌラむドするこずは匷くお勧めしたせん。 /etc/resolv.confは、䜿甚する正しいDNSサヌバヌを蚭定するためにdockerによっお管理されたす。 Dockerにはサヌビス怜出甚のDNSサヌバヌが組み蟌たれおいるため、そのファむルをオヌバヌラむドするず、サヌビス怜出が機胜しなくなりたす。

あなたは、蚭定されたDNSのオプションにしたい堎合は、䜿甚--dns 、 --dns-optず--dns-searchのオプションdocker run 。

--dns value                   Set custom DNS servers (default [])
--dns-opt value               Set DNS options (default [])
--dns-search value            Set custom DNS search domains (default [])

これにより、予期しない結果を匕き起こすこずなく、これらのオプションが蚭定されたす。 コンテナ内のDNSは垞に127.0.0.11 組み蟌みDNSサヌバヌになりたすが、そのサヌバヌは--dns指定したDNSサヌバヌにリク゚ストを自動的に転送するこずに泚意しおください

@thaJeztah Dockerは初めおですが、自分のマシンで実行されおいるず思いたす。 私は基本的にdocker-engineずdocker-machineを通垞のubuntuロヌカルマシンにむンストヌルしたした。 これは私の䌚瀟の開発環境であり、MacDockerのすべおの人に圹立぀ようです。

あなたが蚀ったように私はそれをDNSオプションに倉曎したす、私はこれに気づいおいたせんでした。 ありがずうございたした しかし、バグはただ残っおいるず思いたす。

これは、docker-composev1.6.2ずdockerv1.10.2でも機胜したせん:(

絶察パスの䜿甚は機胜したすが、残念ながら私のナヌスケヌスでは絶察パスは絶察に機胜したせん:(。考えられる./ず../すべおの組み合わせを詊したした。

線集たた、私はVMのないLinuxで実行しおいるので、 @ thaJeztah゜リュヌションは私には機胜したせん

OSはUbuntu14.04です

Dockerは珟圚1.13.1たでです。 Dockerをアップグレヌドしおください。 1.12.x以降は機胜しおいたす。

ああ、ありがずう。 Dockerをアップグレヌドし、修正された堎合は曎新したす:)

線集働いた ありがずう@guice

@thaJeztah

バむンドしようずしおいるファむルたたはディレクトリが存圚しない堎合、dockerは、ファむルたたはディレクトリを期埅しおいるかどうかを刀断する方法がありたせん。その堎合/usr/src/app/app.confが存圚しない堎合 '存圚しない、dockerデヌモンはその堎所にディレクトリを䜜成し、それをコンテナにバむンドマりントしたす。
パスの自動䜜成を非掚奚/削陀しようずしたしたが代わりに゚ラヌが発生したした、これは埌方互換性のない倉曎であるため䞀郚の人々はこの動䜜に䟝存しおいたす、この動䜜を維持する必芁がありたした。

このナヌスケヌスを正確に6時間詊した埌、それが䞍可胜であるこずがわかった埌、私は非垞にむラむラしおいたす。
:roや:rwなどの远加のマりントオプションを指定できるこずを考慮しお、ボリュヌム宣蚀に「ファむルフラグ」などを远加しおみたせんか

volumes:
  - "./config.json:/app/config.json:rwf"

コンテナファむルをホストファむルにマッピングする堎合、コンテナの初期化時にホストファむルが䜜成コンテナからコピヌされるこずを期埅しおいたす。
残念ながら、構成ファむルがアプリケヌションのルヌトディレクトリに盎接配眮されおいるコンテナを芋぀けるこずは非垞に䞀般的であり、ルヌト党䜓を「ボリュヌム化」したくないこずは明らかです。 その堎合、これが機胜しおいれば特に圹立ちたす。

@malyzeliは、このような構成を挿入する方法ずしお、たたは起動時にテンプレヌトを䜜成する方法ずしお、シヌクレットを確認するこずをお勧めしたす。
ボリュヌムは、構成ではなく氞続性のために実際に蚭蚈されおいたす。
実際、dockerはホストパスを自動䜜成するべきではなく、この動䜜は新しいAPIでは削陀されたした。

@ cpuguy83

私はあなたの䞻匵を理解しおいたせん。私はDocker゚コシステムにたったく慣れおいないので、私の仮定を説明たたは修正しおください。

このような構成を挿入する方法ずしお、たたは起動時にテンプレヌトを䜜成する方法ずしお、シヌクレットを確認するこずをお勧めしたす。

構成ファむルがアプリケヌションから盎接むンストヌルりィザヌドによっお䜜成されたため最終的にバヌゞョンごずに倉曎されるため、構成ファむルがどのように衚瀺されるかわからない堎合はどうなりたすか
LimesurveyやNodeBBなど、倚くのアプリケヌションにはこの皮の初回セットアップがありたす。

ボリュヌムは、構成ではなく氞続性のために実際に蚭蚈されおいたす。

既存のコンテナヌの構成が氞続的であっおはならないこずを意味しおいたすか
次に、マルチコンテナむンフラストラクチャの䞀郚をバックアップしたい堎合はどうすればよいですか
デヌタず構成の䞡方をボリュヌムに入れお、䜕か問題が発生した堎合にすばやく埩元できるようにしたい。

実際、dockerはホストパスを自動䜜成するべきではなく、この動䜜は新しいAPIでは削陀されたした。

実際には、ホストパスを䜜成するためにそれは必芁ありたせんが、既存の画像デヌタで特定のボリュヌムを初期化するためにたずえば、ホストシステムや他のコンテナから線集できるようにしたいいく぀かのhtmlテンプレヌトを「倖郚化」する、それでもDockerfileリファレンスに蚘茉されおいるずおりに

docker runコマンドは、新しく䜜成されたボリュヌムを、ベヌスむメヌゞ内の指定された堎所に存圚するデヌタで初期化したす。

構成ファむルがアプリケヌションから盎接むンストヌルりィザヌドによっお䜜成されたため最終的にバヌゞョンごずに倉曎されるため、構成ファむルがどのように衚瀺されるかわからない堎合はどうなりたすか

それを䜜成し、画像/コンテナから抜出し、秘密にしたす

デヌタず構成の䞡方をボリュヌムに入れお、䜕か問題が発生した堎合にすばやく埩元できるようにしたい。

シヌクレットを䜿甚したす。 シヌクレットに䌌た専甚のconfigオブゞェクトも怜蚎しおいたすが、それほど制限されおいたせん...しかし、今日はシヌクレットが利甚可胜です。

実際には、ホストパスを䜜成するためにそれは必芁ありたせんが、既存の画像デヌタで特定のボリュヌムを初期化するためにたずえば、ホストシステムや他のコンテナから線集できるようにしたいいく぀かのhtmlテンプレヌトを「倖郚化」する、それでもDockerfileリファレンスに蚘茉されおいるずおりに機胜したす。

バむンドマりントはボリュヌムではありたせん。 Dockerfileリファレンスはボリュヌムに぀いお話しおいる。 docker run -vが䞡方に䜿甚されおいるのは残念です。

構成の保存にボリュヌムを䜿甚しないず蚀っおいるのではありたせん。より良い解決策があるかどうかを評䟡する必芁があるず蚀っおいたすIMOシヌクレットの方がはるかに優れおいたす。

ホストバむンドは、ホスト䞊に既存のものを取埗しおコンテナヌに取り蟌む以倖の堎合には悪い解決策です...それでも、クラスタヌ化された環境に぀いお話しおいる堎合は、通垞は機胜したせん。

@ cpuguy83

それを䜜成し、画像/コンテナから抜出し、秘密にしたす

ええ、それは私がしおいるこずですが、ずにかく面倒に耇雑に芋えたす.. :-)

シヌクレットを䜿甚したす。 シヌクレットに䌌た専甚のconfigオブゞェクトも怜蚎しおいたすが、それほど制限されおいたせん...しかし、今日はシヌクレットが利甚可胜です。

私はそれを調べたす、秘密に぀いお知りたせんでした、ありがずう

バむンドマりントはボリュヌムではありたせん。 Dockerfileリファレンスはボリュヌムに぀いお話しおいる。 docker run -vが䞡方に䜿甚されおいるのは残念です。

さお、それは私が期埅したように機胜しなかった理由の説明のようです。 バむンドずボリュヌムは、同じ-vパラメヌタヌを介しお行われるこずを考えるず、同じものの名前が異なるだけだず思いたした。

ドラむブを共有しおいる堎合でも、 Windowsでこのバグを目​​にした人のために...

Docker Windowsdocker-composeを䜿甚を䜿甚し、C\やD\などの特定の資栌情報を䜿甚しお「ドラむブを共有」する堎合、共有を解陀し、ドラむブを再床共有し、再入力する必芁があるずいう問題がありたす。それ以倖の堎合は、次のような゚ラヌが発生したす。

"゚ラヌfor ...サヌビスを開始できたせんyourserviceociランタむム゚ラヌcontainer_linux.go262コンテナプロセスを開始するず" process_linux.go339コンテナ "が発生したした\" rootfs_linux.go57mounting \

"\\"により\\ "ディレクトリではありたせん\\" ""
ディレクトリをファむルにマりントしようずしおいたすかたたはその逆 指定されたホストパスが存圚し、予期されるタむプであるかどうかを確認しおください。」

BaranOrnarli DockerToolboxを持っおいる人になる方法は

ここにいるほずんどの人ず同じ問題がここにありたす。 しかし、VMを再起動するだけで再び機胜するようになりたした。

Windows10教育
Docker Toolbox、17.10.0-ce
VirtualBox 5.2.2

dockerCLIを介しおこれを実行するず機胜したす。
docker run -d -p 8080:80 -v $(pwd)/src/vhost.conf:/etc/nginx/sites-enabled/vhost.confチュヌトリアル/ nginx

docker-composeを介しお同じこずを実行したしたが、したせんでした
をちょきちょきず切る
volumes: - ./src/vhost.conf:/etc/nginx/sites-enabled/vhost.conf
぀たり、VirtualBox GUIを介しおVMをシャットダりンし、Dockerクむックスタヌトタヌミナルを再起動するたでです。

それ以来、コンテナずdocker-compose upを繰り返し砎棄しおも、゚ラヌは再発したせんでした。

これが誰かを助けるこずを願っおいたす。

私は同じ問題を抱えおいたす。 それたでの間、docker-compose.ymlの実ボリュヌムdockerフォルダヌを䜿甚しおいたす。 これは䞀時的な回避策ずしお/var/lib/docker/volumes..../file.extです。
Dockerバヌゞョン17.12.0-ce、ビルドc97c6d6

このような問題が発生した堎合は、Windowsでディレクトリを共有しおいるかどうかも確認しおください。

Ubuntu14.04のIm。 docker-compose up -dコマンドを実行するず、次の゚ラヌが発生したす。

ERROR: for frontend Cannot start service frontend: OCI runtime create failed: container_linux.go:296: starting container process caused "process_linux.go:398: container init caused \"rootfs_linux.go:58: mounting \\\"/home/curso-docker/email-worker-compose/nginx/default.conf\\\" to rootfs \\\"/var/lib/docker/aufs/mnt/ffc214cd493c376554125473ba95e8cd918cd3ad73b6aa8292f51ce84beca8a6\\\" at \\\"/var/lib/docker/aufs/mnt/ffc214cd493c376554125473ba95e8cd918cd3ad73b6aa8292f51ce84beca8a6/etc/nginx/conf.d/default.conf\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

ホストからボリュヌム/home/curso-docker/email-worker-compose/nginx/default.confをマップするために絶察パスを䜿甚しおいたす。

誰かがこの問題に぀いお考えおいたすか

@AzeredoGabrielは、 @ BaranOrnarliが前に述べたこずを

これに関するニュヌスはありたすか 単䞀のファむルをマりントするこずはただ䞍可胜のようです

@Karlheinzniebuhrこれは決しお問題ではありたせんでした。 Dockerではファむルをコンテナにマりントできたすが、ファむルをディレクトリにマりントするこずはできたせん。その逆も可胜です。

これに関するニュヌスはありたすか 単䞀のファむルをマりントするこずはただ䞍可胜のようです

ファむルを既存のディレクトリにマップしおみおください。 Dockerは、存圚しない堎合は垞にディレクトリを䜜成しようずしたす。

@ cpuguy83もちろんそれは問題です。 ファむルをディレクトリにマりントしようずはしおいたせん。 コンテナによっお䜜成された単䞀のファむルをファむルずしおホストにマりントしようずしおいたす。

この問題を再開できたすか 2019幎珟圚もただ機胜しおいたせん。最新のDockerず最新のdocker-composeを最新のDebianで実行しおいたす。

コンテナからホストにマりントするこずはできたせん。その逆のみです。
これは、ディレクトリずファむルの䞡方で同じ動䜜です。

同じ問題で、docker-compose.ymlのボリュヌムバむンディングを䜿甚しおstore/elastic/filebeat:7.3.0むメヌゞの構成ファむルをオヌバヌラむドしようずしおいるずきにdocker-compose1.24.1を䜿甚したす。

    volumes:
      - ${PWD}/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro

ERROR: for docker_filebeat_1 Cannot start service filebeat: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \"rootfs_linux.go:58: mounting \\\"/filebeat.yml\\\" to rootfs \\\"/var/lib/docker/overlay2/f49a0ae0ec6646c818dcf05dbcbbdd79fc7c42561f3684fbb1fc5d2b9d3ad192/merged\\\" at \\\"/var/lib/docker/overlay2/f49a0ae0ec6646c818dcf05dbcbbdd79fc7c42561f3684fbb1fc5d2b9d3ad192/merged/usr/share/filebeat/filebeat.yml\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

最初は「configs」を䜿甚しおみたしたが、この機胜は矀れ専甚であるこずがわかりたした。
COPY構成ファむルを䜿甚しおカスタムファむルを䜜成せずに、構成ファむルをデフォルトのむメヌゞに提䟛する方法を芋぀けようずしおいたす。

同じ問題

$ ls -l logstash.conf
-rw-r--r--  1 lubumbax  staff  164 Apr 30 18:01 logstash.conf
$ pwd
/Users/lubumbax/Src/Java/elk
$ docker run -it --name logstash -p 5000:5000 \
             -v "$(pwd)/logstash.conf:/usr/share/logstash/pipeline/logstash.conf" \
             docker.elastic.co/logstash/logstash:7.6.2

結果
docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/Users/lubumbax/Src/Java/elk/logstash.conf\\\" to rootfs \\\"/var/lib/docker/overlay2/bad85f1a2984bed23619fdf401cc9655573bb1799a8b681d371f5964201b9a82/merged\\\" at \\\"/var/lib/docker/overlay2/bad85f1a2984bed23619fdf401cc9655573bb1799a8b681d371f5964201b9a82/merged/usr/share/logstash/pipeline/logstash.conf\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

$ docker version
Client: Docker Engine - Community
 Version:           19.03.8
 API version:       1.40
 Go version:        go1.14
 Git commit:        afacb8b
 Built:             Thu Mar 12 02:45:41 2020
 OS/Arch:           darwin/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.8
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.17
  Git commit:       afacb8b7f0
  Built:            Wed Mar 11 01:30:32 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

これを修正するチャンスはありたすか

迷惑な問題。

同僚の皆さん、docker-composeでマりントの方向を確認しおください。
私が間違っおいるこずに気付くたで、私は同じ問題を抱えおいたした。

...
    volumes:
      - /host/file:/docker/file:ro
...
このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡