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 ユーザー変数と set ステートメントの例の詳細な説明

目次1 ユーザー変数の概要2 ユーザー変数の定義3 ユーザー変数の使用3.1 セットを通した例3.2...

CSSを使用してアダプティブスクエアを実装する方法の例

伝統的な方法は、正方形を固定形式で書くことです。長さ=幅を直接書き、次のように固定値を書きます。 。...

HTML 基本コントロール入門_PowerNode Java アカデミー

<input> タグ<input> タグはユーザー情報を収集するために使用さ...

複数の値を返す MySQL ストアド プロシージャ メソッドの例

この記事では、例を使用して、MySQL ストアド プロシージャで複数の値を返す方法について説明します...

VMwareでCentOSがインターネットにアクセスできない問題を素早く解決

昨日、VMware に CentOS7 をインストールしました。Tomcat パッケージを転送するた...

Chromeブラウザ設定の新バージョンではクロスドメイン実装が可能

序文現在、フロントエンドは主に webpack の devServer の構成を通じてクロスドメイン...

ショッピングカートのスライド削除効果を実装するReactネイティブサンプルコード

基本的にすべてのeコマースプロジェクトにはショッピングカートの機能があります。これはreact-na...

VMware WorkStation 14 pro インストール Ubuntu 17.04 チュートリアル

この記事では、VMware Workstation14 ProにUBuntu17.04をインストール...

Navicat for Mysql 接続エラー 1251 (接続失敗) の問題を解決する

以前書いた内容が詳細さに欠けていたため、今回は修正・補足しました。ただし、以前の MySQL バージ...

Mysql トランザクション分離レベルの読み取りコミットの詳細な説明

MySQL トランザクション分離レベルを表示する mysql> '%isolation...

vue-router のハッシュモードと履歴モードの違い

vue-routerには2つのモードがありますハッシュモード履歴モード1. シングルページアプリケー...

Linux NFSメカニズムの動作原理と例の分析

NFS とは何ですか?ネットワークファイルシステムネットワーク上でファイルを保存および整理するための...

適応分析と応答分析の違いを専門用語で詳しく説明

日々の開発経験と関連するオンライン情報に基づいて、アダプティブとレスポンシブの違いをシンプルでわかり...

vue+element-uiはヘッドナビゲーションバーコンポーネントを実装します

この記事では、vue+element-uiでヘッドナビゲーションバーコンポーネントを実装するための具...

Linuxアカウントファイル制御管理の詳細な手順

Linux システムでは、ユーザーが手動で作成したさまざまなアカウントに加えて、システムまたはプログ...