Docker入門:コンテナ作成と実行の手順

前回の記事では、サンプルのコンテナを実行するだけでした。今回は自分でコンテナを作って実行する方法を解説します。

利用するイメージの取得

Docker Hubからイメージを取得します。

docker image pull [イメージ名]
# または (旧コマンド)
docker pull [イメージ名]
コマンド例
docker image pull python

イメージ一覧を表示し、指定したイメージが正しくpullできているか確認します。

$ docker image ls
REPOSITORY           TAG          IMAGE ID       CREATED         SIZE
python               latest       33ce09363487   35 hours ago    925MB

コンテナを作成し実行する

次のコマンドでコンテナの作成と実行が行えます。イメージがローカルにない場合は、Docker Hubからダウンロードします。

docker container run [オプション] [イメージ名]

私がよく使うオプションは以下。その他のオプションは公式を参照ください。

名前 説明
-d バックグラウンドで実行(docker container createでは指定不可)
--dns カスタムDNSサーバーを設定する
--env 環境変数名=値 環境変数を指定する. 複数指定時は--envをそれぞれに記述する
--gpus コンテナーに追加する GPU デバイスを指定する
-i アタッチされていなくても STDIN を開放し続ける
--mount ファイルシステムをマウントする
--name [コンテナ名] コンテナ名を指定
-p [ホストのポート番号]:[コンテナのポート番号] ホストとコンテナのポートフォワード設定
--restart コンテナー終了時に適用する再起動ポリシー. alwaysを指定すると、Docker起動時にコンテナを自動起動する
--rm 終了時に中間コンテナを自動的に削除する
--runtime 利用するランタイム
-t 擬似 TTY を割り当てる. 通常は-iとセットで-itと指定する
-v [ホストのディレクトリ]:[コンテナのディレクトリ] ホストとコンテナでマウント(共有)するボリューム(ディレクトリ)を設定する. 複数指定時は-vをそれぞれに記述する
コマンド例
docker container run -d --name python-sample -p 8080:8080 python
docker container run -i -d --name python-sample -p 8080:8080 python

コンテナを作成する

次のコマンドでコンテナを作成します。

docker container create [オプション] [イメージ名]
# または (旧コマンド)
docker create [オプション] [イメージ名]
コマンド例
docker container create -i --name python-sample python

コンテナ一覧を表示し、作成したコンテナが正しく作成できているか確認します。

$ docker container ls -a
CONTAINER ID   IMAGE     COMMAND      CREATED          STATUS     PORTS    NAMES
a7cca4d84404   python    "python3"    49 seconds ago   Created             python-sample

コンテナを起動する

Createしたコンテナや停止中のコンテナは、次のコマンドで実行します。

docker container start [オプション] [コンテナ名]|[コンテナID]
# または (旧コマンド)
docker start [オプション] [コンテナ名]|[コンテナID]
オプションは、-i-aなど。create時に指定した-vオプションなどは有効になっています。

コンテナ一覧を表示し、起動したコンテナのSTATUSUPであればコンテナが起動しています。

$ docker container ls -a
CONTAINER ID   IMAGE     COMMAND      CREATED              STATUS          PORTS    NAMES
a7cca4d84404   python    "python3"    About a minute ago   Up 3 seconds             python-sample
docker container create時に-iオプションが無かった場合は起動してすぐに停止するため、STATUSExitedになります。

コンテナを停止する

docker container stop [コンテナ名]|[コンテナID]

コンテナ名を変更する

コンテナ名の変更はdocker container renameコマンドを使用します。コンテナを停止してから、名前を変更することが推奨されています。

docker container rename [旧コンテナ名] [新コンテナ名]

ホストとコンテナ間でファイルをコピーする

コンテナは停止中でもOKです。

コンテナからホストへファイルをコピーする

docker cp [コンテナ名]:[ファイルパス] [ホストのディレクトリ]

# 例
docker cp sample-container:/images/banana.jpg ./

ホストからコンテナへファイルをコピーする

docker cp [ホストのファイルパス] [コンテナ名]:[ファイルパス]

# 例
docker cp banana.jpg sample-container:/images/banana.jpg
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

スポンサードリンク

関連コンテンツ

コメント

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