Docker を初めて使用する場合は、コンテナの管理を始めるために習得する必要がある基本的なコマンドをいくつか確認してください。 Docker はソフトウェア開発ライフサイクルに大きな影響を与え、大規模なソフトウェアの展開をシンプルかつ安全なものにしました。このチュートリアルでは、Docker コンテナの実行、起動、停止、削除の基本について説明します。 Docker を使用すると、同じホスト上の異なるオペレーティング システムで異なるプログラミング言語を簡単に使用できるようになります。 Docker の背後でソフトウェアを展開することがはるかに簡単になり、システム構成や前提条件を見落とす心配がなくなります。 Docker と仮想マシン 仮想化を使用してソフトウェアを実行している場合、代わりに Docker が必要になるのはなぜですか? 両者の主な違いは、Docker はネイティブ オペレーティング システム内で実行される別のプロセスであるのに対し、VM はホスト オペレーティング システム上で実行される完全に分離されたオペレーティング システムであり、読み込みに時間がかかることです。そのため、Docker には仮想マシンよりも次のような利点があります。
実際、Docker は仮想マシンの代替ではなく、特定の問題を解決します。 アプリケーションが異なるオペレーティング システムで実行される 3 つ以上のサービスを必要とする場合、同じホスト上で 3 つの仮想マシンを実行する代わりに、同じホスト上で 3 つのコンテナーをスムーズに実行できます。素晴らしいですね! コンテナを実行する 始める前に、Docker が適切にインストールされ、コマンドを受け入れる準備ができていることを確認してください。新しいターミナル ウィンドウに次のコマンドを入力します。 上記のコマンドは、PC にインストールされている Docker のバージョンを出力します。 コンテナの実行を開始します。 上記のコマンドを初めて実行すると、ターミナル ウィンドウに次のような出力が表示されます。 それは簡単ですよね?同じコマンドをもう一度実行してみてください: 上記のコマンドを 2 回目、3 回目、または n 回目に実行すると、ターミナルに次の出力が表示されます。 コンテナを正常に実行できたので、次は何が起こったのかを分析します。次のコマンドを参照してください。 このコマンドはいくつかの部分で構成されています。まず、「docker」という言葉があります。これは、コンテナの実行を担当する Docker エンジンと対話するために使用される Docker コマンドライン インターフェイス (CLI) の名前です。 次に、「コンテナ」という単語があります。これは、作業しているコンテキストを示します。 次のステップは、実際にコマンド run を実行することです。 ここで、どのコンテナを実行するかを Docker に伝える必要があります。ここでは、アルパインコンテナが動作しています。 最後に、コンテナの実行時にコンテナ内で実行されるプロセスまたはタスクのタイプを定義する必要があります。これはコマンドの最後の部分で、echo "Hello World" です。 コンテナ内でプロセスを実行する コンテナを実行するコマンドの各部分を理解できたので、別のコンテナで別のプロセスを実行してみましょう。 出力は次のようになります。 上記の例では、使用されているコンテナ イメージは CentOS であり、CentOS コンテナ内で実行されるプロセスは ping -c 5 127.0.0.1 であり、ループバック アドレスが停止するまで 5 回 ping を実行します。 最初の行は次のとおりです。 これは、Docker がシステムのローカル キャッシュ内に centos:latest というイメージを見つけられなかったことを示しています。したがって、Docker は、コンテナが保存されているイメージ リポジトリからイメージをプルする必要があることを認識します。 デフォルトでは、Docker 環境は hub.docker.com の Docker Hub からイメージをプルするように構成されています。これは 2 行目で次のように表されます。 次の 3 行の出力は次のとおりです。 これは、Docker が Docker Hub からイメージ centos:latest を正常にプルしたことを示しています。 後続の出力は、コンテナ内で実行されているプロセス (この場合は ping ツール) によって生成されます。 また、「latest」というキーワードが数回出現していることに気付くかもしれません。各イメージにはバージョン (タグとも呼ばれます) があり、バージョンが明示的に指定されていない場合、Docker は自動的に最新バージョンであると想定します。 システム上でこのコンテナを再度実行すると、Docker がコンテナ イメージをローカルにキャッシュしているため、最初にダウンロードする必要がないため、前の 5 行は出力されません。これが事実かどうか確認してみてください。 ランダム参照コンテナを実行する ランダム ステートメント コンテナーを実行するには、ランダム ステートメントを生成するアルゴリズムが必要です。これらのランダムなステートメントを生成するためのAPIはここにあります[1]。 スクリプトを停止するには、Ctrl+C を押します。出力は次のようになります。 各応答は、引用、著者、およびそのカテゴリを含む JSON 形式の文字列です。 $ docker コンテナ実行 -d --name quotes alpine \ /bin/sh -c "while :; do wget -qO- https://talaikis.com/api/quotes/random; printf '\n'; sleep 5; done" 上記の式では、-d と --name という 2 つのコマンド ライン パラメータを使用しました。 -d は、コンテナを Linux デーモンとして実行するように Docker に指示します。 -name パラメータは、コンテナの明示的な名前を指定するために使用されます。 明示的なコンテナ名を指定しない場合、Docker はコンテナにランダムかつ一意の名前を自動的に割り当てます。名前は有名な科学者の名前と形容詞で構成されます。 たとえば、「boring_borg」や「angry_goldberg」などです。かなり面白いですね。 重要な点は、コンテナ名が一意である必要があることです。引用コンテナが起動して実行されていることを確認します。 前の出力の重要な部分は STATUS 列で、この場合は UP 16 秒と表示されています。これは、コンテナが 16 秒間稼働していることを意味します。 リストコンテナ 時間の経過とともにコンテナを実行し続けていると、システムには多くのコンテナが存在するようになる場合があります。ホスト上で現在実行中のコンテナを見つけるには、次のように container ls コマンドを使用します。 これにより、現在実行中のすべてのコンテナが一覧表示されます。 システムで定義されているすべてのコンテナを一覧表示する場合は、次のようにコマンドライン パラメータ -a または -all を使用できます。 これにより、作成済み、実行中、終了済みなど、あらゆる状態のコンテナが一覧表示されます。 場合によっては、すべてのコンテナの ID を一覧表示したいこともあります。これには -q パラメータがあります: これが何の役に立つのか疑問に思うかもしれません。次に例を示します。 上記のコマンドは、停止されたコンテナも含め、システム上で現在定義されているすべてのコンテナを削除します。 rm コマンドは削除を意味し、このチュートリアルでさらに詳しく説明します。 コンテナの停止と起動 場合によっては、実行中のコンテナを一時的に停止する必要があることがあります。このコンテナを試してください: $ docker コンテナ実行 -d --name quotes alpine \ /bin/sh -c "while :; do wget -qO- https://talaikis.com/api/quotes/random; printf '\n'; sleep 5; done" 次のコマンドでこのコンテナを停止できます。 コンテナを一時停止しようとすると、完了するまでにしばらく (約 10 秒) かかることがあります。なぜこのようなことが起こるのでしょうか? Docker は、コンテナ内で実行されているメイン プロセスに Linux SIGTERM シグナルを送信します。 上記のコマンドでは、コンテナの名前を使用して、停止するコンテナを指定します。コンテナIDも使用できます。 コンテナ ID を取得するにはどうすればよいですか? これを行うにはいくつかの方法があります。手動の方法は、実行中のすべてのコンテナを一覧表示し、リストから探しているコンテナを見つけることです。そこからIDをコピーするだけです。 $ export CONTAINER_ID = $(docker container ls | grep quotes | awk '{print $1}') ここでは、AWK を使用して最初のフィールド (コンテナ ID) を取得します。これで、コンテナ名を使用する代わりに、式で $CONTAINER_ID 変数を使用できるようになりました。 $ docker コンテナを停止 $CONTAINER_ID コンテナが停止されると、そのステータスは「終了」に変わります。 停止したコンテナは、docker container start コマンドを使用して再起動できます。 コンテナの削除 docker container ls -a コマンドを実行すると、多数のコンテナが「Exited」状態になっていることがわかります。 これらのコンテナーが不要になった場合は、メモリから削除することをお勧めします。そうしないと、貴重なリソースが消費されてしまいます。コンテナを削除するコマンドは次のとおりです。 あるいは、次のコマンドを使用することもできます。 実行中のコンテナを削除できない場合があります。強制的に削除する場合は、コマンドライン パラメータ -f または --force を使用できます。 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:
|
>>: MySQL サービスを起動できない問題の解決策を含む MySQL 5.7.17 インストール チュートリアル
この記事では、ドラッグ可能なモーダルボックスを実装するためのJavaScriptの具体的なコードを参...
目次このシリーズの背景概要PostgreSQL データベースの準備ソースからインストール仮想環境の作...
変数の宣言グローバル変数の設定@a='新しい変数' を設定します。関数やストアドプロ...
この記事では、テキストクロックを実装するためのキャンバスの具体的なコードを例として紹介します。具体的...
Optgroup は、ドロップダウン リストのコンテンツをより整理するために、select タグで使...
構造とプレゼンテーションを分離するもう 1 つの重要な側面は、セマンティック マークアップを使用して...
まとめDocker-compose は複数の Docker コンテナ サービスを簡単に組み合わせるこ...
目次簡単な紹介1. 現在のgccバージョンを確認する2. gccインストールパッケージ(バージョン1...
この記事では、ウォーターフォールフローが底に達したときにデータを動的にロードするためのjsの具体的な...
目次1. パッケージ化コマンドを追加する2. パッケージ化されたコードを実行する3. パッケージ化し...
先週末、兄弟プロジェクトはより良いサービスを提供するためにサーバーを拡張する準備をしていました。兄弟...
入力タグタイプがファイルで、タグ内にaccpet="image/*"属性が設定さ...
カリで再現まず、必要なvim.basicファイルにsuid権限を設定します。 chmod u+s /...
目次1. シナリオ2. 基盤となるAPIを簡素化する2.1 自動的に破棄を呼び出す2.2 VM値を作...
MySQL でレコードを更新すると、構文は正しいのですが、レコードが更新されません...質問文実行前...