Linux

docker run コマンドのパターン覚書

投稿日:2020年7月1日 更新日:

1. はじめに

docker run コマンドの実行パターンをまとめます。

但し、複雑な使い方はしません。

2. docker run コマンドについて

docker run コマンドは、引数で指定されたイメージを元にコンテナを生成し、同じく引数で指定されたコマンドを使ってこのイメージを開始します。

フォーマット

docker run コマンドのフォーマットは以下になります。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

主なオプション

docker run コマンドの主なオプションを表にしました。

オプション 説明
-i
  • アタッチされていなくても標準入力を開いたままにする。
-t
  • 擬似端末が割り当てられる。
–rm
  • コンテナが Exited になったときに、コンテナを自動的に削除する。
-v
  • ホスト側のディレクトリをコンテナ側にマウントする。
-w
  • コンテナ内のワーキングディレクトリ
  • コマンドは、このディレクトリ直下で実行される。

参考

3. コンテナの状態遷移図

コンテナの主要な状態だけを使って遷移図を書いてみました。

コンテナの状態遷移図

UpExited というのは、docker container ls コマンドを実行すると STATUS列に表示される状態の名前です。Up は稼働中、Exited は停止中といった意味になります。

4. 特定のコマンドを実行する場合

4-1. インタラクティブな処理がない場合

php:latest というイメージを利用して、php コマンドを実行する例です。

docker run --rm -v $(pwd):/app -w /app php:latest php hello.php
  • --rm を付けておけば、コマンド終了時にコンテナが自動的に削除されます。

4-2. インタラクティブな処理がある場合

php:latest というイメージを利用して、php コマンドを実行する例です。

docker run -it --rm -v $(pwd):/app -w /app php:latest php hello.php
  • インタラクティブなコマンドを実行する場合は、-it オプションを指定します。

5. サーバー(デーモン)を動かす場合

5-1. サーバーをフォアグラウンドで起動する

php:apache というイメージを利用して、Apache + PHP をフォアグラウンドで起動します。

docker run --rm -p8080:80 -v $(pwd):/var/www/html php:apache
  • --rm は任意です。

5-2. サーバーをバックグラウンドで起動する

php:apache というイメージを利用して、Apache + PHP をバックグラウンドで起動する

docker run -d -p8080:80 php:apache
  • -d は必須です。

6. Linux のシェルに入る場合

alpine:latest というイメージを利用して、apline のシェルに入る場合

docker run -it alpine:latest /bin/ash
  • インタラクティブなやり取りになるので、-it を指定します。

7. 参考

📂-Linux

執筆者:labo


comment

メールアドレスが公開されることはありません。

関連記事

Linux

コマンドに対してデフォルトで指定されているオプションを調べる

Linux などの UNIX系OS環境では、コマンドを入力して実行する機会が多いと思いますが、それぞれの環境によって、いくつかのコマンドオプションがデフォルトで指定されている場合があります。 ※ ログ …

Linux

【Linux】 CentOS のマニュアル

CentOS は、RHEL (Red Hat Enterprise Linux)のソースコードから商標や商用パッケージ等を除去してリビルドした RHELクローンです。 マニュアルを見る場合は、RHEL …

Let's Encrypt

Let’s Encrypt で ‘-0001’ がついた証明書データを削除する方法

目次1. 問題点2. 対応方法念のため、存在している証明書を全て表示します。いらない証明書データを削除する3. 間違えて生成した ‘-0001’ の方を Webサイトで使用して …

Linux

「よく使うコマンドランキングの表示」を1つのコマンドにする

目次1. はじめに2. 入力が面倒なコマンドを新たなコマンド(今回は関数)にする3. 作成した関数の実行4. コマンドの引数も合わせて調べたい5. 履歴のフォーマットが異なる場合6. まとめ 1. は …

Google App Engine

Ubuntu 18.04 (WSL) に、Google Cloud SDK をインストールする

Ubuntu 18.04 (WSL) に、Google Cloud SDK をインストールする手順を紹介します。