Docker基本制御コマンド(二)


Docker基本制御コマンド(二)
しげんせいぎょ
CPU使用率制御
ミラーの作成を制限するコンテナは、総リソースの最大10%しか占めません.docker run --cpu-quota 10000 centos
比例配分
2つのコンテナをc 1とc 2として作成する、この2つのコンテナのみであれば、c 1とc 2のCPUリソースの割合が33.3%と66となるようにコンテナの重みを設定.7% docker run -itd --name c1 --cpu-shares 512 centos( ) docker run -itd --name c2 --cpu-shares 1024 centos( )
コンテナ使用指定のCPUを制限する
このミラーに4つのCPUの使用を指定します.docker run --name c3 --cpuset-cpus 0001,0010,0100,1000 centos
メモリ使用制限が確立されたコンテナは、最大1 GBのメモリdocker run --name c4 -m 1gb centosしか使用できません.
制限容器読取ディスク機器のデータ量制限この容器がsdaディスクの100 mbのデータのみを読み取ることができるdocker run -d --device-read-bps /dev/sda:100mb centosコンテナのディスクへの書き込みを制限/デバイスのデータ量sdaディスクの100 mbのみを書き込むことができるコンテナのデータdocker run -d --device-write-bps /dev/sda:100mb centosコンテナがディスクを読み取る回数を制限します.このコンテナはsdaディスクを10回しか読めません.docker run -d --device-read-iops /dev/sda:10 centosコンテナがディスクに書き込まれる回数を制限/デバイスがsdaディスクにのみ書き込まれる10回のdocker run -d --device-write-iops /dev/sda:10 centosDockerデータボリューム、データボリュームコンテナ
データ・ボリュームの作成(コンテナ・ディレクトリとホスト・ディレクトリ間のデータ共有)
インタラクティブモードでデータボリュームを作成docker run -v : --name -it /bin/bash
「-v」指定データボリューム
「-name」で新しく作成されたコンテナ名
/var/www:/data 1の前はホストディレクトリ、後者はコンテナディレクトリ(全体的に関連プロセスの確立)
データボリュームコンテナの作成(ホスト環境に関係なく、2つのコンテナ間でデータ共有を実現)
インタラクティブモードでコンテナを構築し、ディレクトリをデータボリュームコンテナベクターとして提供するdocker run -v ...... --name -it /bin/bash
スペースを提供するコンテナのデータボリュームを新しいコンテナにマウントしてデータボリュームコンテナを作成docker run --volumes-from --name -it /bin/bash
Dockerパーソナルミラーの作成
既存のミラーに基づいて新しいミラーを作成
ローカルテンプレートに基づいて新しいミラーを作成
Dockerfileに基づいて新しいミラーを作成
既存のミラーに基づいて新しいミラーを作成
#作成コンテナdocker create -it centos /bin/bash#新しいミラーdocker commit -m "new" -a "zhy" -p ccbd1395fce9( ID/ ) ccos:new( : )●-m説明情報●-a作成者情報●-p生成中にコンテナの運転を停止
ローカルテンプレートに基づいて新しいミラーを作成
#ミラーテンプレートwget http://download.openvz.org/teuplate/precreated/debian-7.0-x86-minimal.tar.gzをダウンロード#新しいミラーcat debian-7.0-x86-minimal.tar.gz | docker import - daoke:newを生成
Dockerfileに基づいて新しいミラーを作成
mkdir apache
cd apache

vim Dockerfile
#       
FROM centos
#         
MAINTAINER The porject 
#        apache  
RUN yum- y update
RUN yum -y install httpd
#  80  
EXPOSE 80
#        
ADD index. html /var/www/html/index. html
#           
ADD run. sh /run. sh
RUN chmod 755 /run. sh
#         .
CMD[" /run. sh"]

vim run.sh
#!/bin/bash
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUP
echo "web test" > index.html
//    
docker build -t httpd:centos .
//       
docker run -d -p 1216:80 httpd:centos

Dockerポートマッピング
コンテナ内のランダムポートをマッピング(マッピング範囲:49000~49900)
[root@localhost ~]# docker run -d -P httpd:centos      
0820d042e62294c0db107eef0fea8c2c1fca737acb8d91306a6d40e134332bde
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS                   NAMES
0820d042e622        httpd:centos        "/run.sh"           2 seconds ago       Up 1 second                 0.0.0.0:32768->80/tcp   epic_jennings

コンテナ内の指定したポートをマッピングする
[root@localhost ~]# docker run -d -p 5566:80 httpd:centos
9f65fc007070f36df88304515232a0d5fa357e55926a5f06b48cdf359e6ec9b8
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS                  NAMES
9f65fc007070        httpd:centos        "/run.sh"           4 seconds ago       Up 4 seconds                0.0.0.0:5566->80/tcp   intelligent_nightingale

コンテナ間の相互接続
docker run -itd -P --name web1 centos /bin/bash                      //         web1,       
docker run -itd -P --name web2 --link web1:web1 centos /bin/bash                    //         web2,

Dockerプライベートウェアハウス
[root@localhost tomcat]# docker pull registry              //         
[root@localhost nginx]# vim /etc/docker/daemon.json
//        
{
  "insecure-registries" : ["192.168.142.77:5000"],                       //      
  "registry-mirrors" : ["https://abc123.mirror.aliyuncs.com"]
}

//  docker
[root@localhost nginx]# systemctl stop docker
[root@localhost nginx]# systemctl start docker

//          
[root@localhost nginx]# docker create -it registry /bin/bash
96f91f83a1d58ddee147fe3d141d27d69fa7d3d76c46e3783bef7c1c5d0339bb
[root@localhost nginx]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                                                                                                                PORTS               NAMES
96f91f83a1d5        registry            "/entrypoint.sh /bin…"   5 seconds ago       Created                                                                                                                                   sweet_almeida

[root@localhost nginx]# docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry

//      (        )
[root@localhost nginx]# docker tag nginx:zhy 192.168.142.77:5000/nginx:zhy

//    
[root@localhost nginx]# docker push 192.168.142.77:5000/nginx:zhy