docker runコマンドの使い方


docker runは、dockerイメージから作成された新しいコンテナからコマンドを実行するコマンドです.これはdockerを使用するときに最も接触するコマンドで、さまざまなオプションを使用してコンテナを実行できます.docker runで使用されている様々なオプションを整理しました.
Usage
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
デフォルトのフォーマットは次のとおりです.IMAGEは明記しなければならない.image_idまたはimage_name:[tag]などと明示することができる.[OPTIONS]は、後述するオプションを追加することができる.[COMMAND] [ARG...]は、実行するコマンドです.
Docker run options
-i, -t, -it
$ docker run -it ubuntu:20.04
root@ad9785df1f26:/#
この2つのオプションは、コンテナ内で端末の入力を転送し続けるためによく使用されます.-iは、容器に接続されていなくても、標準入力(stdin)をアクティブにして維持する.-t TTYモード(pseudo-TTY)を使用して、Shellでコマンドを記述できます.-itを使用すると、dockerにpseudo TTYを割り当て、コンテナのstdinに接続する2つのオプションが同時に適用されます.
-d
$ docker run -d ubuntu:20.04 echo "test"
dbb2e4d820def34b8970dcfd4e66ef27cb4b9bd13431568370d5f58c749f7a69
このオプションでは、コンテナをバックグラウンドで実行できます.実行したcontainer idを出力します.
-e
$ docker run -e APP_ENV=production -e APP2_ENV=dev ubuntu:20.04 env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=6049820fc843
APP_ENV=production
APP2_ENV=dev
HOME=/roo
このオプションは、コンテナに環境変数を追加するオプションです.複数の環境変数を追加する場合は、上記の例のように-eを複数回使用する必要があります.
-p
$ docker run -p 127.0.0.1:80:8080 ubuntu:20.04 bash
このオプションは、ホストに接続されているコンテナの特定のポートを外部に露出するために使用します.通常、Webサーバのポートを外部に露出させるために使用されます.上記の例では、コンテナの8080ポートをホストの127.0.0.1 ipの80ポートにバインドしています.
-w
$ docker run -w /path/to/dir/ ubuntu:20.04 pwd
/path/to/dir/
コンテナ作業ディレクトリのオプションを変更します.
-v
$ echo arrow==1.0.3 > requirements.txt
$ docker run --rm -v `pwd`:/opt ubuntu:20.04 cat /opt/requirements.txt
arrow==1.0.3
このオプションは、現在の作業ディレクトリをコンテナにマウントするオプションです.-v <호스트 디렉터리>:<컨테이너 디렉터리>と一緒に使用します.
-u
$ docker run -u minseop ubuntu:20.04 bash
このオプションは、特定のユーザーまたはuidを介してコンテナを接続するために使用します.RUN useradd minseopの場合、docker image buildテーブル勘定科目を追加する必要があります.
-h
$ docker run -it -h="minseop-mac" ubuntu:20.04
root@minseop-mac:/#
このオプションは、コンテナのホスト名を設定するオプションです.
--name
$ docker run --name ubuntu-test-container ubuntu:20.04 bash
$ docker ps -a 
CONTAINER ID   IMAGE          COMMAND   CREATED         STATUS                     PORTS     NAMES
7fe4d35c8e23   ubuntu:20.04   "bash"    5 seconds ago   Exited (0) 4 seconds ago             ubuntu-test-container
このオプションは、コンテナ名を設定するときに使用するオプションです.
--rm
$ docker run --rm ubuntu:20.04 echo "run command, then container deleted" 
このオプションを使用すると、コマンドの実行後にcontainerを削除できます.コンテナは主に使い捨てに使われる.
Reference
  • https://docs.docker.com/engine/reference/commandline/run/
  • https://docs.docker.com/engine/reference/run/