コンテナランタイム: Containerd コンテナ管理

コンテナランタイム: Containerd コンテナ管理

基本的なコンテナ操作

コンテナの基本的な操作は主にctr imageコマンドです。コマンドヘルプを参照してください:

 [root@localhost ~]# ctr containers -h NAME: ctr containers - Manage containers USAGE: ctr containers command [command options] [arguments...] COMMANDS: create Create container delete, del, remove, rm Delete one or more existing containers info Get info about a container list, ls List containers label Set and clear labels for a container checkpoint Checkpoint a container restore Restore a container from checkpoint OPTIONS: --help, -h show help

静的コンテナの作成

作成する:

 [root@localhost ~]# ctr container create docker.io/library/nginx:alpine nginx

nginx がコンテナ名を指定し、ctr container create コマンドを使用してコンテナを作成した後、コンテナは実行状態ではなく、単なる静的コンテナになります。このコンテナ オブジェクトには、コンテナの実行に必要なリソースと構成のデータ構造のみが含まれます。たとえば、名前空間、rootfs、コンテナ構成は正常に初期化されていますが、ユーザー プロセス (この場合は nginx) はまだ開始されていません。動的コンテナを取得するには、ctr タスク コマンドを使用する必要があります。

コンテナを表示

[root@localhost ~]# ctr container ls CONTAINER IMAGE RUNTIME nginx docker.io/library/nginx:alpine io.containerd.runc.v2

名前のみを表示するには、-q オプションを追加します。

 [root@localhost ~]# ctr container ls -q nginx

次のように略記することもできます。

 [root@localhost ~]# ctr c ls -q nginx

docker inspect 関数と同様に、コンテナの詳細な構成を表示します。

 [root@localhost ~]# ctr container info nginx

コンテナの削除

[root@localhost ~]# ctr container rm nginx [root@localhost ~]# ctr container ls CONTAINER IMAGE RUNTIME

コンテナタスク

上記の container create コマンドで作成したコンテナは実行状態ではなく、単なる静的コンテナです。コンテナ オブジェクトには、コンテナを実行するために必要なリソースと関連する構成データのみが含まれており、名前空間、rootfs、コンテナ構成は正常に初期化されているが、ユーザー プロセスはまだ開始されていないことを示します。コンテナの実際の操作はタスクによって実現されます。タスクは、コンテナのネットワーク カードをセットアップし、コンテナを監視するツールを構成できます。コンテナを操作するとき、実際にはコンテナ プロセスを操作しています。

1. 静的コンテナが動的コンテナとして起動する

ctr task コマンドを使用して、静的コンテナを動的コンテナとして起動します。タスク関連の操作は、ctr タスクを通じて取得できます。次のように、Task を通じてコン​​テナを起動します。

 [root@localhost ~]# ctr task start -d nginx

-d はコマンドライン オプションであり、完全な名前は --detach です。このオプションは、ctr タスク開始コマンドに、タスクを開始した後すぐに戻り、タスクをバックグラウンドで実行したままにするように指示します。

2. コンテナプロセスを表示する

実行中のコンテナ プロセスを表示するには、task ls を使用します。

 [root@localhost ~]# ctr task ls TASK PID STATUS nginx 22945 RUNNING

ps を使用すると、最初の PID 23181 がコンテナ内のプロセス番号 1 であることがわかります。

 [root@localhost ~]# ctr task ps nginx PID INFO 23181 - 23208 -

物理マシンのプロセスを確認すると、対応するプロセス ID 23181 と 23208 が見つかります。これらは次のようにマップできます。

 [root@localhost ~]# ps -aux|grep nginx root 23159 0.0 2.1 722644 20916 ? Sl 13:01 0:00 /usr/local/bin/containerd-shim-runc-v2 -namespace default -id nginx -address /run/containerd/containerd.sock root 23181 0.0 0.5 8904 5120 ? Ss 13:01 0:00 nginx: master process nginx -g daemon off; 101 23208 0.0 0.2 9400 2256 ? S 13:01 0:00 nginx: worker process root 23266 0.0 0.2 112836 2332 pts/3 S+ 13:15 0:00 grep --color=auto nginx

3.ターミナル操作を実行する

[root@localhost ~]# ctr task exec --exec-id 0 -t nginx sh / # ls bin docker-entrypoint.d etc lib mnt proc run srv tmp var dev docker-entrypoint.sh home media opt root sbin sys usr / # pwd /

ここで、--exec-id パラメータは exec プロセスの ID を設定することに注意してください。一意であれば任意の ID を入力できます。 $RANDOM 変数を使用することもできます。

4. 動的コンテナを実行する

[root@localhost ~]# ctr run -d --net-host docker.io/library/nginx:alpine nginx2 [root@localhost ~]# ctr c ls CONTAINER IMAGE RUNTIME nginx docker.io/library/nginx:alpine io.containerd.runc.v2 nginx2 docker.io/library/nginx:alpine io.containerd.runc.v2 [root@localhost ~]# ctr task ls TASK PID STATUS nginx 23181 RUNNING nginx2 23339 RUNNING
  • -d はデーモンを意味し、バックグラウンドで実行されます
  • --net-host はコンテナの IP がホストの IP であることを意味します (Docker のホスト型ネットワークに相当)

5. コンテナに入る

[root@localhost ~]# ctr task exec --exec-id 1 -t nginx2 /bin/sh / # ifconfig eno16777736 Link encap:Ethernet HWaddr 00:0C:29:AD:FC:E9 inet addr:192.168.36.137 Bcast:192.168.36.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fead:fce9/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2304427 errors:0 dropped:0 overruns:0 frame:0 TX packets:462774 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3259139229 (3.0 GiB) TX bytes:182005861 (173.5 MiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:696 (696.0 B) TX bytes:696 (696.0 B) / # curl 192.168.36.137 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> html { color-scheme: light dark; } body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html>

コンテナプロセスを一時停止する

docker pause と同様の機能:

 [root@localhost ~]# ctr task pause nginx

一時停止後、コンテナのステータスは PAUSED になります。

 [root@localhost ~]# ctr task ls TASK PID STATUS nginx 22945 PAUSED

コンテナプロセスの回復

コンテナを再開するには、resume コマンドを使用します。

 [root@localhost ~]# ctr task resume nginx [root@localhost ~]# ctr task ls TASK PID STATUS nginx 22945 RUNNING

コンテナプロセスを強制終了する

ctr にはコンテナを停止する機能はありません。コンテナ プロセスを一時停止または強制終了することしかできません。次に、コンテナを削除するときに、task kill コマンドを使用してコンテナ プロセスを強制終了します。

 [root@localhost ~]# ctr task kill nginx [root@localhost ~]# ctr task ls TASK PID STATUS nginx 22945 STOPPED

プロセスの削除

コンテナを強制終了すると、コンテナのステータスが STOPPED に変わったことがわかります。 task rm コマンドを使用してタスクを削除することもできます。

 [root@localhost ~]# ctr task rm nginx [root@localhost ~]# ctr task ls TASK PID STATUS

コンテナはプロセスが削除された後にのみ削除できます。

 [root@localhost ~]# ctr c rm nginx

コンテナプロセスリソースの表示

さらに、コンテナの cgroup 関連の情報も取得できます。タスク メトリック コマンドを使用して、コンテナのメモリ、CPU、PID の制限と使用量を取得できます。

 # 重新启动容器[root@localhost ~]# ctr task start -d nginx [root@localhost ~]# ctr task metrics nginx ID TIMESTAMP nginx seconds:1701925304 nanos:694970440 METRIC VALUE memory.usage_in_bytes 2592768 memory.limit_in_bytes 9223372036854771712 memory.stat.cache 258048 cpuacct.usage 21976291 cpuacct.usage_percpu [21976291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] pids.current 2 pids.limit 0

<<:  Zolvit が Linode でクラウド コストを 50% 削減した方法

>>:  エッジコンピューティングとデータサイエンス: IoT デバイスの強化

推薦する

タオバオの中小販売業者の生活はますます悲惨になっています!それはすべてあなた自身のせいですか?

誰もが今同じような考えを持っているに違いありません。つまり、タオバオとTmallでビジネスをするのは...

alphavps - 年間 12 ユーロ / メモリ 1g / CPU 2 個 / SSD 15g / コンピュータ ルーム 5 室 (オプション)

AlphaVPS は 2017 年に設立されました。現在までに、VPS 用のオプション データ セン...

キーワードランキングが3ページ目に留まる問題の解決策

多くのSEO担当者がこの問題に遭遇したことがあると思います。キーワードはBaiduの自然順位で21位...

友好的なリンクを交換する原則: 少ないほど良い、質がより重要、量の方が慎重

フレンドリーリンクは、ウェブサイトの宣伝と運営に不可欠な要素の 1 つです。誰もが独自の理解を持って...

ほとんどのリベートウェブサイトはねずみ講に関与しており、すぐに現金を返金することはできない

最近、「福州100%事件」と「温州百業連盟事件」が各界から大きな注目を集めています。 両事件とも、リ...

杭州Siyiou SEO最適化会社紹介

Siyiou は杭州にある SEO 最適化会社です。Siyiou は 2003 年に設立されました。...

ホストラウンド: $30/I3-2100/4GB メモリ/500GB ハードドライブ/50TB トラフィック/リースウェブ データセンター/オランダ

Hostround はアメリカのホスティング会社です。主な業務はサーバーのレンタルですが、仮想ホステ...

百度、集約ページに対抗するため金鋒アルゴリズムを導入

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス百度は昨夜、公式アカウン...

インテリジェントな倉庫管理がトレンドとなり、Huiceは企業のデジタル変革の加速器となる

香港証券取引所で今年上半期に最も重要な新規株式公開(IPO)の一つとなったJD Logisticsは...

hostyun: 中秋節 VPS イベント、全品 12% オフ、すべてのハイエンド ライン、オプションには香港/韓国/日本/米国/ロシアが含まれます

Hostyunは特別な中秋節イベントを開始しました: (1) すべてのデータセンターのすべてのVPS...

サイバーマンデーVPSセールの概要

一般的に言えば、VPS 業界はこれらのいわゆるローエンダーによって台無しにされており、通常の価格は底...

ChinaJoyから2018年のゲーム業界を展望します!

今年のChinaJoyでは、私たちがよく知っているシーンが多く上演されたが、「一見微妙だが、実は大き...

中国青年報:なぜ代表チームはインターネットが苦手なのか

数億ドルをかけて3年間も運用されてきた国営検索エンジンですが、その市場シェアは1万分の1以下で、利用...

高い包含と高いランキングが高トラフィックを保証するかどうかを分析しますか?

著者は最近、図 1 に示すように、インデックスが 27,000 に達し、スナップショットが昨日取得さ...