質問はタイトル通りなのですが、docker-composeを使用する場合、Dockerfileは不要なのでしょうか?
ネットで調べてみると「docker-compose.yml単体で完結するスタイルが望ましい」と書かれていたため、質問させていただきました。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
タイトルの
Dockerを使うにあたってDockerfileは必要か
と本文の
docker-composeを使用する場合、Dockerfileは不要なのでしょうか?
は、レベル感の違う話なので、本文の質問にフォーカスして回答します。
docker-composeを使用する場合、Dockerfileは不要なのか
docker-composeを使用するからといってDockerfileが不要になるわけではないので、
こちらの質問に対する回答はNoです。
Dockerfileとは何かが理解できればおそらくスッキリされるのではないかと思います。
Dockerfileは一言で言うとDockerイメージを作成するための一連の手順が含まれた単なるテキストファイル
です。
なのでご自身でDockerイメージを作成しない(第三者が作成したDockerイメージをそのまま使う)場合は不要
となります。
Dockerfileが必要となるケースはその逆です。
ではどんな時に、自分でDockerイメージを作成することになるのかというと以下が考えられます。
- 欲しいDockerイメージが公開されていない(ダウンロードできない)場合
- 外部に公開したくないDockerイメージを作らざるをえない場合
当たり前ですが、上記の場合は自分で作るしかないですよね。この時にはじめてDockerfileが必要となります。
docker-compose単体(Dockerfileを使用しない場合)でも、第三者のDockerイメージをカスタマイズしてコンテナを起動することができますので、上記に該当しない場合はdocker-compose単体でも完結することができます。
それが望ましいかと言われると、ケースバイケースかと思います。
補足
回答に含めると混乱すると思ったので補足として、、、
上記の回答で、「自分のDockerイメージを作成する場合、Dockerfileが必要」と回答しましたが、ansible-container等を使うとDockerfileは不要となります。気になったら調べてみてください。
ちなみにansible-containerのメリットは以下です。
- Ansibleのエコシステムに乗っかれる
- Ansible(yml)なのでDockerfileよりも可読性が良い
- docker-composeの代替としても使うこともできる
プロビジョニングをワンソースで管理できる
(プロビジョニング対象がDockerイメージであろうがホストであろうが同じコードで同じ状態をいつでも作れる)
その他色々ありますが、一番最後の点が最大のメリットかと思います。
投稿2017/11/22 01:57
総合スコア4258
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。