Docker で FastDFS をデプロイする方法

Docker で FastDFS をデプロイする方法

Dockerにfastdfsをインストールする

ディレクトリをマウント

-v /e/fdfs/トラッカー:/var/fdfs

/e/fdfs/tracker windowsのフォルダパスはE:\fdfs\trackerです

/var/fdfsはコンテナ内のファイルの絶対パスです

ネットワークを表示

docker network ls # ネットワークリスト docker network create --driver bridge --subnet=192.168.127.0/24 fastdfs_fastdfs_net # まだ使用されていないカスタムネットワークセグメントを作成する

画像をダウンロード

docker プルシーズン/fastdfs

トラッカー コンテナを作成します。トラッカー サーバーのデフォルト ポートは 22122 です。

## デプロイメントプロセスではブリッジネットワークを使用します docker run -ti -d --name trakcer -v /f/fastdfs/tracker_data:/fastdfs/tracker/data -p 22122:22122 season/fastdfs tracker

Docker イメージを使用してストレージ コンテナ (容量とバックアップ サービスを提供するストレージ サーバー) を構築する

## 172.17.0.2 はコンテナの IP アドレスですdocker run -tid --name storage -v /f/fastdfs/storage_data:/fastdfs/storage/data -v /f/fastdfs/store_path:/fastdfs/store_path -p 8080:8080 -p 23000:23000 -p 80:80 -e TRACKER_SERVER:172.17.0.2:22122 -e GROUP_NAME=group1 season/fastdfs storage

この時点で両方のサービスが開始されます

### サービスを設定し、ストレージ コンテナーに入り、ストレージ設定ファイルで http アクセス用のポートを設定します。設定ファイルは、fdfs_conf ディレクトリの storage.conf にあります。
docker exec -it ストレージ bash
fdfs_confをコピーする
ストレージ.confの詳細

次に、ストレージ コンテナーを終了し、構成ファイルをコピーします。

docker cp ストレージ:/fdfs_conf/storage.conf ./

変更した構成ファイルをストレージ構成ディレクトリにコピーします。

docker cp ./storage.conf ストレージ:/fdfs_conf/

ストレージコンテナを再起動する

docker ストレージを停止する
docker ストレージを起動する

トラッカーコンテナとストレージコンテナの関連性を確認する

docker exec -it ストレージ bash
fdfs_confをコピーする
fdfs_monitor ストレージ.conf 

docker シミュレートクライアントのストレージコンテナにファイルをアップロードする

## クライアントを開く docker cp ./storage.conf fdfs_sh:/fdfs_conf/

設定ファイルを変更します。以前一度変更されているので、今はそれをコピーするだけです。

docker exec -it fdfs_sh bash

txtファイルを作成する

docker exec -it fdfs_sh bash
エコーhello>a.txt

fdfs_confディレクトリに入り、ファイルをストレージコンテナにアップロードします。

fdfs_confをコピーする

fdfs_upload_file ストレージ.conf /a.txt

Windows コマンド

netstat -aon|findstr "22122" # ポートが無効になっているかどうかを確認します netsh firewall set opmode mode=disable # ファイアウォールを無効にします netsh firewall reset

https://hub.docker.com/r/qbanxiaoli/fastdfs)

Windows Server 2012 R2 環境で docker-toolbox を使用してイメージ アクセラレーションをインストールおよび構成する

docker-machine ssh デフォルト
sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=http://hub-mirror.c.163.com |g" /var/lib/boot2docker/profile
出口
ドックマシンの再起動デフォルト

Docker インストール プロンプト: デーモンからのエラー応答: クライアントがサーバーより新しい

解決策: docker versionコマンドを使用してクライアントのバージョンを確認し、クライアントのバージョンをサーバーのバージョンと一致するように変更します (export DOCKER_API_VERSION=1.22) コードをコピー

DockerToolbox のプロンプト: デフォルトの Boot2Docker ISO は古くなっています

解決策: この問題は、最新バージョンのboot2docker.isoファイルをダウンロードしてコピーし、インストール ディレクトリとキャッシュ ディレクトリに配置することで解決できます。

最新バージョンのboot2docker.isoイメージをダウンロードします。公式ダウンロード アドレス: https://github.com/boot2docker/boot2docker/releases それをローカル キャッシュ ディレクトリ ( C:\Users\admin.docker\machine\cache\ ) にコピーし、ローカル インストール ディレクトリ ( C:\Program Files\Docker Toolbox ) にコピーして、 -Docker再度実行します。 -Docker Quickstart Termina l ターミナル コンソールを再度実行すると、```default`` 仮想マシンを正常に作成できます。

上記のエラーメッセージが引き続き表示される場合は、 boot2docker.isoのバージョンが最新ではないためです。起動時に、システムはインターネットに接続して最新のboot2docker.isoをチェックしてダウンロードします。ただし、 githubアクセス速度は非常に遅いため、システムが停止します。そのため、ネットワークが切断され、チェック手順がスキップされます。 boot2docker.isoをロードした後は、後でdockerを開いても問題はありません。

フォルダのマウント

https://www.jb51.net/article/176813.htm

Fastdfs 統合 SpringBoot 構成

#高速DFS
fdfs:
  タイムアウト: 1501
  接続タイムアウト: 601
  サムネイル画像: #サムネイル生成パラメータ 幅: 200
    高さ: 200
  トラッカーリスト:
    - 192.168.118.162:22122

独立した IP を介して Windows コンテナ イントラネットの Docker に直接アクセスする方法

ルーティングテーブルの設定によるIP相互通信の実装

route print

## ルートを追加 route -p add 172.17.0.0 MASK 255.255.255.0 10.0.75.2

独立した IP を介して Windows コンテナ イントラネットの Docker に直接アクセスする方法

Docker デプロイメント FastDfs - 方法 2

-v /e/fdfs/トラッカー:/var/fdfs

/e/fdfs/tracker windowsのフォルダパスはE:\fdfs\trackerです

/var/fdfsはコンテナ内のファイルの絶対パスです

クローンプロジェクト

## このイメージは Nginx が統合されたイメージです。git clone https://[email protected]/qbanxiaoli/fastdfs.git 

fastdfsディレクトリに入る

cd fastdfs

docker-compose.ymlを修正してIPを変更する

シェルバージョン: '3.0'
サービス:
 ファストDFS:
  建てる: 。
  画像: qbanxiaoli/fastdfs
  # コンテナを起動して自動的に再起動する必要があるかどうか。必要に応じてコメントを解除します。
  再起動: 常に
  コンテナ名: fastdfs
  ポート:
   - 8080:8080
   - 22122:22122
   - 23000:23000
  環境:
   # TZ を使用: Asia/Shanghai
   # nginx サービス ポート、デフォルト ポート 8080、変更可能 WEB_PORT: 8080
   # tracker_server サービス ポート、デフォルト ポート 22122、変更可能 FDFS_PORT: 22122
   # Fastdht サービス ポート、デフォルト ポート 11411、変更可能 FDHT_PORT: 11411
   # Docker が配置されているホスト マシンの IP イントラネット アドレス。デフォルトでは、eth0 ネットワーク カードの IP アドレスが使用されます: 192.168.118.93
  ボリューム:
   # ローカル ディレクトリを Docker コンテナ内の fastdfs データ ストレージ ディレクトリにマップし、fastdfs ファイルをホストに保存して、Docker コンテナが再構築されるたびに以前に保存されたファイルが失われないようにします。
   - /e/fastdfs/fastdfs:/var/local
  # Windows と Unix はホスト ネットワークを認識できないため、コンテナー IP をホスト IP ネットワークと一致させるために新しいネットワーク セグメントを作成する必要があります。
   ファストdfs_net:
    ipv4_アドレス: 192.168.118.93

ネットワーク:
 ファストdfs_net:
  ドライバー: ブリッジ
  ドライバーオプション:
   親: eth0
  ipam:
   設定:
    - サブネット: 192.168.118.0/24

docker-composeコマンドを実行する

シェルdocker-composeアップ-d

fastdfsが正常に構築されているかどうかをテストする

# コンテナに入る docker exec -it fastdfs /bin/bash

tracker_serverを再起動する

shell/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf を再起動

storage_serverを再起動します

shell/usr/bin/fdfs_storaged /etc/fdfs/storage.confを再起動

ストレージステータスの表示

shellfdfs_monitor /etc/fdfs/client.conf

localhost:8080 nginxにアクセス

デプロイメントが成功したことを示します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • docker compose を使用して FastDfs ファイル サーバーをインストールする詳細な例
  • Docker に fastdfs イメージをインストールする際の注意事項
  • Docker で FastDFS ファイル システムを構築する (マルチイメージ チュートリアル)
  • DockerにFastDFSをインストールする方法
  • docker compose を使用して fastDFS ファイル サーバーを構築する方法

<<:  Navicat For MySQL の使い方に関する簡単なチュートリアル

>>:  Vueルーティングはページステータスを復元する操作メソッドを返します

推薦する

面接では、select...for update がテーブルをロックするのか、それとも行をロックするのか尋ねられました。

目次確認する:例の検証と組み合わせるselect クエリ ステートメントはロックされませんが、sel...

Javascriptでシンプルなナビゲーションバーを実装

この記事では、参考までに、シンプルなナビゲーションバーを実装するためのJavascriptの具体的な...

MySQL での find_in_set() 関数の使用に関する詳細な説明

まず、例を見てみましょう。記事テーブルにはタイプフィールドがあり、1 見出し、2 おすすめ、3 ホッ...

NodeJSプロセスがどのように終了するかについて詳しく説明します

目次序文積極的な撤退例外、拒否、および発行されたエラー信号まとめ序文NodeJS プロセスが終了する...

yum から docker インストール パッケージをダウンロードし、オフライン マシンにインストールする例の詳細なコード

1. ネットワークマシンでは、デフォルトのcentosyumソースを使用します [root@kole...

Django が uwsgi+nginx プロキシで静的リソースにアクセスできない問題の解決方法

uwsgi+nginx プロキシ Django をデプロイする場合、uwsgi を使用したアクセスは...

MySQL GRANT ユーザー認証の実装

承認とは、ユーザーに特定の権限を付与することです。たとえば、新しく作成したユーザーに、すべてのデータ...

MySQLスタートアップが起こした事故の実録

目次背景MySQLが完全に起動したかどうかを確認する方法事故最初の変更2回目の改訂要約するMySQL...

js における関数のネストとクロージャの詳細

目次1. 範囲2. 関数の戻り値3. 関数のネスト4. 終了5. クロージャの実用的応用1. 内部変...

CSS3 すりガラス効果

すりガラス効果がうまく表現されていれば、ページが非常に鮮やかで立体的に見えるようになります。写真に直...

Dockerの基本的なネットワーク構成の詳細な説明

外部アクセスポートをランダムにマップする -P フラグを使用すると、Docker は 49000 か...

セマンティックウェブページ XHTML セマンティックマークアップ

構造とプレゼンテーションを分離するもう 1 つの重要な側面は、セマンティック マークアップを使用して...

ランダム点呼 Web ページを実装するための JavaScript

JavaScriptは、参考のためにランダムな点呼Webページを作成します。具体的な内容は次のとお...

JavaScriptはパスワードボックスの検証情報を実装します

この記事では、パスワードボックスの検証情報を実装するためのJavaScriptの具体的なコードを例と...

データ型の判断における js typeof と instanceof の違いと、その開発と使用について

目次1. typeof演算子2. インスタンスオブ演算子3. typeof と instanceof...