C# (dotnetcore) Docker コンテナで実行するコンソールアプリケーションのチュートリアルを実施してみた
このエントリは、個人的にメモをまとめたものになります。 個人的なチュートリアルの補助的役割です。
実施したチュートリアル
事前の準備
Docker Desktop on Macをインストール
インストールが成功すると、Dockerコマンドが利用できるようになります。
準備完了
これでチュートリアルを進めていきます。
実際チュートリアルを進めるところは記事にしません。 リンク先を参照ください。
プログラムを書き換えた際に再度実行して確認する流れ
(1) コンパイル
dotnet publish -c Release
(2) dockerイメージのビルド
docker build -t <container image name> -f Dockerfile .
(3) コンテナの実行
docker run -it --rm <container image name>
感想
これだけいろんなOS、ミドルウェア、アプリケーション、プログラミング言語、ライブラリ、パッケージ等がどんどん複雑化されていく中で、 アプリケーションをコンテナ化するということは、1つ抽象化することに貢献してくれるのだろう。
抽象化されることによって、複雑なアプリケーションを認識しやすいようにしてくれる。
メモ
コンテナイメージの作成
docker build -t <container image name> -f Dockerfile .
コンテナイメージの一覧
docker images
コンテナの作成
docker create --name <container name> <container image name>
コンテナ一覧の確認
docker ps -a
コンテナのstart
docker start <container name>
コンテナのstop
docker stop <container name>
コンテナへ接続
--sig-proxy=false
を付与すると、Ctrl+c押下時に、コンテナに対して、SIGINTが送信されなくなる
docker attach --sig-proxy=false <container name>
コンテナの削除
docker rm <container name>
コンテナの起動、実行、終了
docker run -it --rm <container image name>
コンテナ内のアプリに対して、引数を渡すこともできる。
docker run -it --rm <container image name> 引数
ENTRYPOINT をbashに変更して起動
docker run -it --rm --entrypoint "bash" <container image name>
dockerイメージの削除
docker rmi <container image name>:<tag name>