コンテナランタイム: 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 デバイスの強化

推薦する

Shi Yuzhu 氏の企業文化に関する議論から SEO 最適化に関する洞察を得る

石玉珠は今年初めにインターネットの世界から姿を消しましたが、彼が率いたジャイアントグループが生み出し...

ウェブサイトのページで注意すべき4つの小さな詳細

月収10万元の起業の夢を実現するミニプログラム起業支援プランウェブサイトのページデザインは、ユーザー...

あなたは本当にユーザーを理解していますか? 彼らを変えることができないなら、私たちは製品を変えるしかありません。

少し前に、インターネットで「ダウングレード理論」という非常に人気のある記事を見ました。その大まかな考...

digitalocean出现未処理の検証チケットがすでにあります

最近、ある人から、DigitalOcean アカウントにチャージした後、VPS を作成できないと尋ね...

クラウド上でのインテリジェント運転の 3D 再構築のベスト プラクティス

インテリジェント運転技術の継続的な発展により、私たちの移動方法や交通システムは変化しています。 3D...

JVM ガベージ コレクターの簡単な紹介

[[427167]]導入プログラムを実行するには、必然的にメモリ リソースの適用が必要になります。メ...

ウェブサイト分析: データを活用してデザインを支援する

設計においては、対象グループ、シナリオ、運用習慣が異なるため、経験と直感だけに頼ることはできません。...

3月8日が近づいています: Taobaoストアのプロモーションのアイデアを共有しましょう

今日は2013年3月8日です。すべての女の子に楽しい休日をお祈りします。 3月8日は、電子商取引会社...

2013 年に Baidu ホームページでウェブサイトを最適化する方法

前回の記事「2013年にウェブサイトをBaiduのホームページに掲載する方法 - オンサイト最適化」...

SEOチームワークが企業サイトのコンバージョン率を最大化

エンタープライズ Web サイトに携わったり、運営したりしたことがある SEO 担当者や Web マ...

情報ニュースサイトの革新的な運営におけるいくつかの重要なポイントの簡単な分析

多くのウェブマスターは、情報ニュースサイトを個人で運営するのは難しく、コンテンツが頭痛の種だと考えて...

SEOプロジェクトで留意すべきいくつかのポイント

1. SEOには適切な戦略が必要サイトの内部要因、外部パフォーマンス(検索エンジンでのパフォーマンス...

Ainameのドメイン名登録動向:2月下旬に1,709のドメイン名が追加

中国IDCレビューネットワークは3月14日に次のように報告した。WebHosting.infoが提供...

hostus-$6/6g メモリ/6gSwap/150g ハードディスク/5T トラフィック/3IPv4

Hostus は、月額 6 ドルで 6G のメモリ、150G のハード ドライブ、5T のトラフィッ...