この記事では、Docker コア技術のコンテナー操作、Dockerfile の詳細な説明など、関連する質問をいくつか紹介します。お役に立てれば幸いです。
##2. Docker のインストール
3. コンテナ操作
##開始:終了したコンテナを開始します
コンテナの停止
コンテナプロセスの表示
#docker ps##docker Inspection
docker cp file1
#docker はコンテナを終了し、コンテナを閉じます: exit
: 形式:
From & LT; Image & GT FROM
From & LT; Image & GT;@& LT; Digest & GT;
## 例:## Ubuntu
#AINTAINER: メンテナンス情報
MAINTAINER
例
MAINTAINER リボン
RUN: コマンドイメージのビルド時に実行 シェル実行: RUN
実行: RUN ["executable", "param1", "param2" "]
例:
RUN apk update
RUN ["/etc/execfile", "arg1", "arg2"]
RUN apt-get update && apt 2 つのコマンド -get install は常に && で接続されます。そうでない場合、apt-get update ビルド層がキャッシュされ、新しいパッケージのインストールに失敗します
ADD: ローカル ファイルをコンテナに追加します。tar
ADD < ;src> ...
例:
ADD bin/amd64/httpserver /httpserver
COPY: この関数は ADD と似ています。ただし、ファイルは解凍されず、ネットワーク リソースにアクセスできませんFormat :
COPY 例: COPYbin/amd64/httpserver /httpserver CMD ["executable","param1","param2"] (実行可能ファイルを実行、優先順位) CMD コマンド param1 param2 (シェル内部コマンドの実行) ["ethtool", "--help"] CMD echo "1111" ENTRYPOINT ["executable", "param1", "param2"] (実行ファイル、優先度) ENTRYPOINT /httpserver CMD [-c] Format:
例: 。 形式:
例:#形式:
ラベル
ENV: 環境変数を設定します
EXPOSE: 外部インタラクションを指定しますポート
VOLUME: 永続化ディレクトリの指定に使用されます
USER: 実行を指定しますコンテナのユーザー名または UID、およびその後の RUN でも、指定されたユーザーが使用されます。
USER uid
USER uid:gid
USER ユーザー:gid
USER uid:group
例:
USER www
ARG: ビルド ランタイムに渡される変数を指定するために使用されます
ARG build_user=ribbon
#
Linux NameSpace_Frank_Abagnale のブログ - CSDN ブログ この記事では、詳細について説明します。この記事を参照してください。
lsns -t
ls -la /proc/
nsenter -t
# Set cpuquota
成功が 200% を占めることがわかります。CPU リソースは 1% に減少します。
プロセスを cgroups 構成グループに構成します
最大メモリ サイズを設定します。# OOM によってプログラムが強制終了されるのを待機しています。dmesg は強制終了情報を確認できます。
注: 自己作成した cgroup フォルダーを削除するには、cgroup-tools
# を使用する必要があります。
#7. Union FSDocker で使用されているテクノロジーはすべて Linux テクノロジーから派生したものであり、革新的なものはなく、Docker の革新的な点はファイル システムです。
の図 Docker イメージの設計には、レイヤーの概念が導入されています。つまり、ユーザーのイメージ作成操作の各ステップでレイヤー、つまり増分 rootfs (ディレクトリ) が生成され、アプリケーション A とアプリケーション B が配置されているコンテナーが同じ ubuntu オペレーティング システム レイヤーとGolang 環境層 (読み取り専用層) には、それぞれ独自のアプリケーション層と書き込み可能層があります。コンテナーを起動するときに、コンテナーのルート ファイル システムとして UnionFS を介して関連するレイヤーをディレクトリにマウントします。
#3. コンテナ ストレージ ドライバー 4. Union FS をシミュレートして、効果overlay マウント方法 を使用して実験を行います。overlayfs は 3 つのディレクトリを通過します。上位ディレクトリと作業ディレクトリが実装されています。下位ディレクトリは複数存在できます。作業ディレクトリは基本的な作業ディレクトリです。マウント後、内容はクリアされ、使用中にその内容はユーザーには表示されません。最後に、ジョイントユーザーに表示される統合されたビューは、マージされたディレクトリと呼ばれます。
次のコマンドを実行します:mkdir upper lower merged work echo "lower" > lower/in_lower.txt echo "from lower" > lower/in_both.txt echo "from upper" > upper/in_both.txt echo "upper" > upper/in_upper.txt path=$(pwd) mount -t overlay overlay -o lowerdir=${path}/lower,upperdir=${path}/upper,workdir=${path}/work ${path}/merged## オーバーレイ ストレージ ドライバー ファイルが次のコマンドを使用してマウントされていることがわかります。効果。実験終了後、環境を復元するには、まずマージされたディレクトリをアンマウントし、次に 4 つのディレクトリを削除する必要があります。他のディレクトリを先に削除すると、rm: 'merged/' を削除できません: Device or resource Busy が表示される場合があります。そのため、マージされたディレクトリは削除されません。
8. Docker ネットワーク
$ yum install Bridge-utils
Ubuntu システム:
$ apt-get install Bridge-utils
2. Docker ネットワーク モード
Docker ネットワーク論理図ブリッジと NAT
4) コンテナ モード: --net=container:NAME_or_ID を使用して指定します。他のコンテナのネットワーク構成を利用する
# ネットワークモード図はおおよそ以下のとおりです3. Docker の動作をシミュレートしてネットワーク ブリッジを開始します
nginx Docker で eth0 ネットワーク デバイスを生成する
# nginx はアクセスできます
#使用後に指定された nat ルールを削除します
推奨される学習: 「以上がDockerコアテクノロジーを最も体系的に習得(概要の共有)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。