昨日までのはこちら
100日後にエンジニアになるキミ - 95日目 - 開発環境 - Docker について
100日後にエンジニアになるキミ - 94日目 - 開発環境 - 仮想化について
100日後にエンジニアになるキミ - 91日目 - 運用 - 監視について
100日後にエンジニアになるキミ - 90日目 - 開発 - CIについて
100日後にエンジニアになるキミ - 88日目 - データ - データ転送について
100日後にエンジニアになるキミ - 86日目 - データベース - Hadoopについて
100日後にエンジニアになるキミ - 76日目 - プログラミング - 機械学習について
100日後にエンジニアになるキミ - 70日目 - プログラミング - スクレイピングについて
100日後にエンジニアになるキミ - 66日目 - プログラミング - 自然言語処理について
100日後にエンジニアになるキミ - 63日目 - プログラミング - 確率について1
100日後にエンジニアになるキミ - 59日目 - プログラミング - アルゴリズムについて
100日後にエンジニアになるキミ - 53日目 - Git - Gitについて
100日後にエンジニアになるキミ - 42日目 - クラウド - クラウドサービスについて
100日後にエンジニアになるキミ - 36日目 - データベース - データベースについて
100日後にエンジニアになるキミ - 24日目 - Python - Python言語の基礎1
100日後にエンジニアになるキミ - 18日目 - Javascript - JavaScriptの基礎1
100日後にエンジニアになるキミ - 14日目 - CSS - CSSの基礎1
100日後にエンジニアになるキミ - 6日目 - HTML - HTMLの基礎1
本日もDocker
の続きです。
Dockerの用語について
ざっくりとした導入をやりましたが、用語が多いので
おさらいをしておきましょう。
Dockerfile
Dockerイメージをビルドする方法の手順が含まれるテキストファイルです。
これはバッチスクリプトに似ていて必要なプログラムのインストールや
ファイルのコピーなどが目的環境になるまで続きます。
Dockerfileはアプリケーションの構成と
必要なリソースの詳細を記載します。
イメージ(Docker Image)
コンテナーを作成するために必要なすべての依存関係と
情報を含むパッケージでDockerfileを介して作成されます。
Dockerイメージはアプリケーションのスナップショットであり
すべての依存関係 (フレームワークなど) に加えて
コンテナーランタイムによって使用される全ての実行構成が含まれています。
イメージはDocker Hub
などで共有することができ
Dockerイメージの取得はdocker pull
コマンドで行います。
取得したイメージの確認はdocker images
コマンドで行います。
ビルド
Dockerfileの情報に基づいてイメージを作成します。
docker build
コマンドでビルドを行います。
docker buildコマンドではDockerfileを元にしたコンテナーの起動構成
Dockerイメージの作成までを実行します。
Run
docker run
コマンドはイメージを利用して
コンテナを起動状態で作成します。
コンテナ(Docker Container)
Dockerイメージのインスタンスです。
コンテナーは、単一のアプリケーション、プロセス、またはサービスの実行を表します。
Dockerイメージのコンテンツ、実行環境、および標準的な命令セットで構成されます。
サービスを拡張する場合は、同じイメージから複数のインスタンスを作成したり
バッチジョブで同じイメージから複数のコンテナーを作成し
各インスタンスにそれぞれ異なるパラメーターを渡したりします。
コンテナの起動はdocker start
コマンドで行います。
起動はdocker ps -a
で確認ができます。
コンテナの停止はdocker stop
コマンドで行うことができます。
Create
コンテナを停止状態で作成するにはdocker create
を使用します。
タグ
イメージにはタグ付することができます。
タグ付はdocker tag
コマンドで行います。
Docker Engine
Dockerイメージ作成やコンテナ起動などを行うDockerのコアコンポーネントです。
Dockerの核となる機能部分です。
コンポーネント
DockerではDocker Engineを中心に複数のコンポーネント単位で機能が開発されています。
必要に応じて複数のコンポーネントを組み合わせて使用します。
Docker Compose
複数コンテナを一元管理するコンポーネントのことです。
レジストリ(Docker Registry)
Dockerイメージを公開・共有するコンポーネントのことです。
ほとんどのパブリックイメージの既定のレジストリはDocker Hub
です
企業では自社用のイメージを管理するためのプライベートレジストリを持っています。
Dockerコマンド
Dockerでのコマンドのまとめです。
イメージのダウンロード
docker pull [オプション] イメージ名[:タグ名]
イメージの一覧表示
docker images [オプション名] [リポジトリ名]
イメージの詳細確認
docker inspect [オプション] コンテナ識別子またはイメージ識別子 [コンテナ識別子またはイメージ識別
イメージのタグ設定
docker tag イメージ名:[タグ名] ユーザー名/イメージ名:[タグ名]
イメージの検索
docker search [オプション] 検索キーワード
イメージの削除
docker rmi [オプション] イメージ名 [イメージ名]
Docker Hubへのログイン
docker login [オプション] [サーバ名]
イメージのアップロード
docker push イメージ名[:タグ名]
Docker Hubからのログアウト
docker logout [サーバ名]
コンテナの生成/起動
docker run [オプション] イメージ名[:タグ名] [引数]
コンテナのバックグラウンド実行
docker run [オプション] イメージ名[:タグ名] [引数]
コンテナのネットワーク設定
docker run [オプション] イメージ名[:タグ名] [引数]
リソースを指定してコンテナを生成/実行
docker run [リソースオプション] イメージ名[:タグ名] [引数]
コンテナを生成/起動する環境を指定
docker run [環境設定オプション] イメージ名[:タグ名] [引数]
稼働コンテナの一覧表示
docker ps [オプション]
コンテナの稼働確認
docker stats [コンテナ識別子]
コンテナの起動
docker start [オプション] コンテナ識別子 [コンテナ識別子]
コンテナの停止
docker stop [オプション] コンテナ識別子 [コンテナ識別子]
コンテナの再起動
docker restart [オプション] コンテナ識別子 [コンテナ識別子]
コンテナの削除
docker rm [オプション] コンテナ識別子 [コンテナ識別子]
コンテナの中断/再開
docker pause コンテナ識別子 [コンテナ識別子]
稼働コンテナへの接続
docker attach コンテナ識別子
稼働コンテナでプロセス実行
docker exec [オプション] コンテナ識別子 実行するコマンド [引数]
稼働コンテナのプロセス確認
docker top コンテナ識別子
稼働コンテナのポート転送確認
docker port コンテナ識別子
コンテナの名前変更
docker rename コンテナ識別子 コンテナ識別子
コンテナ内のファイルをコピー
docker cp コンテナ識別子:コンテナ内のファイルパス ホストのディレクトリパス
docker cp ホストのファイル コンテナ識別子:コンテナ内のファイルパス
コンテナ操作の差分確認
docker diff コンテナ識別子
Dockerのバージョン確認
docker version
Dockerの実行環境確認
docker info
コンテナからイメージ作成
docker commit [オプション] コンテナ識別子 [イメージ名[:タグ名]]
コンテナをtarファイル出力
docker export コンテナ識別子
tarファイルからイメージ作成
docker import ファイルまたはURL - [イメージ名[:タグ名]]
イメージの保存
docker save [オプション] 保存ファイル名 [イメージ名]
イメージの読み込み
docker load [オプション]
DockerfileからDockerイメージの作成
docker build -t [生成するイメージ名]:[タグ名] [Dockerfileの場所]
忘備録的に書いたので間違ってたらすいません。
まとめ
Dockerではかなりやれること、用語も多いので
何がなんなのかを把握しておくと良いと思います。
そのためのコマンドもたくさん有るので
すこしづつ使っていきながら覚えていきましょう。
君がエンジニアになるまであと03日
作者の情報
乙pyのHP:
http://www.otupy.net/
Youtube:
https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw
Twitter:
https://twitter.com/otupython