Dockerラーニングシリーズ1

15669 ワード

1.Dockerコンテナ学習
Docker依存Linuxカーネル特性
1.Namespaceネーミングスペース2.コントロールグループ
1.Namespaceネーミングスペース
  • PID(Progress ID)プロセス分離
  • NET(Network)管理ネットワークインタフェース
  • IPC(InterProcess Communication)プロセス間通信へのアクセスを管理する
  • MNT(Mount)管理マウントポイント
  • UTS(Unix Timessharing System)独立カーネルおよびバージョンID
  • Docker容器の能力
  • ファイルシステム分離:各コンテナには独自のrootファイルシステム
  • があります.
  • プロセス分離:各コンテナは、独自のプロセス環境で
  • で実行されます.
  • ネットワーク分離:コンテナ間の仮想ネットワークインタフェースとIPアドレスは別々の
  • である.
  • リソース分離およびパケット化:cgroupsを使用してCPUおよびメモリのようなリソースを各Dockerコンテナ
  • に個別に割り当てる.
    Dockerのインストールと構成
    インストール前の検出
    1.カーネルバージョン
    $uname -a
    

    2.デバイスマッパーの検出
    $ls -l /sys/class/misc/device-mapper
    

    Dockerインストール
    Docker Engine-CommunityをインストールDockerウェアハウスを使用して新しいホストにDocker Engine-Communityを初めてインストールする前に、Dockerウェアハウスを設定する必要があります.その後、Dockerをウェアハウスからインストールおよび更新できます.
    倉庫インストールに必要なパッケージを設定します.yum-utilsはyum-config-managerを提供し、device mapperストレージドライバにはdevice-mapper-persistent-dataとlvm 2が必要です.
    sudo yum install -y yum-utils device-mapper- persistent-data lvm2
    

    安定倉庫の設置
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    

    Docker Engine-Community最新バージョンのDocker Engine-Communityとcontainerdをインストールするか、次のステップに進んで特定のバージョンをインストールします.
    $ sudo yum install docker-ce docker-ce-cli containerd.io
    

    Dockerの起動
    sudo systemctl start docker
    

    ハローワールドイメージを実行してDocker Engine-Communityが正しくインストールされていることを確認します
    sudo docker run hello-world
    

    ##2.コンテナの基本操作起動コンテナ
    $docker run IMAGE [COMMAND] [ARG...]
    

    run新しいコンテナでコマンドを実行する
    インタラクティブコンテナの起動
    $docker run -i -t IMAGE /bin/bash
    -i --interactive=true | false     false
    -t --tty=true | false     false
    

    コンテナの表示
    $docker ps [-a] [-l]
    $docker inspect [name]
    

    カスタムコンテナ名
    $docker run --name=[   ] -i -t
    

    停止したコンテナを再起動
    $docker start [-i] [   ]
    

    停止したコンテナの削除
    $docker rm [   ]
    

    ##3.デーモンコンテナ
  • 長期許容可能な容器
  • 対話型セッションがない
  • アプリケーションおよびサービスの実行に適した
  • デーモンコンテナ1の起動
    $docker run -i -t /bin/bash
    Command+P Command+Q      
    

    デーモンコンテナ2の起動
    $docker run -d     [COMMAND] [ARG...]
    

    運転中のコンテナにアタッチ
    $docker attach [   ]
    

    コンテナログの表示
    $docker logs [-f] [-t] [--tail]    
    -f --follows=true | false    false #    
    -t --timestamps=true | false    false #     
    --tail="all" #         
    

    コンテナ内のプロセスの表示
    $docker top [   ]
    

    実行中のコンテナ内で新しいプロセスを開始
    $docker exec [-d] [-i] [-t]     [COMMAND] [ARG...]
    

    デーモンコンテナの停止
    $docker stop     #              
    $docker kill     #       
    

    ミラーの表示と削除
    ミラーのリスト
    $docker images [OPTIONS] [REPOSITORY]
    -a, --all=fasle #                  
    -f, --filter=[] #       
    --no-trunc=false #             ID
    -q, --quiet=false #        ID
    
    REPOSITORY   #           
    TAG         #       
    IMAGE ID   #     ID          
    CREATED   #       
    SIZE    #    
    

    ミラーの詳細の表示
    $docker inspect [OPTIONS] CONTAINER | IMAGE | [CONTAINER|IMAGE...]
    -f, --format=""
    

    ミラーの削除
    $docker rmi[OPTIONS] IMAGE [IMAGES...]
    -f, --force=false #    
    --no-prune=false #             
    

    ミラーの取得とプッシュ
    ミラーの検索
    [Docker Hub](https://register.hub.docker.com)
    
    $docker search [OPTIONS] TERM
    --automated=false #         docker
    --no-trunc=false
    -s, --stars=0 #         
    

    ミラーをプル
    $docker pull [OPTION] NAME [:TAG]
    -a, --all-tags=false #         
    

    --registry-mirrorオプション1を使用します.変更:/etc/default/docker 2.追加:DOCKER_OPTS="–registry-mirror=http://MIRROR-ADDR"
    プッシュミラー
    $docker push [IMAGE]
    

    ミラーの構築
  • 容器への変更を保存し、
  • を再度使用する.
  • カスタムミラー機能
  • は、サービスおよび実行環境
  • をソフトウェアとしてパッケージ化および配布する.
    $docker commit #      
    $docker build #   Dockerfile    
    
    $docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
    -a, --author="" #  
    -m, --message="" #    
    -p, --pause=true #          
    

    Dockerfileを使用したミラーの構築
  • Dockerfile
  • を作成する
  • $docker buildコマンド
  • を使用
    $docker build [OPTIONS] PATH | URL | 
    --force-rm=false
    --no-cache=false
    --pull=false
    -q, --quiet=false
    --rm=true
    -t, --tag=""
    

    ##DockerのC/Sモード接続方式
  • unix:///var/run/docker.sock
  • tcp://host:port
  • fd://socketfd

  • Dockerデーモンの構成と操作
  • デーモンの表示
  • $ps -ef | grep docker
    $sudo status docker
    

    サービスコマンドを使用した管理
    $sudo service docker start
    $sudo service docker stop
    $sudo service docker restart
    

    Dockerの起動オプション
    実行関連
    	-D, --debug=false
    	-e, --exce-driver="native"
    	-g, --graph="/var/lib/docker"
    	--icc=true
    	-l,--log-level="info"
    	--label=[]
    	-p,--pidfile="/var/run/docker.pid"
    

    Dockerサーバ接続関連
    -G, --group="docker" #   
    -H,--host=[]  #    
    --tls=false #        
    --tlscacert="/home/sven/.docker/ca.pem"
    --tlscert="/home/sven/.docker/cert.pem"
    --tlskey="/home/sven/.docker/key.pem"
    --tlsverify=false
    

    RemoteAPI関連
    --api-enable-cors=false
    

    ストレージドライバ関連
    -s, storage-driver=""
    --selinux-enabled=fasle
    --storage-opt=[]
    

    Registry相関
    --insecure-registry=[]
    --reigstry-mirror=[]
    

    ネットワーク関連の構成
    -b,--bridge=""
    --bip=""
    --fixed-cidr=""
    --fixed-cidr-v6=""
    --dns=[]
    --dns-serach=[]
    --ip=0.0.0.0
    --ip-forward=true
    --ip-masq=true
    --iptables=true
    --ipv6=false
    --mtu=0