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

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

WSL

WSL の Ubuntu 16.04 LTS を 18.04 LTS にアップグレードする

WSL の Ubuntu 16.04 LTS を 18.04 LTS にアップグレードしたときの手順を記録します。 目次1. 公式な情報2. 現状確認3. アップグレード作業(1) パッケージを最新の …

Linux

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

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

CentOS

CentOS 6 での yum update エラーに対応しました

問題 先日、CentOS 6.9 で yum update したところ、以下のエラーが発生しました。 https://ca.mirror.babylon.network/remi/enterprise …

Linux

【Linux】man コマンドの基本的な使い方

Linux をコマンドラインで使う場合、man コマンドでマニュアルを読むことができます(man は manual の略です)。 このページでは、この manコマンドの簡単な使い方について説明します。 …

CentOS

CentOS 8 標準の Apache と PHP の関係について

CentOS 8 における Apache と PHP の関係について説明します。