以下のようなdocker-compose.ymlファイルのdocker-composeを作ってみました。
version: '2' volumes: vl: driver: 'local' services: nodejs_xxx: build: . ports: - "20006:20006" volumes: - /usr/src/sample-node/node_modules - .:/usr/src/sample-node - /usr/src/volume-a/ - vl:/usr/src/volume-b/ depends_on: - pgsql_aaa restart: always
このコンテナを起動して、その中で/usr/src/volume-a/ /usr/src/volume-b/ /tmp/ それぞれの中にtest.txtファイルを作りました。/tmp/test.txtはvolumesで未指定です。
そして、以下のコマンドを実行しそれぞれのtest.txtファイルが消えているかの確認を行いました。
docker-compose stop -> docker-compose up -d ではどのファイルも削除されませんでした。
docker-compose down -> docker-compose up -d ではvolume-aとtmpの中のファイルが削除されました。
volume-bの中のファイルはデータボリュームに保存されているので、コンテナをdown(削除)してもデータが残るのは理解出来ます。ですが、volume-aに保存したファイルと、/tmp/の中に保存されたファイルの違いがわかりません。
どちらもstopでは消えない、downでは消える。ymlファイルのvolumesに(コロンがない方式で)指定すると、指定してないファイルと比べてどのような違いがあるのでしょうか?
それとも、コロンがない方式はdocker コマンドを直接叩く時には意味があるが、docker-composeに持ってきた時に無意味になってしまったのでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。