Docker学習-Docker概念と基本操作

3121 ワード

英語ドキュメント:https://docs.docker.com/get-started/#images-and-containers
1.Dockerとは
Dockerは、開発者とシステム管理者がコンテナを使用してアプリケーションを開発、導入、実行するプラットフォームです.Linuxコンテナを使用してアプリケーションを配置することをコンテナ化と呼びます.コンテナは新しいテクノロジー(LXCベースの高度なコンテナエンジン)ではありませんが、アプリケーションの簡単な導入に使用されます.
コンテナの利点:-柔軟性:最も複雑なアプリケーションでもコンテナ化できます.-軽量:コンテナはホストカーネルを使用して共有します.-交換可能:更新とアップグレードを即座に導入できます.-ポータブル:ローカルで構築し、クラウドに配置し、どこでも実行できます.-拡張性:コンテナのコピーを追加して自動的に配布できます.-スタック可能:サービスを垂直および即時にスタックできます.
2.ミラー(image)とコンテナ(containers)
ミラーを実行してコンテナを起動します.ミラーは、アプリケーションを実行するために必要なすべてのコンテンツ-コード、実行時、ライブラリ、環境変数、プロファイルを含む実行可能パッケージです.
コンテナは、イメージの実行時インスタンスです.ミラーは、実行時にメモリにステータスがあるミラーまたはユーザープロセスです.コマンドdocker psを使用して、Linuxのように実行中のコンテナのリストを表示できます.
ImageはJavaのクラス、containersはオブジェクトにたとえることができます
3.コンテナと仮想マシンの違い
コンテナはLinux上でネイティブで動作し、他のコンテナとホストのカーネルを共有します.独立したプロセスを実行し、他の実行可能なファイルのメモリを消費せずに軽量レベルにします.
対照的に、仮想マシン(VM)は、仮想マシンマネージャを介してホストリソースに仮想アクセスする完全な「クライアント」オペレーティングシステムを実行します.通常、VMが提供する環境は、ほとんどのアプリケーションよりも多くのリソースを必要とします.
4.基本操作
4.1 docker–versionを実行し、サポートされているDockerバージョンがあることを確認
$ docker --version

4.2 docker infoまたは(-のdocker versionなし)を実行してdockerインストールの詳細を表示
$ docker info

 

$ docker version

4.3簡単なDockerミラーhello-worldを実行してインストールが有効かどうかをテストする
$ docker run hello-world

#       
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

4.4コンピュータにダウンロードしたhello-worldイメージを一覧表示する
$ docker image ls

4.5実行中および実行終了のコンテナを表示します(追加しない–allは実行中のコンテナのみを表示できます).
$ docker container ls --all

5.まとめ
## Docker CLI     
docker
docker container --help

##   Docker     
docker --version
docker version
docker info

##     
docker run hello-world

##     
docker image ls

##      (   ,   ,    )
docker container ls
docker container ls --all
docker container ls -aq

コンテナ化はCI/CDをシームレスにする.例:
  • アプリケーションシステム依存性なし
  • は、更新を分散アプリケーションの任意の部分
  • にプッシュすることができる.
  • リソース密度を最適化できます.

  • Dockerを使用すると、拡張アプリケーションの問題は、複雑な仮想マシンではなく、新しい実行可能ファイルを起動することです.