Containerd は Docker と同じくらい簡単に使用できますか?

Containerd は Docker と同じくらい簡単に使用できますか?

[[419814]]

先ほど、ctr を使用して containerd イメージ コンテナーを管理する方法を紹介しました。ただし、docker cli の使用に慣れているため、ctr は使いにくいかもしれません。すべてのユーザーが containerd に切り替えられるように、コミュニティでは新しいコマンドライン ツール nerdctl (https://github.com/containerd/nerdctl) を提供しています。 nerdctl は、docker cli スタイルと互換性があり、docker compose 構文と直接互換性のある containerd クライアント ツールです。これにより、ローカル開発、テスト、またはスタンドアロン コンテナーのデプロイメントとして containerd を直接使用する効率が大幅に向上します。

インストール

対応する圧縮パッケージを GitHub リリース ページから直接ダウンロードし、PATH パスに解凍することもできます。

  1. # containerdがインストールされていない場合は、nerdctl - full- <VERSION>-linux-amd64.tar.gzパッケージをダウンロードしてインストールできます。
  2. ➜ ~ wget https://github.com/containerd/nerdctl/releases/download/v0.11.0/nerdctl-0.11.0-linux-amd64.tar.gz
  3. # 制限がある場合は、ダウンロードを高速化するために次のURLに置き換えることもできます
  4. # wget https://download.fastgit.org/containerd/nerdctl/releases/download/v0.11.0/nerdctl-0.11.0-linux-amd64.tar.gz
  5. ➜ ~ mkdir -p /usr/ local /containerd/bin/ && tar -zxvf nerdctl-0.11.0-linux-amd64.tar.gz nerdctl && mv nerdctl /usr/ local /containerd/bin/
  6. ➜ ~ ln -s /usr/ローカル/containerd/bin/nerdctl /usr/ローカル/bin/nerdctl
  7. ➜ ~ nerdctl バージョン
  8. クライアント:
  9. バージョン: v0.11.0
  10. Gitコミット: c802f934791f83dacf20a041cd1c865f8fac954e
  11.  
  12. サーバ:
  13. コンテナ:
  14. バージョン: v1.5.5
  15. リビジョン: 72cec4be58a9eb6b2910f5d10f1c01ca47d231c0

インストールが完了したら、nerdctl コマンドライン ツールの使用方法を学習します。

注文

実行と実行

nerdctl 実行

docker run と同様に、nerdctl run コマンドを使用してコンテナを実行できます。次に例を示します。

  1. ➜ ~ nerdctl run -d -p 80:80 --name=nginx --restart=always nginx:alpine  
  2. docker.io/library/nginx:alpine: 解決済み |++++++++++++++++++++++++++++++++++++++++++++|
  3. インデックス-sha256:bead42240255ae1485653a956ef41c9e458eb077fcb6dc664cbc3aa9701a05ce: 完了 |++++++++++++++++++++++++++++++++++++++++| manifest-sha256:ce6ca11a3fa7e0e6b44813901e3289212fc2f327ee8b1366176666e8fb470f24: 完了 |++++++++++++++++++++++++++++++++++++++++| config-sha256:7ce0143dee376bfd2937b499a46fb110bda3c629c195b84b1cf6e19be1a9e23b: 完了 |++++++++++++++++++++++++++++++++++++++++|

オプションのパラメータは、-i、-t、--cpus、--memory などの docker run のパラメータと基本的に同じです。使用可能なコマンド オプションを取得するには、nerdctl run --help を使用できます。

  1. ➜ ~ nerdctl 実行--help  
  2. 名前
  3. nerdctl run -新しいコンテナコマンドを実行する
  4.  
  5. 使用法:
  6. nerdctl run [コマンド オプション] [引数...]
  7.  
  8. オプション:
  9. --help ヘルプを表示します (デフォルト: false)  
  10. --tty、-t (現在 -t は -i に対応している必要があります) (デフォルト: false)  
  11. --interactive, -i 接続されていない場合でも STDIN を開いたままにします (デフォルト: false)  
  12. --detach, -d コンテナをバックグラウンドで実行し、コンテナ ID を出力します (デフォルト: false)  
  13. --restart value コンテナ終了時に適用する再起動ポリシー (実装値: "no"|"always") (デフォルト: "no")  
  14. --rm コンテナが終了するときに自動的に削除します (デフォルト: false)  
  15. --pull value 実行前にイメージをプルする ("always"|"missing"|"never") (デフォルト: "missing")  
  16. --network value、--net value コンテナをネットワークに接続します ("bridge"|"host"|"none") (デフォルト: "bridge")  
  17. --dns value カスタム DNS サーバーを設定します (デフォルト: "8.8.8.8", "1.1.1.1")  
  18. --publish value, -p value コンテナのポートをホストに公開する 
  19. --hostname value、-h value コンテナのホスト名 
  20. --cpus value CPUの数(デフォルト: 0)  
  21. --memory 値、-m 値 メモリ制限 
  22. --pid value 使用するPID名前空間 
  23. --pids-limit value コンテナの pid 制限を調整します (無制限の場合は -1 に設定) (デフォルト: -1)  
  24. --cgroupns value 使用する cgroup 名前空間。デフォルトは cgroup のバージョンによって異なります ("host"|"private") (デフォルト: "host")  
  25. --cpuset-cpus value 実行を許可するCPU (0-3, 0,1)  
  26. --cpu-shares value CPUシェア(相対重み)(デフォルト: 0)  
  27. --device value コンテナにホストデバイスを追加する 
  28. --user value、-u value ユーザー名またはUID(形式: <name|uid>[:<group|gid>])  
  29. --security-opt value セキュリティオプション 
  30. --cap-add value Linuxの機能を追加する 
  31. --cap-drop value Linuxの機能を削除する 
  32. --privileged このコンテナに拡張権限を与える (デフォルト: false)  
  33. --runtime value このコンテナに使用するランタイム、例: "crun"、または "io.containerd.runsc.v1" (デフォルト: "io.containerd.runc.v2")  
  34. --sysctl 値 Sysctl オプション 
  35. --gpus value コンテナに追加する GPU デバイス ('all' を指定するとすべての GPU が渡されます)  
  36. --volume value, -v value ボリュームをバインドマウントする 
  37. --read-only コンテナのルートファイルシステムを読み取り専用としてマウントします (デフォルト: false)  
  38. --rootfs 最初の引数はイメージではなく、展開されたコンテナのルートファイルシステムです (デフォルト: false)  
  39. --entrypoint value イメージのデフォルトのENTRYPOINTを上書きします 
  40. --workdir value、-w value コンテナ内の作業ディレクトリ 
  41. --env value, -e value 環境変数を設定する 
  42. --env-file value ファイルから環境変数を設定する 
  43. --name value コンテナに名前を割り当てる 
  44. --label value, -l value コンテナのメタデータを設定する 
  45. --label-file value 行区切りのラベルファイルを読み込む 
  46. --cidfile value コンテナIDをファイルに書き込む 
  47. --shm-size value /dev/shmのサイズ 

nerdctl 実行

exec コマンドを使用して、コンテナ関連のコマンドを実行することもできます。次に例を示します。

  1. ➜ ~ nerdctl exec -it nginx /bin/sh
  2. / #日付 
  3. 2021年8月19日木曜日 06:43:19 UTC
  4. / #

コンテナ管理

nerdctl ps: コンテナの一覧表示

すべてのコンテナを一覧表示するには、nerdctl ps コマンドを使用します。

  1. ➜ ~ nerdctl ps
  2. コンテナID イメージ コマンド 作成ステータス ポート名
  3. 6e489777d2f7 docker.io/library/nginx:alpine "/docker-entrypoint.…" 10 分前 0.0.0.0:80->80/tcp nginx が起動しました

-a オプションを使用して、すべてのコンテナのリストを表示することもできます。デフォルトでは、実行中のコンテナのみが表示されます。ただし、nerdctl ps コマンドは、docker ps の --filter、--format、--last、--size などのオプションを実装していないことに注意してください。

nerdctl inspect: コンテナに関する詳細情報を取得します。

  1. ➜ ~ nerdctl で nginx を検査する
  2. [
  3. {
  4. 「ID」 : 「6e489777d2f73dda8a310cdf8da9df38353c1aa2021d3c2270b30eff1806bcf8」
  5. 「作成日」 : 「2021-08-19T06:35:46.403464674Z」
  6. 「パス」 : 「/docker-entrypoint.sh」
  7. 「引数」 : [
  8. 「nginx」
  9. 「-g」
  10. 「デーモンオフ」  
  11. ]、
  12. "州" : {
  13. 「ステータス」 「実行中」
  14. 「実行中」 : true
  15. 「一時停止」 : false
  16. 「ピッド」 :2002年
  17. 「終了コード」 : 0,
  18. 「終了日時」 : 「0001-01-01T00:00:00Z」  
  19. },
  20. 「イメージ」 : 「docker.io/library/nginx:alpine」
  21. "ResolvConfPath" : "/var/lib/nerdctl/1935db59/containers/default/6e489777d2f73dda8a310cdf8da9df38353c1aa2021d3c2270b30eff1806bcf8/resolv.conf"
  22. 「ログパス」 : 「/var/lib/nerdctl/1935db59/containers/default/6e489777d2f73dda8a310cdf8da9df38353c1aa2021d3c 2270b30eff1806bcf8/6e489777d2f73dda8a310cdf8da9df38353c1aa2021d3c2270b30eff1806bcf8-json.log」
  23. 「名前」 : 「nginx」
  24. 「ドライバー」 : 「overlayfs」
  25. 「プラットフォーム」 : 「linux」
  26. 「AppArmorProfile」 : 「nerdctl-default」
  27. 「ネットワーク設定」 : {
  28. 「ポート」 :{
  29. 「80/tcp」 :[
  30. {
  31. 「ホストIP」 : 「0.0.0.0」
  32. 「ホストポート」 : 「80」  
  33. }
  34. ]
  35. },
  36. "グローバルIPv6アドレス" : "" ,
  37. "グローバルIPv6プレフィックス長" : 0,
  38. 「IPアドレス」 : 「10.4.0.3」
  39. 「IPプレフィックス長」 : 24,
  40. "MacAddress" : "f2:b1:8e:a2:fe:18" ,
  41. 「ネットワーク」 :{
  42. "不明-eth0" : {
  43. 「IPアドレス」 : 「10.4.0.3」
  44. 「IPプレフィックス長」 : 24,
  45. "グローバルIPv6アドレス" : "" ,
  46. "グローバルIPv6プレフィックス長" : 0,
  47. "Macアドレス" : "f2:b1:8e:a2:fe:18"  
  48. }
  49. }
  50. }
  51. }
  52. ]

表示される結果は基本的にdockerinspectの結果と同じであることがわかります。

nerdctl logs: コンテナログを取得する

コンテナログの表示はよく使う機能です。 nerdctl logs を使用してログ データを取得することもできます。

  1. ➜ ~ nerdctl ログ -f nginx
  2. ......
  3. 2021/08/19 06:35:46 [お知らせ] 1#1: ワーカープロセスを開始
  4. 2021/08/19 06:35:46 [通知] 1#1: ワーカープロセス32を開始
  5. 2021/08/19 06:35:46 [通知] 1#1: ワーカープロセス33を開始

-f、-t、-n、--since、--until オプションもサポートします。

nerdctl stop: コンテナを停止する

  1. ➜ ~ nerdctl で nginx を停止する
  2. nginx
  3. ➜ ~ nerdctl ps
  4. コンテナID イメージ コマンド 作成ステータス ポート名
  5. ➜ ~ nerdctl ps -a
  6. コンテナID イメージ コマンド 作成ステータス ポート名
  7. 6e489777d2f7 docker.io/library/nginx:alpine "/docker-entrypoint.…" 20 分前 0.0.0.0:80->80/tcp nginx が起動しました

nerdctl rm: コンテナを削除する

  1. ➜ ~ nerdctl rm nginx
  2. 実行中のコンテナ f4ac170235595f28bf962bad68aa81b20fc83b741751e7f3355bd77d8016462d を削除することはできません。コンテナの取り外し 強制的に削除
  3. ➜ ~ nerdctl rm -f ginx
  4. nginx
  5. ➜ ~ nerdctl ps
  6. コンテナID イメージ コマンド 作成ステータス ポート名

強制的に削除するには、-f または --force オプションを使用することもできます。

画像管理

nerdctl イメージ: 画像リスト

  1. ➜ ~ nerdctl 画像
  2. リポジトリ タグ イメージ ID 作成サイズ 
  3. アルパイン 最新 eb3e4e175ba6 6日前 5.9 MiB
  4. nginx alpine bead42240255 29 分前 16.0 KiB

また、--all、--digests、--filter、--format など、docker イメージの一部のオプションは実装されていないことに注意してください。

nerdctl pull: イメージをプルする

  1. ➜ ~ nerdctl イメージ rm busybox
  2. タグなし: docker.io/library/busybox:latest@sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60
  3. 削除済み: sha256:5b8c72934dfc08c7d2bd707e93197550f06c0751023dabb3a045b723c5e7b373
  4. docker.io/library/busybox:latest: 解決済み |++++++++++++++++++++++++++++++++++++++++++++|
  5. インデックス-sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60: 完了 |++++++++++++++++++++++++++++++++++++++++|
  6. manifest-sha256:dca71257cd2e72840a21f0323234bb2e33fea6d949fa0f21c5102146f583486b: 完了 |++++++++++++++++++++++++++++++++++++++++| config-sha256:69593048aa3acfee0f75f20b77acb549de2472063053f6730c4091b53f2dfb02: 完了 |++++++++++++++++++++++++++++++++++++++++++++|レイヤー-sha256:b71f96345d44b237decc0c2d6c2f9ad0d17fde83dad7579608f1f0764d9686f2: 完了 |++++++++++++++++++++++++++++++++++++++++++++|経過時間: 5.7 秒 合計: 752.8 (132.0 KiB/秒)

nerdctl push: 画像をプッシュ

もちろん、イメージをプッシュする前に、nerdctl login コマンドを使用してイメージ リポジトリにログインし、プッシュ操作を実行することもできます。

ログインするには nerdctl login --username xxx --password xxx を使用し、ログアウトするには nerdctl logout を使用します。

nerdctl タグ: ミラー タグ

イメージのエイリアス イメージを作成するには、tag コマンドを使用します。

  1. ➜ ~ nerdctl 画像
  2. リポジトリ タグ イメージ ID 作成サイズ 
  3. busybox 最新 0f354ec1728d 6分前 1.3 MiB
  4. nginx alpine bead42240255 41 分前 16.0 KiB
  5. ➜ ~ nerdctl tag nginx:alpine harbor.k8s。ローカル/course/nginx:alpine
  6. ➜ ~ nerdctl 画像
  7. リポジトリ タグ イメージ ID 作成サイズ 
  8. busybox 最新 0f354ec1728d 7分前 1.3 MiB
  9. nginx alpine bead42240255 41 分前 16.0 KiB
  10. ハーバー.k8s。ローカル/course/nginx alpine bead42240255 2 秒前 16.0 KiB

nerdctl save: イメージをエクスポート

save コマンドを使用して、イメージを tarball としてエクスポートします。

  1. ➜ ~ nerdctl save -o busybox.tar.gz busybox:latest
  2. ➜ ~ ls -lh busybox.tar.gz
  3. -rw-r --r-- 1 ルート root 761K 8 月 19 日 15:19 Busybox.tar.gz  

nerdctl rmi: 画像を削除

  1. ➜ ~ nerdctl rmi ビジーボックス
  2. タグなし: docker.io/library/busybox:latest@sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60
  3. 削除済み: sha256:5b8c72934dfc08c7d2bd707e93197550f06c0751023dabb3a045b723c5e7b373

nerdctl load: イメージをインポートする

load コマンドを使用して、上記でエクスポートしたイメージを再度インポートします。

  1. ➜ ~ nerdctlロード-i busybox.tar.gz
  2. docker.io/library/busybox:latest (sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60) を解凍しています...完了

インポートする圧縮パッケージを指定するには、-i または --input オプションを使用します。

イメージ構築

イメージ構築は私たちの日常生活において非常に重要な要件です。 ctr にはイメージをビルドするコマンドがないことはわかっていますが、現在は Docker を使用していません。では、イメージをビルドするにはどうすればよいでしょうか?幸いなことに、nerdctl は nerdctl build などのイメージ構築コマンドを提供します。

nerdctl build: Dockerfileからイメージをビルドする

たとえば、nginx イメージをカスタマイズし、以下に示すように Dockerfile ファイルを作成します。

  1. nginxから
  2. RUN echo 'これは、nerdctl を使用して containerd に基づいて構築された nginx イメージです' > /usr/share/nginx/html/ index .html

次に、ファイルが配置されているディレクトリでイメージ構築コマンドを実行します。

  1. ➜ ~ nerdctl build -t nginx:nerdctl -f Dockerfile 。
  2. FATA[0000] `buildctl`をインストールし ` buildkitd` を実行する必要があります。https ://github.com/moby/buildkit を参照してください: exec : "buildctl" : 実行ファイルが$PATH見つかりません

buildctl をインストールして buildkitd を実行することを要求するエラー プロンプトが表示されます。これは、nerdctl build がビルドキット ツールに依存しているためです。

ビルドキット プロジェクトは、OCI 標準イメージの構築をサポートする Docker のオープン ソース ビルド ツールキットでもあります。主に以下の部分が含まれます。

  • サーバーbuildkitd: 現在、runcとcontainerdをワーカーとしてサポートしています。デフォルトはruncですが、ここではcontainerdを使用します。
  • クライアントbuildctl: Dockerfileを解析し、ビルドリクエストをサーバーbuildkitdに送信する役割を担う

Buildkit は典型的な C/S アーキテクチャです。クライアントとサーバーは同じサーバー上に存在しない可能性があります。イメージをビルドする場合、nerdctl は buildkitd のクライアントとしても機能するため、buildkitd をインストールして実行する必要があります。

それではまずビルドキットをインストールしましょう:

  1. ➜ ~ wget https://github.com/moby/buildkit/releases/download/v0.9.0/buildkit-v0.9.0.linux-amd64.tar.gz
  2. # 制限がある場合は、ダウンロードを高速化するために次のURLに置き換えることもできます
  3. # wget https://download.fastgit.org/moby/buildkit/releases/download/v0.9.0/buildkit-v0.9.0.linux-amd64.tar.gz
  4. ➜ ~ tar -zxvf buildkit-v0.9.0.linux-amd64.tar.gz -C /usr/ローカル/containerd/
  5. ビン/
  6. bin/ビルドctl
  7. bin/buildkit-qemu-aarch64
  8. bin/buildkit-qemu-arm
  9. bin/buildkit-qemu-i386
  10. bin/buildkit-qemu-mips64
  11. bin/buildkit-qemu-mips64el
  12. bin/buildkit-qemu-ppc64le
  13. bin/buildkit-qemu-riscv64
  14. bin/buildkit-qemu-s390x
  15. bin/buildkit-runc
  16. bin/buildkitd
  17. ➜ ~ ln -s /usr/ローカル/containerd/bin/buildkitd /usr/ローカル/bin/buildkitd
  18. ➜ ~ ln -s /usr/ローカル/containerd/bin/buildctl /usr/ローカル/bin/buildctl

ここでは、Systemd を使用して buildkitd を管理し、次の systemd ユニット ファイルを作成します。

  1. ➜ ~ cat /etc/systemd/system/buildkit.service
  2. [ユニット]
  3. 説明=ビルドキット
  4. ドキュメント=https://github.com/moby/buildkit
  5.  
  6. [サービス]
  7. ExecStart=/usr/ローカル/bin/buildkitd --oci-worker=false --containerd-worker=true  
  8.  
  9. [インストール]
  10. WantedBy =マルチユーザー.ターゲット

次にbuildkitdを起動します。

  1. ➜ ~ systemctlデーモンリロード
  2. ➜ ~ systemctl ビルドキットを有効にする--now  
  3. /etc/systemd/system/multi- user .target.wants/buildkit.service → /etc/systemd/system/buildkit.service のシンボリックリンクを作成しました。
  4. ➜ ~ systemctl ステータスビルドキット
  5. ● buildkit.service - ビルドキット
  6. ロード済み: ロード済み (/etc/systemd/system/buildkit.service; 有効; ベンダープリセット: 有効)
  7. メモリ: 8.6M
  8. Cグループ: /system.slice/buildkit.service
  9. └─5779 /usr/ローカル/bin/buildkitd --oci-worker=false --containerd-worker=true  
  10.  
  11. 8月19日 16:03:10 ydzsio systemd[1]: BuildKitを開始しました。
  12. 8月19日 16:03:10 ydzsio buildkitd[5779]:時間= "2021-08-19T16:03:10+08:00"  レベル=警告メッセージ= 「ホストネットワークをデフォルトとして使用しています」  
  13. 8月19日 16:03:10 ydzsio buildkitd[5779]:時間= "2021-08-19T16:03:10+08:00"  レベル=info msg= "作業者 \"euznuelxhxb689b​​c5of7pxmbc\" が見つかりました、ラベル>
  14. 8月19日 16:03:10 ydzsio buildkitd[5779]:時間= "2021-08-19T16:03:10+08:00"  レベル=info msg= "ワーカー 1 人が見つかりました。デフォルト =\" euznuelxhxb689b​​c5of7pxm>
  15. 8月19日 16:03:10 ydzsio buildkitd[5779]:時間= "2021-08-19T16:03:10+08:00"   level =warning msg= 「現在、デフォルトのワーカーのみ使用できます。」  
  16. 8月19日 16:03:10 ydzsio buildkitd[5779]:時間= "2021-08-19T16:03:10+08:00"  レベル=info msg= "/run/buildkit/buildkitd.sock でサーバーを実行しています"  

それでは、イメージを再構築してみましょう。

nerdctlはイメージを構築します

ビルドが完了したら、イメージが正常にビルドされたかどうかを確認します。

  1. ➜ ~ nerdctl 画像
  2. 警告[0000] 解析できないイメージ  "オーバーレイfs@sha256:d5b9b9e4c930f30340650cb373f62f97c93ee3b92c83f01c6e00b7b87d62c624"  
  3. リポジトリ タグ イメージ ID 作成サイズ 
  4. nginx 最新 4d4d96ac750a 4 分前 16.0 KiB
  5. nginx nerdctl d5b9b9e4c930 約1前 24.0 KiB
  6. d5b9b9e4c930 約1前 24.0 KiB

構築したnginx:nerdctlイメージがすでに存在していることがわかりますが、警告メッセージWARN[0000] 解析できないイメージ名 "xxx" が表示されます。画像リストには、作成した画像 ID と同じ空の画像タグを持つ画像があることもわかります。この問題は、nerdctl github の問題にも記載されています: https://github.com/containerd/nerdctl/issues/177 ですが、今のところ修正はありません。幸いなことに、これは単なる⚠️であり、使用には影響しません。

次に、上記で作成したイメージを使用して、テスト用のコンテナを起動します。

  1. ➜ ~ nerdctl run -d -p 80:80 --name=nginx --restart=always nginx:nerdctl  
  2. f8f639cb667926023231b13584226b2c7b856847e0a25bd5f686b9a6e7e3cacd
  3. ➜ ~ nerdctl ps
  4. コンテナID イメージ コマンド 作成ステータス ポート名
  5. f8f639cb6679 docker.io/library/nginx:nerdctl "/docker-entrypoint.…" 1前 0.0.0.0:80->80/tcp nginx が起動しました
  6. ➜ ~ ローカルホストをカールする
  7. これは、 containerdをベースした nerdctl ビルドの nginx イメージです

このように、nerdctl + buildkitd を使用してコンテナ イメージを簡単にビルドできます。

もちろん、スタンドアロン環境で Docker Compose を使用したい場合は、この機能と互換性を保つために containerd モードで nerdctl を使用することもできます。同様に、nerdctl compose、nerdctl compose up、nerdctl compose logs、nerdctl compose build、nerdctl compose down などのコマンドを使用して Compose サービスを管理できます。このように、containerd と nerdctl を buildkit などのツールと組み合わせて使用​​すると、イメージ構築とイメージ コンテナにおける docker の管理機能を完全に置き換えることができます。

<<:  Longhorn、エンタープライズグレードのクラウドネイティブコンテナ分散ストレージ - ReadWriteMany (RWX) ワークロードをサポート

>>:  最初からKubernetes上でアプリケーションを構築すべき理由

推薦する

解釈丨WeChatの11月のアップデートのレビュー

11月に、WeChat/ビデオアカウントは、エコロジカルクローズドループを改善し、モーメントとチャッ...

ゲーミフィケーションのユーザー成長戦略に関する最も包括的なガイド

01. 「AARRR」の理論的定義オンラインインターネットトラフィックの浸透がますます集中するにつれ...

オンラインドラマ「大淘宝」でSEOについてより深く理解できました

今日は短編感動オンラインドラマ「大淘宝」を観終えました。短編映画の中で淘宝の売り手の生活状況が描写さ...

hawkhost-35% オフ/シンガポール/仮想ホスト/共有ホスト/1000M ポート/softlayer

この記事では、Hawkhost の 8 月の最新割引を紹介します。ここで、Host Cat Stat...

クラウドコンピューティングは10の大きな課題に直面しており、セキュリティが第一位

今日、クラウド コンピューティングが直面している課題は多面的であり、もちろん厄介です。ほとんどの企業...

justhost: $19.99/OpenStack クラウド/(商用) 安定したウェブサイト構築の推奨

Justhost は、cpanel 仮想ホスティングで有名な、米国で非常に有名なホスティング会社です...

簡単な説明: ウェブサイトのランキングを向上させるためにこれを行うこともできます

ウェブサイトの最適化を行う SEO 担当者にとって重要なのは、ウェブサイトの自然なトラフィックとウェ...

ブログサイトの最適化を設定する方法を教えます

ブログのオンサイト最適化を設定する方法を教えます。ブログの最適化は、SEO 最適化の中で最も簡単です...

Leica Cloud: クラウド サーバーが 20% オフ、最低 38 元、香港 CN2 GIA、米国 CN2 GIA、韓国 CN2、日本 CN2、帯域幅 20M から

国内のサーバープロバイダーであるLeica Cloud(lcayun.com)は、付加価値通信ライセ...

Buyvm SJ 512MメモリKVMの簡単な評価

月額 10 ドルの KVM は、午前 2 時 30 分に起動し始めました。全体的に、あまり理想的では...

古典的なマーケティング キャンペーンをすべて見ると、本当に感心します。

鄧おじいさんはかつてこう言いました。「猫が黒か白かは問題ではない。ネズミを捕まえることができれば、そ...

SEO の基本: 内部リンクとポジションウェイト

少し前に、真命題、偽命題、ベイジアンアルゴリズム、疑似命題についての記事を書きました。一度にたくさん...

Kubernetes 7周年記念:K8s の導入とアプリケーションの簡素化における VMware の成果と課題

コンテナベースの分散管理システムである Kubernetes は 7 年間の開発期間を経て、そのエコ...

CNCF 2020 クラウド ネイティブ アプリケーション調査レポート: コンテナの採用率は 2016 年以降 300% 増加

現在、CNCF コミュニティは発展を続けており、ユーザーによるオープンソース テクノロジの応用がます...