Dockerfileを構築するための1つのコマンドdocker build
と、コマンドを実行するためのdocker run -it
があるので、1つのコマンドだけでDockerfileを構築して実行することは可能ですか。
1つのコマンドでビルドおよび実行を簡単にするために、これら2つのコマンドを組み合わせて使用することはできますか?
いいえ、単一のコマンドはありません。あなたがそれを構築するときあなたがあなたの画像にタグを付けるなら、それは実行するのがより簡単になるでしょう:
docker build -t foo . && docker run -it foo
タグ付けを避けたい場合、docker build -q
は最終的なイメージハッシュ以外は何も出力しません。これをdocker run
の引数として使用できます。
docker run -it $(docker build -q .)
また、終了時にコンテナーを自動的に削除したい場合は、--rm
をdocker run
に追加します。
docker run --rm -it $(docker build -q .)
もしあなたがMakefileを使っているなら、私はこのスニペットが役に立つと思います:
build:
@docker build . | tee .buildlog
bash: build
@docker run --rm -it $(Shell grep "Successfully built" .buildlog | cut -d ' ' -f 3) /bin/bash
@ jonathon-reinhartの回答のようにタグ付けする必要はありませんが、ビルド出力も得られます。
run.bat
ファイルを作ります。それからファイルにこれを追加します。
docker build -t foo .
docker run -it foo
Powershellまたはcmdを使用してファイルを実行するには、次のようにします。
./run.bat