【Docker】部屋を綺麗にして、dockerを使い始めました.

5564 ワード

Dockerについて
DockerはGo言語を使って作成した仮想化ソリューションで、非常に軽量で使いやすいです.
なぜDockerを使いますか?
なぜDockerを使うかというと、簡単にネットでDockerを使う長所をたくさん見つけられると思います.一回の配置、あちこちの運転、より効率的な仮想化、より簡単に管理するなどです.しかし、私個人にとっては、Dockerを使って、私の仕事環境を綺麗にすることができます.ここまで言えば、仕事のやり方を話します.
1.石器時代
最初はパソコンは仕事のコンピュータで、仕事の娯楽はすべて同じコンピュータの上で行います.普通なら、ちょっと整理しておきます.例えば、違うフォルダに置いたり、違うディスクに置いたりします.しかし、いずれにしても、ソフトウェアのインストール、削除、アップグレードに従って、ファイルの削除、ゆっくりとコンピュータの中のファイルのかけらはだんだん多くなります.よくある例えばwindowsコンピュータのCドライブはますます大きくなって、中はすべていくつかの奇怪なファイル名のファイルで、すべてどれらが削除することができますかを知らないで、どれらが削除することができますか?
2.青銅時代
いくつかの仮想マシンやデュアルシステムの知識を知っていると、デュアルシステムのインストール、仮想マシンのインストールを選択して、作業環境の分離を保証することができます.例えば、以前からVirtual boxとは違ったシステムで違うことをしていました.でも、このような仮想マシンは起動が遅いです.抽象的に見れば、もう一台のコンピュータなので、あなたの一台は二台か複数のコンピュータになります.
3.工業時代
仮想マシンの起動が遅い、効率が低い以外に、一台のコンピュータは同じ環境です.環境を切り替えたいなら、やはり面倒くさいです.例えば、一つのプロジェクトで使うのはPHP 5.3ですが、PHP 5.5の新しい特性を試してみたい時は面倒です.Dockerの出現は、その中のいくつかの問題をよりよく解決することができます.
Dockerの使用
Dockerは軽量級の仮想化ソリューションで、秒級の仮想マシン起動、非常に軽量級の仮想化が可能です.個人的な使用は、バージョン管理Gitのような軽量化された状態で保存できることを理解している.
Dockerには二つの非常に重要な概念があります.ミラーとコンテナです.
鏡像は容器を載せた本体で、すべての容器は鏡像の上に動いています.バージョン管理の観点から見れば、ミラー像はあるノードのように見えます.それは異なる分岐を派生してもいいです.本の木を想像することができて、最も基本的な鏡は主な幹で、主な幹は傍木の幹を分けることができて、傍木の幹は更に細い傍木を分けることができて、木の幹の上で木の枝を成長することができます.
例えば、Dockerを使って、オフィシャル倉庫からuuntuのイメージをダウンロードして、それを最も基本的なイメージとします.上で一つの容器を運行して、この容器の中でNFinxをダウンロードして、またこの容器を基礎にして新しい鏡像を生成して、後でこの鏡像の生成する容器はすべてuuntu+nginxを基礎にします.しかし、あなたの職場環境はApacheを使って働く必要があるかもしれません.uuntu+apaacheをベースにしたイメージがありたいです.そこで、最も基本的なuuntuのイメージを使って、容器を実行して、中でアプリをダウンロードしてインストールして、この容器をベースに、uuntu+apacheのイメージを保存します.今後はこのミラーに基づいて運行されるすべての容器にapache環境があります.
操作フローはDockerをインストールした後(ここでは本機のuuntuオペレーティングシステムを例にします):
# docker pull ubuntu
このように、pullを通じて最新のビルディングのuuntuイメージをオフィシャル倉庫からダウンロードします.
root@docker:~# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu              latest              9cbaf023786c        7 days ago          192.8 MB
その後、このイメージを元に、いくつかの操作を行うことができます.以下のとおりです
root@docker:~# docker run -it ubuntu /bin/bash
root@ead6f34e1f8e:/#
これで、あなたは容器に入りました.新しい容器は単独で作成する必要はありません.ある鏡像をもとに、いくつかのコマンドを実行すればいいです.注意してください.新しい容器は新しくインストールされた簡単なシステムのようです.中には多くの命令とプログラムがデフォルトでインストールされていません.例えば、python、wget、vimなどです.下に、コンテナにハングアップをダウンロードします.
root@ead6f34e1f8e:/# apt-get update
root@ead6f34e1f8e:/# apt-get install nginx
root@ead6f34e1f8e:/# which nginx
/usr/sbin/nginx
root@ead6f34e1f8e:/# nginx -v
nginx version: nginx/1.4.6 (Ubuntu)
root@ead6f34e1f8e:/# exit
容器から退出した後、docker ps -aを使用すると、停止した容器が見えてきます.
root@docker:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS       NAMES      
ead6f34e1f8e        ubuntu:latest       "/bin/bash"         9 minutes ago       Exited (0) 44 seconds ago                       suspicious_rosalind
ここに表示されているいくつかのもの:
  • CONTAINER ID:コンテナのID
  • IMAGE:容器に使用されるミラー
  • COMMAND:容器を作る時に使うコマンド
  • CREATED:作成時間
  • STATUS:現在の状態
  • PORTS:ポートマッピング(デフォルトはなし)
  • NAMES:容器の名前
  • 上からNgixのコンテナをダウンロードしました.新しいミラーを作成できます.
    root@docker:~# docker commit -m 'add nginx' ead6f34e1f8e ubuntu/nginx
    6d61d587b283fd163a30eff8ec1928b503e1d05de24cb815bc3acc5bc4b4d1ed
    root@docker:~# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    ubuntu/nginx        latest              6d61d587b283        3 seconds ago       231.3 MB
    ubuntu              latest              9cbaf023786c        7 days ago          192.8 MB
    
    このようにして私達は新しい鏡像を創建しました.中にはデフォルトではNgixが含まれています.今後はすべてのインラインが必要な容器はこのイメージをもとにして、再ダウンロードする必要がありません.もちろん、ここの鏡の名前は自由です.ここは実験だけです.
    root@docker:~# docker run -it ubuntu/nginx /bin/bash
    root@3364e69c4654:/# which nginx
    /usr/sbin/nginx
    root@3364e69c4654:/# nginx -v
    nginx version: nginx/1.4.6 (Ubuntu)
    
    入ると見えますが、デフォルトは上の環境です.今終了したら、容器を確認します.
    root@docker:~# docker ps -a
    CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS                      PORTS               NAMES
    3364e69c4654        ubuntu/nginx:latest   "/bin/bash"         3 minutes ago       Exited (0) 3 seconds ago                        happy_curie
    ead6f34e1f8e        ubuntu:latest         "/bin/bash"         23 minutes ago      Exited (0) 14 minutes ago                       suspicious_rosalind
    
    ここからは停止容器が二つあります.また、容器IDは容器の本体名です.
    多くの容器を作ることができます.資源の一部を消費するだけで、多くの隔離環境を保持することができます.また、このような環境を保存して、あるdocker倉庫に送って、生産環境で再度ダウンロードして運行してもいいです.これで生産と開発環境の整合性、つまり開発が至るところで行われます.
    dockerを使った問題
    パソコンはOS Xなので、dockerを実行するにはboot 2 dockerというプログラムを同時にインストールする必要があります.また、virtual boxの協力が必要です.具体的にはMac OS Xシステムのインストール説明を参照してください.Homebrewを使用すれば、brew install docker boot2dockerを直接使用してインストールすることができます.しかし、以前にインストールしたり、更新したりしたら、問題があるかもしれません.
    Error response from daemon: client and server don't have same version (client : 1.15, server: 1.13)
    
    この問題は、サービスとクライアントのバージョンが一致していないことを示しています.主にブックt 2 dockerによって引き起こされました.このような問題があったら、ブックt 2 dockerを更新すればいいです.注意してください.ここは新しくブックt 2 dockerをダウンロードするのではありません.
    boot2docker download
    boot2docker restart
    
    または
    boot2docker upgrade
    
    後記
    この文章は大体においてDockerの使用の基本的な流れを述べただけです.中には多くの概念が含まれています.(例えば、ミラータグなど)展開していませんので、全体的には粗いです.深く理解することは、本人の後続の文章を期待したり、直接に下の開源図書を見たりすることができます.この本は入門したい友達に適しています.
    参考資料:Dockerは入門から実践まで