讃岐小僧のEngineering×Techメモ

未経験から挑戦中のプログラミングや、趣味の野球や狩猟について、その他、ビジネスやテクノロジーをテーマに様々なことをつぶやく場所です。

【Docker】Dockerコマンドメモ

目次

はじめに

NestJS x ionicAngularな環境のDockernize中です。
色々やってたら「あれ、これはどうだったっけ?」となるので自分用にメモ取っておきます。

では書いていきます。

Docker関連用語

Docker image

  • Docker imageとは、Docker コンテナを構成するファイルシステムや、実行するアプリケーションや設定をまとめたもので、コンテナを作成するための利用されるテンプレートとなるもの

Docker container

  • Docker containerとは、Docker imageを基に構成されたファイルシステムとアプリケーションが実行されている状態を意味する

Dockerfile内の記述

FROM

  • FROMは作成するDcokerイメージのベースとなるイメージを指定する。

  • また、FROM句で取得するDockerイメージはDocker Hubで公開されているものを取得しに行く

❇︎ Dockerfile内では一度しか記述できない

RUN

  • RUNはDockerイメージのビルド時にDockerコンテナ内で実行するコマンドを定義する。

  • RUNはDokerfile内で複数回記述可能。

COPY

  • COPYはDokerを動作させているホストマシン上のファイルやディレクトリをDockerコンテナ内にコピーするための記述。

CMD

  • CMDはDockerコンテナとして実行する際に、コンテナ内で実行するプロセスを指定する。

  • CMDはコンテナ起動時の一度だけ実行される。

  • 用法としてはRUNでアプリケーションの配置、CMDでアプリケーションそのものを動作させると考える

docker-compose.ymlの記述

コマンド一覧

コマンド 意味
part2 docker image build -t イメージ名[:タグ名] . カレントディレクトリにある Dockerfile でイメージ作成
docker run -p 4000:80 <コンテナ名> コンテナ の実行にあたり、ポート 4000 を 80 に割り当てる
docker run -d -p 4000:80 <コンテナ名 > 上と同じで、デタッチド・モード
docker container ls 全ての実行中コンテナを表示
docker container ls -a 停止中も含めて全てのコンテナを表示
docker container stop <hash> 指定したコンテナを丁寧に停止
docker container kill <hash> 指定したコンテナを強制シャットダウン
docker container rm <hash> マシン上から指定したコンテナを削除
docker container rm $(docker container ls -a -q) 全てのコンテナを削除
docker image ls -a マシン上の全てのイメージを表示
docker image rm <image id> マシン上の特定のイメージを削除
docker image rm $(docker image ls -a -q) マシン上の全てのイメージを削除
docker login CLI セッションで Docker の認証を行いログイン
docker tag <image> username/repository:tag DockerHubのレジストリにアップロードする にタグ付け
docker push username/repository:tag タグ付けしたイメージを送信
docker run username/repository:tag レジストリにあるイメージを実行
part3 docker stack ls スタックやアプリ一覧
docker stack deploy -c <composefile> <appname> 特定の Compose ファイルを実行
docker service ls アプリに関係ある実行中サービス一覧
docker service ps <service> アプリに関係あるタスク一覧
docker inspect <task or container> タスクまたはコンテナの調査
docker container ls -q コンテナ ID の一覧
docker stack rm <appname> アプリケーションの解体
part4 docker swarm init swarm mode を有効化し、現在のマシンを swarm マネージャにする
docker swarm join 他のマシンをワーカとして swarm に追加する

❇︎ あくまで自分用のメモのため、いいナレッジを見つけたら、ここに書いていきます。また環境が整ったらまたそちらも別記事で書きます。