Docker の使用に関するヒント 1. 停止したDockerコンテナをすべてクリーンアップする 停止したコンテナや強制終了エラーで使用できないコンテナが多数ある場合、それらを削除する必要がありますが、1つずつ削除するのは面倒です。コンテナの数だけrmを実行する必要があります。docker ps -qaですべてのコンテナのIDを調べて、一度にすべて削除できます。実行中のコンテナを削除する心配はありません。rmでは実行中のコンテナを削除できません。この方法で、停止しているコンテナを一度にすべて削除できます。 # Linux環境にのみ適用可能 docker rm $(docker ps -qa) 2. イメージ内の環境変数を表示する イメージを作成したり取得したりするときに、その環境変数を知りたい場合、まずコンテナを作成してそれを確認することを考えます。実際、そうする必要はありません。envを通じて直接確認することができます。 docker で nginx env を実行する 3. WindowsとLinuxの違い これら 2 つの環境の違いの主な理由は、Docker のサポートの問題です。Docker は最初に Linux でリリースされ、Linux カーネルに依存していることは誰もが知っていますが、Windows では利用できません。では、現在どのように使用するのでしょうか。仮想マシンです。Win10 未満のバージョンであれば、基本的に VirtualBox でインストールされます。多くの Win10 ユーザーはデスクトップ バージョンを選択し、仮想マシンの一種である Hyper-V を使用します。 Docker は、仮想マシンが利用可能になった後にのみ Windows で使用できます。ここでは、2 つの違いを知っておく必要があります。 Linux では、Docker は Linux システム上に直接存在しますが、Windows では異なります。Windows システムは仮想マシンであり、Docker は仮想マシン上にあります。 Linux システム<< Docker コンテナ Windows システム << 仮想マシン << Docker コンテナ これが、使用方法が少し異なる理由です。最も一般的なのは、ポートを開くときです。 Linux システム: Docker コンテナ ポートは Linux システムに直接マッピングされます Windowsシステム: Dockerコンテナポートは仮想マシンにマッピングされ、その後仮想マシンによってWindowsにマッピングされます。 注: 仮想マシンでネットワークを選択するときは、ネットワーク アドレス変換 (NAT) を選択してください。そうすれば、中間の仮想マシンから Windows レイヤーへのポート マッピングの問題を心配する必要がなくなります。 4. マウント Docker を使用する場合、多くの人はイメージを作成し、アプリケーションを直接イメージにパッケージ化して、イメージを直接起動することを好みます。すべては問題ありませんが、時には構成ファイルや一部のプロジェクトでの小さな変更など、いくつかの小さな変更を加えることは避けられません。このとき、新しいイメージを作成する必要がありますか?答えはノーです。必要はありません フロントエンドでは nginx イメージのデプロイを使用していますが、公開後に微調整が必要なスタイルがあることがわかりました。イメージを作り直す必要がありますか? これは面倒でしょうか (少なくとも私にとっては面倒です)。考えてみてください。コンテナ内のファイルを変更されたファイルで上書きするだけです。コンテナ内のファイルを変更されたファイルで直接上書きするにはどうすればよいでしょうか? 方法は 2 つあります。1 つ目は、ファイルを直接コンテナに cp することです。このプロセスでは、コンテナを操作する必要があります。コンテナを移動しないようにするにはどうすればよいでしょうか?マウントコンテナを起動するときに、後で変更するものをホストに直接マウントできるので、コンテナを移動する必要はありません。起動時にホストファイルまたはディレクトリをコンテナにマウントするには、-vパラメータを使用します。 docker run -d -p 80:80 -v /c/Users/SunArmy/Desktop/html:/usr/share/nginx/html nginx index.htmlを書いて、そこに welcome nginx と書いてみましょう このファイルを/opt/docker/html/のindex.htmlで上書きします。 再訪 再起動する必要はありません。OKをクリックするだけです。 コンテナに直接cpを選択しないのはなぜですか? 設定ファイルを修正する必要がある場合、再起動する必要がありますが、修正時に誤って間違った設定ファイルを書き込むと、コンテナが起動できなくなり、コンテナ内の設定を変更できなくなります(コンテナを再作成しない限り)。つまり、設定ファイルを外部にマウントしておけば、起動できない場合は、ホスト上で正しい設定に直接修正して再起動することができます。まとめると、コンテナへの cp 方式よりもマウント方式の方が便利で安全です。 1. jqツール 最後に、jsonを操作するためのツールを紹介します。これはコンテナの設定を表示するときに使用します。コンテナの設定を表示するにはdockerinspectIDを使用しますが、これにより、興味のある情報がフィルタリングされることがよくあります。通常はdockerinspect --format=を選択するか、grepを使用します。 しかし、どちらを使用しても、私たちが最もよく知っている json 操作方法ほど優れているわけではありません。 jqツールは別途インストールする必要がありますyum install jq jqを使用してdockerinspectをフィルタリングし、アドレスを取得します。 docker 検査 ac |jq -r .[0].NetworkSettings.IPAddress . はパイプラインの前の出力を表し、その後の [0] は配列の最初の要素を表します。その後の . はオブジェクト内の属性を指し示すのと似ており、これは通常 json を使用する場合と同じです。jq は json ファイルを便利にフォーマットして表示することもできるため、コマンドラインで json ファイルを表示するのに最適なツールです。 2. Dockerローカルイメージとコンテナの保存場所を変更する 多くの人はコンテナが作成されたことは知っているものの、作成されたコンテナがどこにあるかについては注意を払っていません。ローカルミラーはどこにありますか? ただし、注意を払う必要がある場合、多くの場合、Docker イメージとコンテナーによってディスクがいっぱいになっていることが原因です。 Docker イメージとコンテナが保存されている場所を表示する docker 情報 | greo Docker デフォルトの場所は次のとおりです: /var/lib/docker 保存場所を変更するには、次の 2 つの方法があります。 1): ソフトリンクを確立して/var/lib/dockerを別の場所に移動し、ここにソフトリンクを確立します # Dockerを停止する サービス docker 停止 # /var/lib/docker を /usr/local/ に移動する mv /var/lib/docker /usr/local/ # ソフト接続を作成する ln -s /usr/local/docker /var/lib/docker # Dockerを起動する サービスdocker開始 この時点では修正は済んでいるが、場所を確認すると、/var/lib/dockerが残っている。 しかし、これはリンクです。サイズを確認すると空であることがわかります。実際の保存場所は/usr/local/dockerになっています # /var/lib/docker ディレクトリのサイズを表示します du -dh /var/lib/docker 2): 設定ファイルを変更する デフォルトの設定ファイルは/etc/docker/daemon.jsonです。 そうでない場合は、自分で作成してください { "レジストリミラー": ["http://hub-mirror.c.163.com"], "グラフ":"/opt/docker" } グラフの値を自分の場所に合わせて変更し、再起動するだけです。 起動する サービス docker 停止 停止 サービスdocker開始 再起動 サービスdockerの再起動 dockerの保存場所を再度確認すると、正常に変更されています 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
>>: Mac で MySQL バージョン 5.6 のパスワードを設定する方法
よく食べて十分に休息を取るというのは簡単なことのように思えますが、実際に実行するのはそれほど簡単では...
データベースデータをエクスポートします:まずcmdを開いてMySQLのbinフォルダに入ります1. ...
目次1. 関数バインディング2. パラメータと$eventを使用する3. 1つのイベントに複数の関数...
1. フォルダを削除する例: rm -rf /usr/java /usr/javaディレクトリとその...
インターネット上には、正しい方法であっても、使用しても正しい結果が得られない方法が数多くあります。正...
以前にも紹介しました: docker (一般的なアプリケーションのデプロイ): docker dep...
目次背景: Nginx スムーズ アップグレード ソリューションフォールバック手順要約する背景:負荷...
目次1. コンテナライフサイクル管理(1)ドッカー実行(2)スタート/ストップ/リスタート(3)ドッ...
この質問は、Nuggets のメッセージから生まれました。友人が、次のコードの高さ遷移アニメーション...
概要: 多くの企業、特にインターネット Web サイトを主な事業とする企業のほとんどが、「アーティス...
アップグレードの背景: MySQLの下位バージョンの脆弱性を解決するために、MySQLはMySQL ...
1. /etc/passwdファイル内のデフォルトシェルが/sbin/nologinではないユーザー...
目次序文動的SQL 1. まずモジュールのディレクトリ構造を見てみましょう2. 物理モデリングと論理...
余計なことは言わないで、コードだけ見てみましょう〜 # docker-compose をダウン # ...
rpm パッケージのインストールは比較的簡単なので、ここでは説明しません。ほとんどのオープンソース ...