Docker基本制御コマンド(二)
5495 ワード
Docker基本制御コマンド(二)
しげんせいぎょ
CPU使用率制御
ミラーの作成を制限するコンテナは、総リソースの最大10%しか占めません.
比例配分
2つのコンテナをc 1とc 2として作成する、この2つのコンテナのみであれば、c 1とc 2のCPUリソースの割合が33.3%と66となるようにコンテナの重みを設定.7%
コンテナ使用指定のCPUを制限する
このミラーに4つのCPUの使用を指定します.
メモリ使用制限が確立されたコンテナは、最大1 GBのメモリ
制限容器読取ディスク機器のデータ量制限この容器がsdaディスクの100 mbのデータのみを読み取ることができる
データ・ボリュームの作成(コンテナ・ディレクトリとホスト・ディレクトリ間のデータ共有)
インタラクティブモードでデータボリュームを作成
「-v」指定データボリューム
「-name」で新しく作成されたコンテナ名
/var/www:/data 1の前はホストディレクトリ、後者はコンテナディレクトリ(全体的に関連プロセスの確立)
データボリュームコンテナの作成(ホスト環境に関係なく、2つのコンテナ間でデータ共有を実現)
インタラクティブモードでコンテナを構築し、ディレクトリをデータボリュームコンテナベクターとして提供する
スペースを提供するコンテナのデータボリュームを新しいコンテナにマウントしてデータボリュームコンテナを作成
Dockerパーソナルミラーの作成
既存のミラーに基づいて新しいミラーを作成
ローカルテンプレートに基づいて新しいミラーを作成
Dockerfileに基づいて新しいミラーを作成
既存のミラーに基づいて新しいミラーを作成
#作成コンテナ
ローカルテンプレートに基づいて新しいミラーを作成
#ミラーテンプレート
Dockerfileに基づいて新しいミラーを作成
Dockerポートマッピング
コンテナ内のランダムポートをマッピング(マッピング範囲:49000~49900)
コンテナ内の指定したポートをマッピングする
コンテナ間の相互接続
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 centos
Dockerデータボリューム、データボリュームコンテナデータ・ボリュームの作成(コンテナ・ディレクトリとホスト・ディレクトリ間のデータ共有)
インタラクティブモードでデータボリュームを作成
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