Dockerコマンドの自動補完の実装

Dockerコマンドの自動補完の実装

序文

この友人がどれくらいDockerを使っていなかったのかは分かりませんが、突然Dockerコマンドが変わった理由を尋ねてきました。

docker 実行...
#docker container run に変更しました...

彼は Docker コマンドに慣れていなかったため、さらに混乱していると感じたそうです。実際、私の意見では、この変更によりコマンドがより規則的になります。

コマンドラインにdockerを直接入力して Enter キーを押すと、次のようになります。

図からわかるように、Docker はコマンド構造を管理コマンドとコマンドの 2 つのカテゴリに分けます。実際、前者は第 1 レベルのコマンド、後者はサブコマンドです (これは Docker 1.13 からの変更点です)。そのため、今後はコマンドは次のように使用されます。

docker <管理コマンド> <サブコマンド <オプション/引数>>

このように、今後コマンドを使用するときは、まず管理コマンドに焦点を合わせるだけで済みます。しかし、後続のサブコマンドの使い方がまだわからない場合は、1つずつ問い合わせる必要がありますか?

Docker コマンドの自動補完

この問題を解決するために、Docker は非常に完全なコマンド自動補完機能も提供しており、すべてを Tab キーに任せることができます。

Mac インストール Docker コマンドの自動補完

次のコマンドを 1 つずつ入力します。

brew install bash-completion

sudo curl -L https://raw.githubusercontent.com/docker/compose/1.27.4/contrib/completion/bash/docker-compose -o /usr/local/etc/bash_completion.d/docker-compose

~/.bash_profileファイルを開き、次の内容を貼り付けます。

[ -f $(brew --prefix)/etc/bash_completion ] の場合;
 . $(brew --prefix)/etc/bash_completion
 フィ

リフレッシュして効果を高めましょう

ソース ~/.bash_profile 

Zsh の方が良いと思いますが、なぜでしょうか?答えについては、この記事をご覧ください: この iTerm2 + Oh My Zsh チュートリアルは、あなたが街で一番クールな男になるのに役立ちます

ZshはDockerコマンドの自動補完をインストールします

Oh-My-Zsh シェルがインストールされていない場合は、まず次のコマンドを 1 つずつ入力してインストールします。

mkdir -p ~/.zsh/補完

次のように、curl -L https://raw.githubusercontent.com/docker/compose/1.27.4/contrib/completion/zsh/_docker-compose を実行します。 ~/.zsh/completion/_docker-compose

~/.zshrcファイルを開き、次の内容を貼り付けます。

fpath=(~/.zsh/補完 $fpath)
オートロード -Uz compinit && compinit -i

たとえば、私の~/.zshrcファイルの内容は次のとおりです。

ファイルプラグインの場所を検索し、プラグインのコンテンツを更新します。

プラグイン=(... docker docker-compose
) 

ちなみに、gitプラグインを使用することを強くお勧めします

最後に更新して有効にします。

ソース ~/.zshrc

自動補完機能は Tab キーを大いに活用でき、ドキュメントを参照するよりも高速です。その効果を見てみましょう。


Docker コマンド自動補完の実装に関する記事はこれで終わりです。Docker コマンド自動補完に関するその他の関連コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerテスト中にコマンドが完了できない問題の解決策

<<:  MySQL エラー コード 1064 の解決策

>>:  JavaScriptのvar let constの違いは何ですか?

推薦する

MySQL 5.7 のスロークエリログの時間がシステム時間より 8 時間遅れている理由の詳細な説明

遅いクエリをチェックすると、時間が正しくなく、システム時間とちょうど 8 時間異なっていることがわか...

::before/:before と ::after/:after の使用に関する深い理解

パート1: 基礎1. :active や :hover などの疑似クラスとは異なり、これらはすべて疑...

MySQL 最適化 Zabbix パーティション最適化

zabbix を利用する上での最大のボトルネックはデータベースです。zabbix のデータストレージ...

入力のid属性とname属性の違いの例

長い間ウェブサイトを作ってきましたが、入力時のnameとidの違いがまだわかりません。最近jQuer...

Vue の新しいおもちゃ VueUse の具体的な使い方

目次序文VueUseとは使いやすいおなじみの手ぶれ補正やスロットル機能もありますグローバル状態を共有...

nginxの基礎を学ぶ

目次1. nginx とは何ですか? 2. nginx で何ができるのか? 2.1 フォワードプロキ...

フレームウィンドウ間の関連付けとハイパーリンクのターゲット属性の使用を実装する方法

フレーム ウィンドウの関連付けを実現するには、次に示すように、ハイパーリンクの「ターゲット」ウィンド...

ページのレンダリング時間を短縮してページの実行速度を速めます

ブラウザでのページのレンダリング時間をできるだけ短縮するにはどうすればよいでしょうか? この記事は、...

Vueはプルダウンとスクロールでデータを読み込む例を実装しています

目次ステップ1: インストールステップ2: 引用ステップ3: 使用Webプロジェクトでは、データを読...

LINUX ポートが占有されているかどうかを確認します

ポートが占有されているかどうかは、これまで一度もわかりませんでした。多くの人に尋ねて、ようやくわかり...

Vite+ElectronでVUE3デスクトップアプリケーションを素早く構築

目次1. はじめに2. Viteプロジェクトを作成する1. viteをインストールする2. プロジェ...

Docker マイクロサービス用の ETCD クラスターの構築に関する詳細なチュートリアル

目次etcdの機能etcdが独自の高可用性クラスタを構築するには、主に3つの形式があります。今回構築...

html.cssオーバーフローの包括的な理解

html.cssオーバーフローの包括的な理解XML/HTML コードコンテンツをクリップボードにコピ...

Dockerコンテナのホスト間マルチネットワークセグメント通信ソリューションの詳細説明

1. マックヴラン前回のブログ投稿で紹介した Docker コンテナのホスト間通信を実現するための ...

Ubuntu 18.04 でソースコードから Odoo14 をインストールするチュートリアル

目次このシリーズの背景概要PostgreSQL データベースの準備ソースからインストール仮想環境の作...