[解決済み] docker-compose upとrunのどちらを使うべきですか?
質問
を使用する理由はあるのでしょうか?
run
を起動するために
docker-compose.yml
ファイルを使うべきか、それとも
up
?
私は、以下のことを理解しています。
run
は特定のコンテナを起動することができますが、私が言っているのは、コンテナを指定せずに使用して、すべてのymlコンテナを起動させる場合です。
どのように解決するのですか?
で述べたように
docker-compose run
(2015)
runで渡されたコマンドは,サービス構成で定義されたコマンドを上書きします.
.
例えば,Webサービスの設定を起動する際に
bash
とすると
docker-compose run web python app.py
で上書きされます。
python app.py
.
2つ目の違いは
docker-compose run
コマンド は、サービス構成で指定されたポートを一切作成しません。 .
これにより、既に開いているポートとの衝突を防ぐことができます。もし、サービスのポートを作成してホストにマッピングしたい場合は、--service-ports フラグを指定してください。
$ docker-compose run --service-ports web python manage.py shell
ですから、そういった特別なニーズ(コマンドを上書きしたり、異なるポートで1つのコンテナだけを実行したり)がない限りは
docker-compose up
(1つのコンテナに対しても)十分です。
で述べたように コメント によって questionto42 テスト用であれば
を忘れずに追加してください。
--rm
の後にrun
を実行するたびにコンテナを作成します。docker-compose run ...
終了後に削除されることはありません。
このことを知らずにしばらくテストしまくると、コンテナのリストが長くなってしまうことがあります。
<ブロッククオート
なぜ、どのような場合にポートを作成しないのか、説明できますか?それは、すでに開いているポートと衝突する可能性があるためです。
単純に
docker-compose run
は、自分のサービスに対して単発のコマンドを実行するために作られたものです。
つまり、もしあなたがすでに
docker-compose up
から、すべてのコンテナは指定されたポートですでに実行されています。
docker-compose.yml
.
を行うこと。
docker-compose run
この段階で(単発のコマンドを実行するために)同じポートを尊重していた場合、即座に失敗します。そのため、これらのポートはデフォルトで作成されないようになっています。
もう一つのユースケース(in 環境変数の参照先を構成する ):
あるサービスで利用可能な環境変数を確認するには
docker-compose run SERVICE env
.
これらのコマンドの最新(2019年以上)バージョンは、以下の通りです。
docker/docker.github.io
:
関連
-
[解決済み] docker ERROR: 不明なブロブ
-
[解決済み] docker terminal: IP待ち
-
docker: デーモンからのエラー応答。コンテナ名 "/mysql" は既にコンテナによって使用されています。
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] 古いDockerコンテナを削除する方法
-
[解決済み] Dockerでデータベースなどの永続的なストレージを扱う方法
-
[解決済み] Docker:ローカルのDockerイメージをすべて削除する方法
-
[解決済み】Dockerは仮想マシンとどう違うの?
-
[解決済み】Dockerコンテナのファイルシステムを調査する
-
[解決済み】Docker ComposeはYを起動する前にコンテナXを待ちます。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Dockerfileの "RUN chmod "が有効でない。
-
[解決済み] DockerでPillowを使用する
-
Http: サーバーが HTTPS クライアントに HTTP 応答を返した 解決策
-
docker サーバーが HTTPS クライアントに HTTP 応答を返した
-
エラー:入力デバイスはTTYではありません。
-
(Kubernetes)k8sのdockerインストール入門
-
接続中にDocker useエラーが発生しました。このエラーは、Docker デーモンが実行されていないことを示す可能性があります。
-
Docker pullでマニフェスト不明エラーが発生する
-
[解決済み] すべてのGitタグを一覧表示するには?
-
[解決済み] merge --squashとrebaseの違いは何ですか?