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

推薦する

オンラインでの収入に自信を失ったウェブマスターへの手紙

オンラインでの収入に自信を失ったウェブマスターへの手紙これは、オンラインでお金を稼ぎ始めたばかりの初...

仮想ホスティングがウェブサイトのSEO最適化に与える影響を分析する

ウェブマスターは、ウェブサイトの SEO 最適化に非常に関心を持っています。ウェブサイトのキーワード...

タオバオはFanli.comの禁止を否定:中国語は体育教師が教える

5月20日、タオバオは「リベートサイトの禁止」に関する最近のメディア報道を受けて、「リベートタオバオ...

SEOを学ぶための最も基本的な知識をいくつか教えます

SEO は長年にわたって発展してきました。検索エンジンのアルゴリズムが継続的に改善されるにつれて、多...

Virpus - 創業10年のブランド、シアトルのXen PV仮想VPSが40%オフ、生涯価格

Virpus は本日、全製品 (SSD ハード ドライブのみ) が 40% オフとなる 2 日間の ...

企業ウェブサイト構築における模倣・盗作の分析について語る

2011年が過ぎ、2012年の新年がちょうど1週間前に到来しました。仕事の初日、新しいクライアントが...

個人ウェブマスターが運営する委託販売モデルは成熟が難しい

ウェブサイトが収益を得る方法は数多くあり、広告を通じて収益を得るものもあれば、Taobaoを通じて収...

テクノロジー大手のクラウドコンピューティングは頻繁に失敗します。ブロックチェーンはそれを解決できるのか?

最近、テンセントクラウドは公式WeChatアカウントを通じて、オペレーティングシステムのクラウドディ...

湘潭鋳造ネットワークの最適化と推進計画

私は1年間沈黙していました。もうウェブサイトのSEOはやりたくありません。私はコンピューター科学者で...

マルチクラウド管理の課題を克服するにはどうすればよいでしょうか?

厳しい市場環境の中で、パンデミックとビジネスダイナミクスの劇的な変化により市場はより複雑化し、企業は...

業界用語をブランド用語として使用した場合、Web サイトはどのような損害を被るでしょうか?

業界用語をブランド語として扱うことは、SEO 最適化プロセスで最も一般的な問題です。業界用語を会社の...

Festo は SAP Concur を使用してコンプライアンスの高い企業文化を構築しています

「2015年に初めてフェスト グレーター チャイナに赴任し、財務管理を担当していた頃を振り返ると、社...

Baidu に新しいサイトの記事を素早くインデックスさせる方法

初心者のウェブマスターにとっては、古いウェブサイトを運営する方がはるかに便利です。良いランキングを得...

ネットワークマーケティングを行う企業はアウトソーシングの罠に注意する必要がある

インターネットマーケティングはますます重要になってきており、インターネット上ではマーケティングが至る...

理論的なソフト記事と実際の結果には大きな違いがある

A5 では毎日約 300 件のソフト記事を公開していますが、そのすべてで SEO 関連の同じトピック...