Docker構築テスト環境の知識


Docker:
Dockerとは?
アプリケーションのコンテナを詰めて、オープンソース、githubの上で管理して、プラットフォームにまたがって、windows、mac、linuxをサポートします
Dockerの考え方:コンテナ、標準化(輸送方式、記憶方式、APIインタフェース)、隔離
ウェブサイトを構築したいのですが、どうすればいいですか?
LNMP(linux+Nginx+Mysql+PHP)
各種ソフトウェアのインストールおよびそれぞれの依存環境、構成パラメータ
Dockerは何を解決しましたか?
1、運行環境の不一致、サーバーの移行
2、隔離性は各アプリケーションの相互影響を解決し、最大のCPUとハードディスクを制限し、殺しを超えた
3、ダブル11業務量が多く、標準化により、サーバーの配置環境を増加することが簡単にボタンを押して100以上のサーバー環境の配置が完了する.
Dockerコア語彙:ミラー(Buildコンテナ)、倉庫(Shipスーパー埠頭)、コンテナ(Runプログラムを実行する場所)
プログラム・プロシージャの実行:倉庫でミラーをローカルに引き出し、コマンドでミラーを実行してコンテナにします.
ミラー:Imageは一連のファイル(実行環境のファイル、プログラムファイル)をローカルに保存し、フォーマットは
ユナイテッドファイルシステムUnion FSは異なるディレクトリの下のファイルを同じフォルダに集合し、ファイルの階層化を実現する.各層のファイルはすべて読み取り専用で、各層のロードが完了すると同じディレクトリである.各層は自分で定義することができる.–目的:他の機械で実行する
階層:オペレーティングシステムブート–オペレーティングシステム–tomcat、jdk–プログラムファイル–コンテナ
コンテナ:本質的にプロセスで、一番上の層は読み書き可能です.
倉庫:dockerが自分で提供した
hub.docker.com-ミラーのロード速度が非常に遅い
c.163.com蜂の巣-docker倉庫にミラーを転送
内部の人が私用して、イントラネット環境に倉庫センターを建てます.
インストール:http://imooc.com/article/16448 Centos
1、yum install-y dockerインストールdocker–docker version表示バージョン–systemctl start docker起動docker–docker info docker情報を表示し、systemctl status docker docker docker docker状態を表示する
docker実践部分
ミラー:
ミラーをローカルに引き寄せる:docker pull[OPTIONSパラメータ]NAME[:TAGバージョン]
本機のミラーを確認する:docker images[OPTIONS][REPOSITORY[:TAG]
コンテナ:
docker run [OPTIONS] IMAGE [:TAG] [COMMAND] [ARG]
eg:Nginx(webサーバ)の実行
Nginx-永続的な実行が必要で、フロントフック(ctrl+c終了)&バックグラウンド実行
1、docker pull名前(網易蜂の巣で探して、住所があって、直接複製)
2、docker images
3、docker runの名前は同じです(フロントで実行し、ctrl+cが終了し、推奨しません)
-docker run-d名前:バックグラウンドで実行し、コンテナのid(文字列)を返します.
4、docker ps現在実行中のコンテナを表示する
5、docker exec-it f 4(コンテナid)bashコンテナ内部の構造を表示し、コンテナidという名前のホストに入る
which nginx nginxの場所を表示する
ps-ef現在のサービスにはどのようなプロセスがありますか?
exit終了コンテナ
dockerネットワーク
ネットワークタイプ:Bridge(独立した割り当て、ポートマッピング)Host(ホストとネットワークを共有し、IPを必要としない)None(ネットワークなし)
docker stopコンテナid-ミラーを停止
docker run-d-p 8080:80コンテナ名---ポートマッピング、1つのコンテナポート80をホスト8080に開放する
Netstat-na|grep 8080ポートが開いているかどうかを確認し、ブラウザでlocalhost:8080にnginxが表示されます.
docker run-d-Pコンテナ名は、すべてのリスニングポートをホストにマッピングします.
docker-psはホストがコンテナtcpポートにオープンしているのを見ることができ、localhost:ランダムポートはnginxを見ることができます
自分のミラーを作成
Dockerfile–dockerにミラーの作成方法を教える
docker build-dockerfileの手順に従ってミラーを構築
warパッケージをローカルにダウンロード-「端末を開く-」docker imagesミラーを表示
蜂の巣でtomcatパスを表示し、docker pullパスはtomcatをローカルにベースミラーとしてダウンロードします(jdkを含む)
tomcatのデフォルト環境CATALINA_HOME:/usr/local/tomcatの表示
lsプロジェクトweb warパッケージの名前を表示mv名前新しい名前-名前を変更
vi Dockerfile i書き込み
from tomcatパス
MAINTAINER所有者の名前所有者の連絡先-この行は書かなくてもいいです
COPY warパッケージ名/usr/local/tomcat/webapps(tomcatのwebappsの下のパス)
wq保存終了
docker build-t名前.------docker fileのディレクトリは現在のディレクトリ用です.-tはミラーに名前を付けます
docker images新規ミラーの表示
独自のコンテナを実行
docker-run-d-p 8888:8080ミラー名
docker ps
Netstat-na|grep 8888はすでにlisten状態にある
ブラウザでlocalhost:8888にアクセス-tomcatにアクセス
localhost:8888/ミラー名---プロジェクトへ
https://www.imooc.com/video/14626
Dockerの4つのコンポーネントの関係?
Docker:    

dockerfile:    

images:      

container:             ,  

Docker compose:   ,     container

Docker Volumn:     ,     

Docker Swarm:    

Docker Registry:4S  

https://labs.play-with-docker.com オンライン練習docker
https://segmentfault.com/a/1190000011263661#articleHeader13Docker
Docker-composeベテランドライバー
アプリケーションを配置するには、一般的に複数のコンテナが使用されます.アプリケーションを1つずつ起動すると、プロジェクトが非常に多い場合、docker composeはdockerコンテナクラスタの迅速な編成を担当するプロファイルです.ユーザーが個別のdocker-compose.ymlファイルを使用して、関連するアプリケーションコンテナのセットをプロジェクトとして定義できるようにします.
インストール:
pip install docker-compose
docker-compose.ymlファイルで、プロシージャを記述します.https://blog.51cto.com/wutengfei/2156792
起動:cdからYAMLファイルがあるフォルダへ、コマンドdocker-compose upを実行
docker-compose up-dバックグラウンド運転
docker-compose downの実行を停止
Docker Volume:タンクデータボリューム
dockerデータの持続化は、コンテナの終了に伴って終了することなく、再利用可能であり、コンテナ間のデータを共有する.Volume , , .
マウント:docker run-it-v my-volume:/mydata alpine sh(containerの/mydataディレクトリにmy-volumeをマウント)
     

docker run -v            
docker run -d --name nginx -v /usr/share/nginx/html nginx
  nginx  ,  -v      ,  -d    ,  --name       

docker inspect     
docker inspect nginx
          

  Mounts    Sources   Destination    
        Sources            Destination     

cd Sources       
vim index.html,  index.html  

docker exec -it      /bin/bash
       

cd Destination       
    index.html  ,           ,     ,      

     

docker run -v $PWD/code:/var/www/html nginx
                  
docker run -p 80:80 -d -v $PWD/html:/usr/share/nginx/html nginx

cat html/index.html
         

docker exec -it      /bin/bash
       

cat /usr/share/nginx/html/index.html
               ,       

     

docker run --volumes-from ...

mkdir data
docker create -v $PWD/data:/var/mydata --name data_container ubuntu
           

docker run -it --volumes-from data_container ubuntu /bin/base
         ,            

mount
cd mydata
touch whatever.txt
exit

cd data
ls
    data      whatever.txt  
              ,      

Docker Swarm交通ハブクラスタ管理ツールで、いくつかのDockerホストを1つの全体として抽象化し、1つのエントリを通じてこれらのDockerホスト上の様々なDockerリソースを統一的に管理することを主な役割としています.
Docker Registryミラー倉庫4 S店
docker pull     
            
docker push