はじめに
Dockerは、アプリケーションのパッケージ形式と、アプリケーションチームがDocker形式のコンテナーイメージを所有できるようにする統合インターフェイスと方法論の両方として非常に重要な役割を果たしています(注:すべての依存関係を含むと想定されています)。これにより、Dockerはマイクロサービスの主要なフロントランナーの1つになりました。 およびマイクロサービスベースの適応と使用法。
DockerおよびDockerベースのユーティリティの多くは、 Dockerized を通じてアプリケーションのフットプリントを縮小することにより、スケーラビリティとパフォーマンスの効率を高めるのに役立ちます。 コンテナ。多くの場合、システムレベルの依存関係は最小限に抑えられ、MB(メガバイト)の観点からメモリ使用量を削減するのに役立ちます。
これらすべての側面は、Dockerを主要なコンテナベースのユーティリティの1つにするのに役立ちました。 Dockerには、多くのコマンドラインユーティリティと機能があります。 Docker Daemonは、これらの追加機能の多くを提供でき、Dockerの構成を容易にします。
また読む: Ubuntu 16.04 / 18.04 LTSにDocker(Community Edition)をインストールする方法
この記事の読者/ユーザーが、特定のLinux環境でdocker-containerをスピンオフする方法を知っていることを願っています。これを前提として、以下の機能のいくつかを説明します。
これらの機能の一部は、次の機能に使用できます。
- Dockerサーバー情報を確認する
- Dockerイメージとアップデートをダウンロードする
- コンテナを検査する
- ログの表示と監視
- さまざまな統計と詳細を監視する
1)現在のDockerバージョンを確認する方法
Dockerのバージョンを知ることは、これに応じてバージョンベースの決定の多くが行われるため、非常に重要な側面の1つです。
[メール保護]:〜$ sudo docker versionClient:バージョン:18.09.5 APIバージョン:1.39 Goバージョン:go1.10.8 Git commit:Linux e8ff056ビルド:4月11日:43 / T amd64実験的:falseServer:Dockerエンジン-コミュニティエンジン:バージョン:18.09.5 APIバージョン:1.39(最小バージョン1.12)Goバージョン:go1.10.8 Git commit:2019年4月11日:e8ff056構築済み: linux / amd64実験的:false [メール保護]:〜$
上記の出力は、サーバーとクライアントの両方のAPIバージョンを同じものとして提供し、OSとアーキテクチャのバージョンも同じである必要があります。クライアントベースとサーバーベースのバージョンに不一致がある場合、クライアントサーバー通信は失敗します。サポートするバージョンが何であるかを確認し、それに応じて決定を下す必要があります。
2)サーバー情報の取得と分析
Docker情報を使用すると、次の情報も見つけることができます。収集できる有用な情報には、バックエンドとして実行されているサーバー、カーネルバージョン、OSとDockerルートディレクトリなどがあります。
[email protected]:〜$ sudo docker infoContainers:2 Running:1 Paused:0 Stopped:1Images:4Server Version:18.09.5Storage Driver:overlay2 Backing Filesystem:extfs Supports d_type:true Native Overlay Diff:trueLogging Driver:json -fileCgroup Driver:cgroupfsPlugins:Volume:local Network:bridge host macvlan null overlay Log:awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslogSwarm:inactiveRuntimes:runcDefault Runtime:runcInit Binary:docker-initcontainerd version:bb71b10fd8f fec3683セキュリティオプション:apparmor seccompプロファイル:defaultKernelバージョン:4.15.0-20-genericオペレーティングシステム:Ubuntu 18.04 LTSOSType:linuxArchitecture:x86_64CPUs:1Total Memory:1.947GiBName:linuxtechiID:VRUY:AWXX:7JWE:YWU7:X4QW:TNKE:6H :QFGI:XYRQ:QUXF:MTXCDockerルートディレクトリ:/ var / lib / dockerDebugモード(クライアント):falseDebugモード(サーバー):falseレジストリ:https://index.docker.io/ v1 / Labels:Experimental:falseInsecure Registry:127.0.0.0/8Live Restore Enabled:falseProduct License:Community Engine警告:スワップ制限のサポートなし[メール保護]:〜$
上記のすべての情報は、Dockerデーモンのセットアップ方法、基盤となるOSバージョン、およびファイルシステムタイプに基づいています。これらはすべて、次の一連のコマンドを使用してキャプチャできます。
以下のコマンドを実行して、OS名、そのバージョン、およびコード名を取得します
[メール保護]:〜$ cat /etc/lsb-releaseDISTRIB_ID=UbuntuDISTRIB_RELEASE=18.04DISTRIB_CODENAME=bionicDISTRIB_DESCRIPTION="Ubuntu 18.04 LTS" [メール保護]:〜$
または
[email protected]:〜$ cat / etc / *-releaseDISTRIB_ID =UbuntuDISTRIB_RELEASE =18.04DISTRIB_CODENAME =bionicDISTRIB_DESCRIPTION ="Ubuntu 18.04 LTS" NAME ="Ubuntu" VERSION ="18.04 LTS(Bionic Beaver)" ID =ubuntuID_LIKE =debian ="Ubuntu 18.04 LTS" VERSION_ID ="18.04" HOME_URL ="https://www.ubuntu.com/" SUPPORT_URL ="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad。 net / ubuntu / "PRIVACY_POLICY_URL =" https://www.ubuntu.com/legal/terms-and-policies/privacy-policy "VERSION_CODENAME =bionicUBUNTU_CODENAME =bionic [メール保護]:〜$
以下のコマンドを実行して、ファイルシステムの詳細を取得します:
[メール保護]:〜$マウント| grep "^ / dev" / dev / sda1 on / type ext4(rw、relatime、errors =remount-ro、data =ordered)[メール保護]:〜$
3)Dockerデーモン
Dockerデーモンは、Docker環境全体で非常に重要な役割を果たします。
適切なデーモンがないと、完全なDockerシステムは役に立ちません。次のコマンドを使用してデーモンのステータスを確認できます
注 :-適切なDockerのインストールが行われたと仮定します
[メール保護]:〜$ sudo service docker status
Dockerサービスが実行されている場合、上記のコマンドの出力は次のようになります。
Dockerサービスが実行されていない場合は、以下のコマンドを使用して開始します
[メール保護]:〜$ sudo systemctl start dockeror [メール保護]:〜$ sudo service docker start [メール保護]:〜$
以下の「dockerps」を使用してください 」コマンドを実行して、実行中のコンテナを一覧表示します
[メールで保護]:〜$ sudo docker psCONTAINERIDIMAGEコマンド作成済みe実行中および停止中のすべてのコンテナを一覧表示するには、「 docker ps -a」を使用します 」
<前> [電子メールが保護された]:〜$ sudoをドッキングウィンドウPS -aCONTAINER ID画像COMMAND STATUSポートを作成しNAMES497e6733d760 Ubuntuの "bashの" 19分前に終了しました(0)2分goofy_morse0862fe109f96のハローワールド前 "/ hello" を終了しました前19分(0 )19分前vibrant_shannon [メール保護]:〜$
Dockerのデフォルトのルートディレクトリは「/var/ lib/docker」
です。[メール保護]:〜$ sudo ls -l / var / lib / dockertotal 48drwx ------ 2 root root 4096 Apr 14 07:00 builderdrwx ------ 4 root root 4096 Apr 14 07 :00 buildkitdrwx ------ 4 root root 4096 Apr 14 07:09 containerdrwx ------ 3 root root 4096 Apr 14 07:00 imagedrwxr-x --- 3 root root 4096 Apr 14 07:00 networkdrwx ------ 16 root root 4096 Apr 14 07:27 overlay2drwx ------ 4 root root 4096 Apr 14 07:00 pluginsdrwx ------ 2 root root 4096 Apr 14 07:27 runtimesdrwx-- ---- 2 root root 4096 Apr 14 07:00 swarmdrwx ------ 2 root root 4096 Apr 14 07:27 tmpdrwx ------ 2 root root 4096 Apr 14 07:00 trustdrwx ---- --2ルートルート40964月14日07:00ボリューム[メール保護]:〜$
Dockerデーモンが起動していない場合は、次のコマンドを使用して呼び出すことができます。
[メール保護]:〜$ sudo dockerd
上記のdockerdの出力 コマンドは次のようになります:
また読む:CentOS7にDockerをインストールする方法
4)Dockerコンテナイメージのダウンロードとコンテナの検査
[メール保護]:〜$ sudo docker pull ubuntu:latestデフォルトタグの使用:latestlatest:ライブラリからのプル/ ubuntu898c46f3b1a1:プルcomplete63366dfa0a50:プルcomplete041d4cd74a92:プルcomplete6e1becstate:Download [メール保護]:〜$ latest:ライブラリからプル/ ubuntu898c46f3b1a1:プルcomplete63366dfa0a50:プルcomplete041d4cd74a92:プルcomplete6e1bee0f8701:プルcompleteDigest:sha256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8cコンテナの起動、例を以下に示します
<前> [Eメール保護]:〜$ sudoをドッキングウィンドウで実行-d -t Ubuntuの/ binに/ bash58c023f0f5689ff08b858221ca10c985936a8c9dd91d08e84213009facb64724 [メール保護]:〜$ [Eメール保護]:〜$ sudoをドッキングウィンドウpsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES58c023f0f568 Ubuntuの「/ binに/ bash"27秒前最大26秒boring_dijkstra[メール保護]:〜$
次のコマンドを使用して、このコンテナを調べてみましょう。
[メール保護]:〜$ sudo docker inspect 58c023f0f568 [{"Id": "58c023f0f5689ff08b858221ca10c985936a8c9dd91d08e84213009facb64724"、6.2"パス"/ " "、"引数 ":[]、"状態 ":{"ステータス ":"実行中 "、"実行中 ":true、 false、「Pid」:15538、「ExitCode」:0、「エラー」:「」、「StartedAt」:「0001edAt」:「2019-04-14T06:55:27.142274111Z」、「 :00Z "}、"画像 ":" sha256:94e814e2efa8845d95b2112d54497fbad173e45121ce9255b93401392f538499 "、"ResolvConf538……69……b……82……c103 …………
注:-このコマンドの出力が大きすぎるため、このコマンドの完全な出力はここには表示されていません
5)実行中のコンテナイメージの内部に入る
Dockerは元々LXCバックエンドに基づいてすべてを使用していたことを知っているので、Linuxのlxc-attachコマンドはかなり長い間使用されていました。しかし、dockerがスタンドアロンパッケージとしてビルドされ、「 libcontainer」の使用を開始すると 」をデフォルトのバックエンドとして、「dockerexec」コマンドの使用法が一般的になりました
以下の一連のコマンドは、コマンドラインを使用してコンテナにログインする方法を説明しています。
:〜$ sudo docker exec -t
[メール保護]:〜$ sudo docker exec -t 58c023f0f568ls-a。 MNTのprocの実行のSRVのtmp VAR lib64を.dockerenvブーツなどのlibメディアオプトルートsbinにSYS USR ..ビンのdevのホーム[電子メールの保護]:〜$ sudoのドッキングウィンドウのexec -t 58c023f0f568 PS -efUID PID PPID C STIME TTY TIME CMDroot 1 0 0 06 :55 pts / 0 00:00:00 / bin / bashroot 20 0 07:17 pts / 1 00:00:00 ps -ef [メール保護]:〜$
コンテナ内でコマンドを実行する別の方法は、最初に「 dockerattach」を使用してコンテナにログインすることです。 」をクリックしてからコマンドを実行します
:〜$ sudo docker attach
[メール保護]:〜$ sudo docker attach 58c023f0f568 [メール保護]:/#
コンテナを起動してボリュームをアタッチし、コンテナを終了すると自動的に削除される場合があります。例を以下に示します
[email protected]:〜$ sudo docker run -it --rm -v / usr / local / bin:/ target jpetazzo / nsenter bash [email protected]:/ src#df -h / target/Filesystem使用するサイズAvail Use%Mounted on / dev / sda1 18G 5.6G 12G 34%/ target [email protected]:/ src#exitexit [email protected]:〜$
次に、コンテナを終了するときにdockerが自動的に削除されるかどうかを確認し、「dockerps」を実行します
<前> [Eメール保護]:時間boring_dijkstraについてアップ前の時間について〜$ sudoをドッキングウィンドウpsCONTAINER CREATED ID画像COMMAND STATUSポートNAMES58c023f0f568 Ubuntuの "/ binに/ bashの" [Eメール保護]:〜$6)Dockerの監視
「dockerstats」を使用します 」コマンドを使用して、すべてのコンテナのリソース使用率を表示します。
[電子メールが保護された]:〜$ sudoをドッキングウィンドウstatsCONTAINER ID NAME CPU%MEMの使用法/ LIMIT MEM NET I / OブロックI / O PIDS58c023f0f568 0.00%1.059MiB / 1.947GiB 0.05%4.75kB / 0B 4.74メガバイト/ 0Bをboring_dijkstra% 〜$:1CONTAINER ID NAME CPU%MEMの使用量は/ LIMIT MEM%のNET I / OブロックI / O PIDS58c023f0f568 0.00%が1.059MiB / 1.947GiB 0.05%4.75kB / 0B 4.74メガバイト/ 0B 1 [Eメール保護] boring_dijkstra
7)Dockerイベント
Dockerイベントをキャプチャすることは、さまざまなDocker操作と発生しているイベントに関する情報を提供するため、何度も重要になります。以下は同じもののスナップショットです。
[メール保護]:〜$ sudo docker events2019-04-14T09:29:07.636990738 + 01:00 image pull wordpress:latest(name =wordpress)2019-04-14T09:29:46.936676431 + 01:00 volume create 36187e0a44d277439fea0df2446fc44987fa814c52744091929e5c81bd8134e5(ドライバ=ローカル)2019-04-14T09:29:46.998798935 + 01:00コンテナはb97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058作成(画像=ワードプレス、名前=friendly_heisenberg)2019-04-14T09:29:47.000202026 + 01:00コンテナはb97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058(画像を添付=wordpress、name =friendly_heisenberg)2019-04-14T09:29:47.209257002 + 01:00 network connect 18dd93c3c6fc9ce51a98f7d2359b319db251efcae6b991157965ef727a580702(container =b97f6a565c518eb1464cf81e6e09db1acfd84a0dc 36187e0a44d277439fea0df2446fc44987fa814c52744091929e5c81bd8134e5(container =b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058、destination =/ va r / www / html、driver =local、propagation =、read / write =true)2019-04-14T09:29:47.942997316 + 01:00 container start b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058(image =wordpress、name =friendly_heisenberg)2019-04-14T09: 29:47.944521098 + 01:00コンテナサイズ変更b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058(height =39、image =wordpress、name =friendly_heisenberg、width =130f182e wordpress、name =friendly_heisenberg)2019-04-14T09:30:00.147435896 + 01:00ネットワーク切断18dd93c3c6fc9ce51a98f7d2359b319db251efcae6b991157965ef727a580702(container =b97f6a565c518eb1464cf81e6e09db1acfd84a0dc 36187e0a44d277439fea0df2446fc44987fa814c52744091929e5c81bd8134e5(container =b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058、driver =local)……… ………
結論
これらすべてのコマンドとユーティリティの組み合わせは、Dockerとコンテナをマイクロサービスベースの環境で成功させるために非常に重要です。マイクロサービスアーキテクチャの多くは、毎日の使用でデバッグ、理解、および詳細を知るためにこれらの種類のユーティリティを必要とするため、この記事がそのような場合に役立つことを願っています。
また読む: docker-composeをインストールして使用し、CentOS7にコンテナーをデプロイする方法