オープンソースの詳細については、以下をご覧ください。 51CTO オープンソース基本ソフトウェアコミュニティ https://ost..com
実際、コンテナとホストが互いに分離されているため、前回の記事で説明したポート マッピングと非常によく似ていることは理解しにくいことではありません。ポート マッピングは、2 つの分離されたエンティティ間にチャネルを構築し、通信を共有できるようにします。データ ボリュームについても同様ですが、コンテナの停止によってデータ ボリュームが消えることはありません。コンテナまたはホストがバインドされている限り、データ ボリュームの内容は失われません。 データ量1. ホストディレクトリにマウントするための直接コマンド1. nginxをテストするdocker run -v ホストディレクトリ: コンテナディレクトリ 2 つのディレクトリがマウントされると、ディレクトリを共有するのと同じになります。どちら側が変更ディレクトリの内容を送信しても、内容は変更されます。こうすることで、ホスト側のディレクトリを操作するだけで、コンテナ内のディレクトリもそれに応じて変更されます。前回の記事で行ったcp操作と同様に保存しておき、バージョンアップが必要な時はホストマシン上で操作するだけで済みます。次に、nginx でテストし、独自にカスタマイズした Web ページをマウントします。 ここで、私自身の Web ページは /var/www/html に配置されます。次に、nginx コンテナ内の html フォルダーにマウントする必要があります。 実行されており、アクセス可能であることがわかります。 Web ページが機能するかどうか確認してみましょう。 はい、問題ありません。ここでは、docker examine container id を通じて詳細情報を表示することもできます。 ここでマウントが成功したことがわかります。 -v を使用すると、ローカル ディレクトリの Web ページをコンテナーに簡単に配置できることがわかります。この時点で、2 つのディレクトリは実際に同じディレクトリを共有していると言えます。このコンテナーを削除しても、内部の内容は保持されます。
2. MySQLをテストするデモにはmysql:5.7バージョンを使用します。まず、docker pull mysql:5.7 を実行します。もちろん、まずは公式サイトに行って確認します。やはり、問い合わせや勉強のために公式サイトに直接アクセスすることをお勧めします。 ただし、マウント ディレクトリの管理を容易にするために、ここでコマンドを変更する必要があります。 docker run -d -v / home / mysql / conf : /etc/ mysql / conf 。 d -v / home / mysql / data : /var/ lib / mysql - e MYSQL_ROOT_PASSWORD = root - p 3310 : 3306 -- name mysql01 mysql : 5.7 前の記事を読んだ後では、このコマンドを理解するのは難しくないと思います。 次に、接続されているかどうかをテストしてみましょう。 成功したことがわかります! Navicat にテーブルを追加して、サーバー上に存在するかどうかを確認しましょう。 このようにして、MySQL コンテナのデータ永続化が完了しました。コンテナを削除しても、データベース内のデータは保持されます。 2. 匿名マウントと名前付きマウント匿名マウントや名前付きマウントも簡単に理解できます。匿名とは名前が付けられないことを意味し、名前付きとは特定の名前が付けられることを意味します。 一つずつ紹介しましょう。ここでは、ポート 8080 で実行しているため、-P を使用してポートをランダムに指定します。 匿名docker volume ls を使用してデータ ボリューム リストを表示し、docker inspect [volumename] を使用してボリューム情報を表示できます。 詳細な使用パラメータについては、--help を参照してください。 docker コンテナ ID を検査する 名前docker コンテナ ID ビューの検査 もう1つだけ付け加えておきます。 この写真を見れば簡単に理解できます。通常は名前でマウントすることをお勧めします。 読み取り専用に設定: docker run -d -v ホストディレクトリアドレス: / usr / share / nginx / html : ro -p 8080 : 80 -- name 3. データボリュームコンテナコンテナがホストと通信できるのと同様に、コンテナ同士も通信できます。親コンテナはデータ ボリューム コンテナです。コンテナとホストがデータ ボリュームを通じてファイルを共有できることはすでにわかっているので、当然コンテナもデータ ボリュームを通じてファイルを共有できます。 -- volumes - コンテナ間でデータを共有するためのコマンド。 ここではデモンストレーションに nginx を使用します。まず、データ ボリュームを親コンテナとしてコンテナを起動します。 docker01と呼ぶことにします docker run -d --name docker01 -P -v volume01 : / home / volume01 nginx 最初のコンテナの準備ができました。2 番目のコンテナを作成しましょう。 docker run -it --name docker02 --volumes - from docker01 nginx / bin / bash ホーム ディレクトリに移動して、volume01 フォルダーがすでに存在するかどうかを確認できます。 ここで新しいファイルを作成し、helloDocker.py をタッチして、docker01 に移動して共有されているかどうかを確認します。 成功したことがわかります。 Dockerファイル
以下は、私が見つけた、よく使用される Docker コマンドの 2 つの簡単な図です。コマンドの詳しい紹介をじっくりご覧いただけます。 ENTRYPOINT と CMD の機能説明はほぼ同じですが、それでも違いがあることがわかります。 CMD コマンドは最後のコマンドを実行し、ENTRYPOINT コマンドが追加されます。 そこで、ここでは DockerFile を記述してそれらの違いを説明します。 [ root @ VM - 0 - 3 - centos ~ ]# cd dockerFile / このようにして、非常にシンプルな dockerfile を作成しました。つまり、このイメージを実行すると、自動的に ls -a が実行されます。次に、ビルド コマンドを使用してイメージを作成します。 docker build -f docker - test - cmd -t test01 - cmd 。 これで作成できました。実行して試してみてください。 ここで、実行コマンドの後に -l を追加します。理論的には、-l を追加すると、実行時にこのイメージによって実行されるコマンドは ls -a -l になるはずですよね?試してみましょう。 エラーが報告されていることがわかります。これはなぜでしょうか?前述のように、CMD コマンドは最後の項目のみを実行するため、実行時にコマンド -l を追加すると、実際のイメージの実行時に実行されるコマンド -l が ls -a に置き換わり、centos は -l の意味を認識できなくなります。 ENTRYPOINT を追加できます。この場合、エントリポイントはコマンド ls -a -l を実行できます。ここでは説明しません。 Tomcatイメージを作成するまず、いくつかのインストール パッケージを準備する必要があります。公式サイト、jdk ダウンロード、tomcat ダウンロードで検索できます。 ダウンロード後、xftp を使用してアップロードするだけです。 次に、Dockerfile ファイルを書きます。 centos から: centos7
次に実行します
正常に実行され、マウントされていることがわかります。詳しくはページをご覧ください。 ログも閲覧可能です。
成功したことがわかります。
ウェブ< ? xml バージョン= "1.0" エンコーディング= "UTF-8" ? > インデックス< ! DOCTYPE html > 次に、ページの効果を見てみましょう。 わかりました。 リポジトリにプッシュする画像を作成した後、それを他の人に使用してもらうにはどうすればよいでしょうか?方法は2つあります。 1つはローカルでパッケージ化して他の人に送信すること、もう1つは公式のDockerリポジトリや、Alibaba CloudやTencent Cloudなどの大手企業の公式リポジトリにアップロードすることです。ただし、公式のDockerリポジトリノードは海外にあるため、速度は良いときもあれば悪いときもあり、操作も同様です。ここでは Alibaba Cloud を例に挙げます (Tencent Cloud でも同様の操作が行われます)。 まず、Alibaba Cloudにログインします。 コンテナ イメージ サービスを直接検索します。個人的なテストでは、個人バージョンを使用できます。次に、プロンプトに従ってコマンド スペースを作成し、イメージ リポジトリを作成します。ローカルリポジトリを選択すると、プッシュチュートリアルが表示されます。 これらの内容は、ご自身で読んでみてください。正式な命令は非常に詳細です。公式コマンドに従って、イメージを公式ウェアハウスに簡単にプッシュできます。 補充するイメージがどのように生成されたかを確認できるように、docker history image id などの他のコマンドも追加します。 いいね👇 要約するこの時点で、基本的にイメージを独立して構築し、それを使用してプロジェクトを構築および公開することができます。 オープンソースの詳細については、以下をご覧ください。 51CTO オープンソース基本ソフトウェアコミュニティ https://ost..com. |
>>: AI エッジコンピューティングとは何ですか?エッジコンピューティングの利点は何ですか?
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています世界最大の...
上場企業にとって、損失を利益に変えるということは、発展における重要な節目となることが多い。損失を利益...
1.CNドメイン名は5月29日に個人登録が開始されますAdmin5 Webmaster Networ...
トラフィックとユーザーの生成は一度きりのことではなく、モバイルで持続的かつ長期的な運用が必要です。な...
調査によると、世界的なコロナウイルスのパンデミックにより、クラウドコンピューティング関連の仕事の需要...
私はこれら 3 つのツールをすべて使用しました。Mozは最も古いツールで、 2004 年にリリース...
次のような問題によく遭遇します: 1. ポータルサイトを運営し、その商品を販売して利益を得る2. 仲...
入札プロモーションを数年間行っている場合、毎年、Baiduの入札プロモーションの結果に「低迷期」が数...
Linode はこれまで、米国西海岸に 1 つの FMT データセンターしか持っていませんでした。A...
以前、企業のお客様と雑談していたところ、同社がサイトグループ戦略という概念を提案していることが分かり...
Crissic の VPS は G ポートをベースとしており、月間トラフィックを使い切ると自動的に ...
マイクロソフトのインスタント メッセージング ソフトウェア Windows Live Messeng...
2018年2月15日(戌年)、今日は大晦日です。Host Catをご覧の兄弟の皆さん、新年のご多幸と...
2024年の3分の1が過ぎました。周囲の状況を注意深く観察すると、さまざまなクラウド プラットフォー...
[[431995]]クラウド サービスの継続的な革新と高度化により、企業はランサムウェア攻撃に対応す...