Dockerクイックエントリーの詳細

8266 ワード

1.4 Dockerコンポーネント
1.4.1 Dockerサーバとクライアント
Dockerはクライアントサーバです(C/S)アーキテクチャー.DockerクライアントはDockerサーバまたはデーモンプロセスに要求を出すだけで、サーバまたはデーモンプロセスはすべての作業を完了し、結果を返します.DockerはコマンドラインツールDockerとRESTful APIのセットを提供します.同じホスト上でDockerデーモンプロセスとクライアントを実行したり、ローカルのDockerクライアントから接続したりすることができます.別のホスト上で実行されるリモートDockerデーモンプロセスを受信します.
1.4.2 Dockerミラーとコンテナ
ミラーリングはDockerを構築する礎です.ユーザはミラーに基づいて独自のコンテナを実行します.ミラーリングもDockerライフサイクルの「構築」セクションです.ミラーは、統合ファイルシステムに基づく階層構造であり、一連の命令によって一歩一歩構築されています.たとえば、ファイルを追加します.コマンドを実行します.ウィンドウを開きます.また、ミラーをコンテナのソースコードとして使用することもできます.ミラーは小型で、非常に「ポータブル」で、共有、ストレージ、更新が容易です.
Dockerは、独自のアプリケーションまたはサービスをコンテナにパッケージ化するだけで、コンテナの構築と導入を支援します.コンテナはミラーベースで起動され、コンテナで1つ以上のプロセスを実行できます.ミラーリングはDockerライフサイクルの構築またはパッケージングフェーズであり,コンテナは起動または実行フェーズであると考えられる.コンテナはミラーベースで起動され、コンテナの起動が完了すると、コンテナにログインして必要なソフトウェアまたはサービスをインストールできます.
1.4.3レジストリ(登録センター)
DockerはRegistryを使用してユーザーが構築したミラーを保存します.Registryは公共と私有の2種類に分かれています.Docker社が運営する公共のRegistryはDocker Hubと呼ばれています.
https://hub.docker.com/
2 Dockerのインストールと起動
2.1 Dockerのインストール
DockerはUbuntuに基づいてリリースされ、一般的にDockerで発生する問題はUbuntuが最初に更新またはパッチを適用するため、Ubuntuにインストールすることを推奨しています.多くのバージョンのCentOSでは、最新のパッチパッケージの更新はサポートされていません.
(1)yum       
    sudo yum update
(2)        , yum-util   yum-config-manager  ,     devicemapper     
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
(3)  yum     
    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(4)  docker
    sudo yum install docker-ce
(5)     docker  
    docker -v

2.2 ustcのミラーリングの設定
https://lug.ustc.edu.cn/wiki/mirrors/help/docker
     :
    vi /etc/docker/daemon.json  
           :
    {
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
    }

2.3 Dockerの起動と停止
Systemctlコマンドはシステムサービスマネージャコマンドです
  docker:
    systemctl start docker
  docker:
    systemctl stop docker
  docker:
    systemctl restart docker
  docker  :
    systemctl status docker
    :
    systemctl enable docker
  docker    
    docker info
  docker    
    docker --help

3共通コマンド
3.1ミラー関連コマンド
3.1.1ミラーの表示
docker images

REPOSITORY:ミラー名TAG:ミラーラベルIMAGE ID:ミラーID CREATED:ミラーの作成日(ミラーを取得した日付ではない)SIZE:ミラーサイズ
これらのミラーは、Dockerホストの/var/lib/dockerディレクトリに格納されます.
3.1.2ミラーの検索
docker search     

NAME:倉庫名DESCRIPTION:ミラー記述STARS:ユーザー評価、応答ミラーの人気度OFFICIAL:公式AUTOMATED:自動構築、このミラーがDocker Hub自動構築プロセスによって作成されたことを示す
3.1.3引き抜きミラー
                   
    docker pull     

3.1.4ミラーの削除
   ID    
    docker rmi   ID
      
    docker rmi `docker images -q`

3.2コンテナ関連コマンド
3.2.1コンテナの表示
         
    docker ps
      
    docker ps –a
           
    docker ps –l
       
    docker ps -f status=exited

3.2.2コンテナの作成と起動
コンテナの作成によく使用されるパラメータの説明:
      :
	docker run

-i:コンテナの実行を示します-t:コンテナが起動するとコマンドラインに入ります.この2つのパラメータを加えると、コンテナの作成にログインできます.疑似端末を割り当てます.–name:作成したコンテナに名前を付けます.-v:ディレクトリマッピング関係(前者はシンクホストディレクトリ、後者はシンクホストにマッピングされたディレクトリ)を表し、複数-vを使用して複数のディレクトリまたはファイルマッピングを行うことができます.注意:ディレクトリマッピングを行い、シンクホストで変更し、コンテナに共有することが望ましいです.-d:runの後に-dパラメータを付けると、デーモンコンテナがバックグラウンドで実行されます.(コンテナを作成すると自動的にコンテナにログインしません.-i-tの2つのパラメータのみを追加すると、作成後に自動的にコンテナに入ります).-p:ポートマッピングを表します.前者はシンクホストポートで、後者はコンテナ内のマッピングポートです.複数の-pを使用して複数のポートマッピングを行うことができます.
(1)コンテナをインタラクティブに作成する
    docker run -it --name=         :   /bin/bash
	      ps    ,           ,         
      
    exit

(2)デーモン方式でコンテナを作成する:
    docker run -di --name=         :  
         :
    docker exec -it      (    ID)  /bin/bash

3.2.3停止と起動容器
    :
    docker stop     (    ID)
    :
    docker start     (    ID)

3.2.4ファイルコピー
                   cp  
    docker cp                :    
              
    docker cp     :               

3.2.5ディレクトリマウント
コンテナを作成するときに、ホストのディレクトリとコンテナ内のディレクトリをマッピングすることで、ホストのディレクトリのファイルを変更してコンテナに影響を与えることができます.
コンテナの作成-vパラメータの後にシンクホストディレクトリ:コンテナディレクトリ、たとえば:
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7

マルチレベルのディレクトリを共有している場合は、権限不足のヒントが表示される可能性があります.
CentOS 7のセキュリティモジュールselinuxが権限を無効にしているため、マウントされているディレクトリに権限がないという問題を解決するためにパラメータprivileged=trueを追加する必要があります.
3.2.6コンテナIPアドレスの表示
                     
    docker inspect     (  ID) 
                IP  
    docker inspect --format='{{.NetworkSettings.IPAddress}}'     (  ID)

3.2.7コンテナの削除
       :
    docker rm     (  ID)

4アプリケーションの導入
4.1 MySQL配備
(1)  mysql  
    docker pull centos/mysql-57-centos7
(2)    
    docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

-pはポートマッピングを表し、フォーマットはホストホストマッピングポート:コンテナ実行ポート-eは環境変数MYSQL_を追加することを表す.ROOT_PASWORDはrootユーザーのログインパスワードです
(3)リモートログインmysql
ホストのIPに接続し、指定されたポートは33306です.
4.2 tomcat配備
(1)    
    docker pull tomcat:7-jre7
(2)    
      -p      
    docker run -di --name=mytomcat -p 9000:8080 
    -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7

4.3 Nginx配置
(1)    	
    docker pull nginx
(2)  Nginx  
    docker run -di --name=mynginx -p 80:80 nginx

4.4 Redisの導入
(1)    
    docker pull redis
(2)    
    docker run -di --name=myredis -p 6379:6379 redis

5移行とバックアップ
5.1コンテナをミラーとして保存
コンテナをミラーとして保存するには、次のコマンドを使用します.
docker commit mynginx mynginx_i

5.2ミラーバックアップ
ミラーをtarファイルとして保存するには、次のコマンドを使用します.
docker  save -o mynginx.tar mynginx_i

5.3ミラーのリカバリと移行
まずmynginxを削除しますimgミラーリング後、このコマンドを実行してリカバリします.
docker load -i mynginx.tar

-i入力ファイル
実行後にミラーを再度表示すると、ミラーが復元されていることがわかります.
6 Dockerfile
6.1 Dockerfileとは
Dockerfileは、ベースミラーに適用され、最終的に新しいミラーを作成する一連のコマンドとパラメータからなるスクリプトです.
1、開発者に対して:開発チームに完全に一致した開発環境を提供することができる;
2、テスト担当者に対して:開発時に構築したミラーを直接持つか、Dockerfileファイルを通じて新しいミラーを構築して作業を開始することができます.
3、運行メンテナンス人員の場合:配置時に、アプリケーションのシームレスな移植を実現できる.
6.2共通コマンド
コマンド#コマンド#
さぎょう
FROM image_name:tag
どのベースミラーを使用して構築プロセスを開始するかを定義します.
MAINTAINER user_name
ミラー作成者の宣言
ENV key value
環境変数の設定(複数書き込み可能)
RUN command
Dockerfileのコア部分です(複数書き込み可能)
ADD source_dir/file dest_dir/file
ホストホストのファイルをコンテナにコピーします.圧縮ファイルの場合、コピー後に自動的に解凍されます.
COPY source_dir/file dest_dir/file
ADDと似ていますが、圧縮ファイルがある場合は解凍できません
WORKDIR path_dir
作業ディレクトリの設定
6.3スクリプトによるミラーの作成
手順:
(1)ディレクトリの作成
mkdir –p /usr/local/dockerjdk8

(2)jdk-8 u 171-linux-x 64.tar.gzをダウンロードし、サーバ(仮想マシン)の/usr/local/dockerjdk 8ディレクトリにアップロードする
(3)ファイルDockerfile vi Dockerfileの作成
#       ID
FROM centos:7
#         
MAINTAINER ITCAST
#      
WORKDIR /usr
RUN mkdir  /usr/local/java
#ADD      jar, java      
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/

#  java    
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

(4)コマンドを実行してミラーを構築する
docker build -t='jdk1.8' 

後ろのスペースと点に注意し、省略しないでください
(5)ミラーが完成したかどうかを確認する
docker images

7 Dockerプライベートウェアハウス
7.1私有倉庫の構築と配置
(1)        (    )
    docker pull registry
(2)        
    docker run -di --name=registry -p 5000:5000 registry
(3)          http://192.168.184.141:5000/v2/_catalog  {"repositories":[]}                 
(4)  daemon.json
    vi /etc/docker/daemon.json
      ,    。
    {"insecure-registries":["192.168.184.141:5000"]} 
      docker        
(5)  docker   
    systemctl restart docker

7.2ミラーを私有倉庫にアップロードする
(1)             
    docker tag jdk1.8 192.168.184.141:5000/jdk1.8
(2)        
    docker start registry
(3)       
    docker push 192.168.184.141:5000/jdk1.8