Docker の利用方法
Docker をインストール後での docker コマンドの使い方について記録
用語
- (Docker)イメージ
- コンテナのテンプレート.
- Docker は新しいイメージを作ったり,既存イメージを更新したり,他の人が作ったイメージを利用したりする方法を提供する.
- ローカルにダウンロードしたイメージはリポジトリのと区別するためローカルキャッシュと呼ばれることもある
- (Docker)コンテナ
- ディレクトリと同じようなもの
- 対象とするアプリケーションの実行に必要なファイルすべてが含まれる
- 個々のコンテナはイメージから作られる.
- コンテナは実行,開始/停止, 移動,削除できる.
- 個々のコンテナは分離されている.
- Dockerfile
- Docker Engine
- Dockerコンテナを生成したり実行したりするソフトウェア.UIを受け持つクライアントの部分とバックエンド処理を行うサーバの部分から成る.
- 一方,Docker は Docker Engine と同様の意味で用いられたり,Docker Hub なども含めた総称的な技術の名称として使われたりする.
- Dockerレジストリ, Docker Hub
- Dockerイメージを共有するためのWebサービス.代表例として Docker Hub がある.
コマンドあれこれ
- イメージの操作
# イメージを(既定では Docker Hub から)取得する. # ここでは CentOSの最新イメージを取得. # イメージ名にユーザ名がついていないのは公式配布のイメージだから. $ docker pull centos:latest # イメージの一覧を確認する $ docker images # イメージを削除 $ docker rmi centos
- コンテナの操作
- オプションとして以下で示すものの他に "-p portNum_host:portNum_container" というのもある.これによりホストとコンテナの間のポートマッピングを構成可能
# centos イメージからコンテナを生成し echo コマンドを実行する. # コンテナがローカルに存在しない場合,pull およびコンテナ生成も行われる. $ docker run centos:latest echo "Hello World" # --name オプションでコンテナに名前を付けられる. # コンテナ名は削除の際の名前としても利用可能. $ docker run --name="hello_world" centos:latest echo "Hello World" # bash を実行.-i で標準入力を開き,-t で仮想端末を確保する. $ docker run -i -t centos bash # bash を実行.-d 指定によりバックグラウンドで動かす. $ docker run -i -t -d --name="my_bash" centos bash # コンテナの一覧を表示. # -a オプションをつけると動作状態にかかわらずすべてのコンテナを表示する. $ docker ps -a # 開始済みバックグラウンド動作のコンテナに接続. # この場合,root ユーザで作業することになる.bash は exit で終了する. $ docker attach my_bash # 停止中のコンテナを開始する. $ docker start my_bash # 動作中のコンテナを停止する. $ docker start my_bash # コンテナを削除する. $ docker rm my_bash
- コンテナからイメージを作る
- 作業を加えたオリジナルのコンテナをイメージ化する
# my_container というコンテナから my_user/new_image_name というイメージ作成 $docker commit my_container my_user/new_image_name # イメージを確認 $docker images
- Docker Engine の情報を表示する
- コンテナ,リポジトリ,ホストの情報取得には info
- クライアントやサーバの情報取得には version
$ docker info $ docker version
- Docker Hub にログインする
$ docker login
- Dockerレジストリへのコンテナアップロード
$ docker push
Dockerfile でイメージを生成
別エントリに記述する.nsaito-nmiri.hateblo.jp