1. 概要この記事は、将来のレビューや参照のために、日常的な Docker 管理に関する知識の断片を要約して整理することを目的としています。 2. 応用例2.1、Docker コンテナ分離名前空間名前空間: コンテナ仮想化が依存する Linux の主要なコア テクノロジであり、コンテナを分離するために使用されます。これは主に次の6つの分離技術によって実現されます: 2つの疑似ファイルシステムがあります: /procと/sys/
2.2. Docker のフリー制限 cgroup例1: docker run -it -m 200M --memory-swap 300M centos //-m または –memory: メモリ使用量制限を設定する、–memory-swap: スワップ (スワップ パーティション) 使用量制限を設定する 例 2: docker run -it --name containerB -c 512 centos //containerB、CPU の重み制限は 512 です。-c または –cpu-shares は、コンテナ実験の CPU の重みを設定します。設定されていない場合、デフォルトは1024です 例 3: docker run -it --name testA --device-write-bps /dev/sda:30MB centos //コンテナ testA はディスクへの書き込み量を 1 秒あたり 30 MB に制限します。 その他のパラメータ:
2.3. 実行中のコンテナのポートマッピングを設定するコンテナを停止せずにコンテナ マッピング ポートを調整したい場合があります。では、コンテナの使用中に、コンテナ内のアプリケーションのサービス ポートをローカル ホスト マシンにマッピングするにはどうすればよいでしょうか。 コンテナ内でいくつかのネットワーク アプリケーションを実行し、これらのアプリケーションへの外部アクセスを許可する場合は、-P または -p パラメータを使用してポート マッピングを指定できます。 -P (大) パラメータを使用すると、Docker はホストのローカル ポートを内部コンテナのオープン ネットワーク ポートにランダムにマッピングします。-p (小) パラメータを使用すると、マッピングするポートを指定でき、指定したポートにバインドできるコンテナは 1 つだけです。サポートされている形式は次のとおりです:
いくつかの例を見てみましょう: 例 1: docker run -d -P nginx //docker ps は、3**** ポートがローカル ホストにランダムに割り当てられ、コンテナーのポート 80 にマップされていることを示します。ローカル ブラウザーで http://localhost:3**** にアクセスすると、nginx のウェルカム ページが表示されます。 例2: docker run -d -p 8080:80 nginx //docker psを使用すると、ローカルホストのポート8080がコンテナのポート80にマッピングされていることがわかります。 検証: コマンド形式: docker port CONTAINER [PRIVATE_PORT[/PROTO]] コンテナの特定の情報を取得するには、docker inspect + コンテナ ID を使用します。 例3: 実行中のコンテナにマッピングポートを追加する docker examine \`container_name` | grep IPAddress // コンテナの IP アドレスを取得するには、container_name を実際の環境のコンテナ名に置き換えます。iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000 // コンテナのポート 8000 を docker ホストのポート 8001 にマップします。または: docker commit container_id foo/live //実行中のコンテナをイメージとして送信 docker run -d -p 8000:80 foo/live /bin/bash //イメージを実行してポートマッピングを追加します。ホスト8000をコンテナ80に追加します。 2.4. 実行中のDockerコンテナの内容を変更するDockerでは、ホストとコンテナは相互にファイルをコピーして転送します。 docker cp mycontainer:/opt/testnew/file.txt /opt/test/ // コンテナからホストにファイルをコピーします。 docker cp /opt/test/file.txt mycontainer:/opt/testnew/ // ホストからコンテナにファイルをコピーします。 sudo docker commit -m "説明の内容" -a "作成者名" 32555789dd00 aipaper/devinz83:v2 //-m は、使用するバージョン管理ツールと同様に、提出の説明を指定するために使用されます。-a は、更新されたユーザー情報を指定できます。その後に、イメージの作成に使用したコンテナの ID が続き、最後に、対象イメージのウェアハウス名とタグ情報を指定します。作成が成功すると、イメージID情報が返されます。docker images //REPOSITORY TAGを確認します aipaper/devinz83 v2 #コンテナ設定ファイルyamlを変更する : docker-compose-resty-redis.yml を編集します。 docker stack deploy --compose-file=/opt/docker/yml/docker-compose-resty-redis.yml resty_redis //新しく変更したイメージを使用して docker アプリケーションをデプロイします 注意: docker cp はコンテナが起動されているかどうかに関係なく有効になります。完了したら、docker commit コマンドを使用して更新されたコピーをコミットします。 次に、コンテナの yml ファイルを更新し、イメージを新しいオブジェクトに更新します。 2.5. Dockerコンテナを他のサーバーに移行するハードウェアのアップグレード、データセンターの変更、リソースの制限など、さまざまな理由により、現在の Docker コンテナを別のリソース プールまたはホストに移行する必要がある場合があります。 1) 輸出入コンテナ: コンテナをエクスポートします。これにより、コンテナのファイル システムから圧縮ファイルが作成されます。エクスポートされたファイルは、「gzip」ファイルとして保存されます。圧縮ファイルは、scp や rsync などのファイル転送ツールを使用して新しいサーバーにコピーされます。新しいサーバーで、gzip ファイルを新しいコンテナーにインポートします。 docker export コンテナ名 | gzip > コンテナ名.gz zcat コンテナ名.gz | docker import - コンテナ名 docker run -d container-name /bin/bash //「docker run」コマンドを使用して、新しいサーバーで作成された新しいコンテナにアクセスします 注: コンテナのエクスポート ツールの欠点の 1 つは、コンテナのポートと変数がエクスポートされず、コンテナを含む基礎データもエクスポートされないことです。これにより、別のサーバーでコンテナをロードしようとするとエラーが発生する可能性があります。この点では、Docker イメージ移行を使用して、コンテナをあるサーバーから別のサーバーに移行することも検討できます。 2) コンテナイメージの移行: つまり、コンテナに関連付けられたイメージを新しいリソース プールに移行します。これは、Docker コンテナを別のサーバーに移行する最も一般的な方法でもあります。移行するコンテナについては、まず「Docker commit」コマンドを使用して、その Docker イメージを圧縮ファイルに保存します。 docker commit container-id image-name //生成されたイメージは圧縮されます その後、上記のイメージを新しいサーバーにアップロードし、新しいサーバーで「docker run」を使用して新しいコンテナを作成します。 3) まず保存してから画像を読み込む Docker イメージは、アプリケーションのコード、ライブラリ、構成ファイルなどのパッケージです。これらのイメージから Docker コンテナが作成されます。 「docker save」を使用してイメージを圧縮し、新しいサーバーに移行できます。次に、新しいサーバーで「docker load」を使用して、圧縮されたイメージ ファイルを使用して新しいイメージを作成します。 docker save イメージ名 > イメージ名.tar cat イメージ名.tar | docker load 4) データボリュームを移行する: Docker コンテナ内のデータ ボリュームは、コンテナ固有のデータが含まれる共有ディレクトリです。ボリューム内のデータは永続的であり、コンテナの再作成時に失われることはありません。 エクスポート ツールまたはコミット ツールを使用して Docker コンテナーまたはイメージをあるサーバーから別のサーバーに移行する場合、基礎となるデータ ボリュームは移行されません。この場合、データを含むディレクトリは手動で新しいサーバーに移行されます。次に、新しいサーバー上にコンテナを作成し、そのディレクトリをデータ ボリュームとして参照します。 もう 1 つの簡単な方法は、「docker run」コマンドに「-volumes from」パラメータを渡してデータ ボリュームをバックアップおよび復元することです。 docker run --rm --volumes-from データボリューム名 -v $(pwd):/backup イメージ名 tar cvf backup.tar /path-to-datavolume docker run --rm --volumes-from データボリューム名 -v $(pwd):/backup イメージ名 bash -c "cd /path-to-datavolume && tar xvf /backup/backup.tar --strip 1" 上記のコマンドでは、datavolume-name は /path/to/volume です。このコマンドは、データ ボリュームのバックアップを提供します。作業ディレクトリを指定するには、-w/backup を指定することもできます。 /backup フォルダに生成されたバックアップは、scp または ftp ツールを使用して新しいサーバーにコピーできます。コピーされたバックアップは抽出され、新しいコンテナのデータ ボリュームに復元されます。 5) Docker コンテナ全体を移行します。 上記の方法は、単一のコンテナに対してのみ機能します。しかし、すべてのコンテナをあるサーバーから別のサーバーに移行する必要がある場合は、別のアプローチを採用します。この方法では、docker ディレクトリ全体 (「/var/lib/docker」) を新しいサーバーにコピーします。このアプローチを成功させるには、いくつかの重要なポイントを特定する必要があります。
2.6. Dockerイメージ内のファイルを表示するdocker attach ContainerID //対応するコンテナは停止状態ではなく実行中である必要があります##実行されていないコンテナの場合は、次の例に示すように、Dockerイメージ内のファイルをホストにコピーできます。udo docker cp nginx-ubuntu-container:/etc/apt/sources.list ~/Documents/ 2.7. コンテナの実行: docker run の共通オプション構文: docker run [オプション] イメージ名 [起動コンテナに渡されるコマンド] 一般的なオプションパラメータの説明:
Docker管理に関する断片的な知識をまとめたこの記事はこれで終わりです。より関連性の高いDocker管理コンテンツについては、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: int(3)とint(10)の値の範囲はmysqlで同じですか?
<area> タグは、イメージ マップ内の領域を定義します (注: イメージ マップはク...
この記事では、SMS送信のカウントダウンを実装するためのJavaScriptの具体的なコードを参考ま...
序文:複数の要素を格納するために、配列は最も一般的に使用されるデータ構造ですが、配列には多くの欠点も...
この記事では、MySQL インストールの詳細なチュートリアルを記録し、全員と共有します。 1. バー...
前回の記事では、Zabbix のネットワーク検出機能について学習し、アクションと組み合わせてホストの...
目次DOMノード要素ノード:テキストノード:プロパティ ノード:要素を取得getElementByI...
ドメイン名を使ってプロジェクトにアクセスする方法が気になったのですが、自分でドメイン名を取得するのは...
ElementUIページングコンポーネントPagination in Vueの使用は参考になります。...
grubの起動時間を変更するためのオンライン検索は基本的に/etc/default/grubを変更す...
予備的注釈1.Vue2.xとVue3.xの違い: Vue 3.x にはヘルパー関数はありません。 V...
序文Oracle であれ MySQL であれ、新バージョンで導入された新機能は、一方では製品の機能性...
インデックスを追加すると、クエリの効率が向上します。インデックスを追加するということは、ドキュメント...
目次シナリオ中核問題ステータス監視状態監視の利点国家監視の欠点復興実行のアイデア依存関係の収集要約す...
Docker コンテナ内のプログラムは、ホスト ディレクトリ内のデータにアクセスして呼び出す必要があ...
目次MySQL フェデレーテッド クエリ実行戦略。実行計画フェデレーテッドクエリオプティマイザーMy...