Dockerは1行のコマンドでFTPサービス構築の実装を完了します

Dockerは1行のコマンドでFTPサービス構築の実装を完了します

1行のコマンド

docker run -d \
-v /share:/home/vsftpd \
-p 20:20 \
-p 21:21 \
-p 21100-21110:21100-21110 \
-e FTP_USER=zhaoolee \
-e FTP_PASS=eelooahz \
-e PASV_ADDRESS=47.106.108.135 \
-e PASV_MIN_PORT=21100 \
-e PASV_MAX_PORT=21100 \
--name zhaoolee_vsftpd \
--restart=常に\
ファウリア/vsftpd

パラメータの説明:

-dは新しいコンテナがバックグラウンドで実行されることを意味します

-v はディレクトリ マッピングの設定を意味します。例: -v /share:/home/vsftpd は、ホストの /share ディレクトリを Docker コンテナーの /home/vsftpd にマッピングします (ユーザー zhaoolee がログインすると、プログラムはアップロードされたファイルを格納するために /home/vsftpd フォルダーに zhaoolee フォルダーを自動的に作成します)

-pはマッピング ポートです。-p 20:20 はホスト ポート 20 を Docker コンテナのポート 20 にマッピングすることを意味し、-p 21:21 はホスト ポート 21 を Docker コンテナのポート 21 にマッピングすることを意味し、-p 21100-21110:21100-21110 はホストのポート 21100 ~ 21110 を Docker コンテナのポート 21100 ~ 21110 にマッピングすることを意味します。

ポートに密接に関連しているのは、アクティブ モードとパッシブ モードという 2 つの接続モードです。

  • アクティブ モード: ポート 21 は FTP のデフォルト ポートで、FTP の制御ポートです。ポート 20 は FTP のデータ ポートです。ポート 21 はクライアント接続の受信に使用され、ポート 20 はデータの送信に使用されます。サーバーが (アクティブに) ルールを設定し、クライアントがサーバーとの接続を確立すると、ポート 21 を介してデータを送信する場合は、ポート 20 を経由する必要があります。ポート 20 とポート 21 の組み合わせが、FTP のアクティブ モードです。
  • パッシブ モード: アクティブ モードにはセキュリティ上の問題があります。誰かが FTP サービスを攻撃したい場合、ポート 20 で直接ブロックされます。データが送信されるときにブロックされるのを避けるために、パッシブ モードが登場します。パッシブ モードでは、データ送信用のポート 20 が、上記のテキストの 21100-21110 などの範囲に変更されます。具体的な値はクライアントによって決定されます (21115 など)。このようにして、送信データが簡単にブロックされなくなり、セキュリティが大幅に向上します。現在、ほとんどの FTP クライアントは、デフォルトでパッシブ モードを使用してサーバーに接続します。つまり、データ送信用のポートはクライアントによって決定されます。

-eはパラメータを追加することを意味します

FTP_USERはFTPログインユーザー名です。設定例:FTP_USER=zhaoolee

FTP_PASSはFTPログインパスワードです。設定例:FTP_PASS=eelooahz

PASV_ADDRESS は外部ネットワーク IP アドレスです。たとえば、PASV_ADDRESS=104.243.20.148 です (非常に重要: ここでホストの外部 IP アドレスをバインドする必要があります。そうしないと、後で接続できなくなります。Zhaoolee はこれを調整するのに長い時間を費やしました...)

PASV_MIN_PORT は、クライアントがサーバーに接続するための最小ポート番号で、21100 (パッシブ モードのサーバーの最小ポート番号) です。

PASV_MAX_PORT は、クライアントがサーバーに接続するための最大ポート番号で、21110 (パッシブ モードのサーバーの最大ポート番号) です。

--name zhaoolee_vsftpd はコンテナ名が zhaoolee_vsftpd であることを意味します (この名前はカスタマイズできます)

--restart=always は再起動が可能であることを意味します

fauria/vsftpdはイメージ名を表します

Alibaba Cloudでテスト

ポート20、ポート21、ポート範囲21100-21110を開きます

コンテナを作成する

接続テスト (FillZilla ダウンロード リンク: https://filezilla-project.org/download.php?type=client)

FTP経由でファイルをアップロードする

まとめ:

FTPはよく使われるサービスです。ここではvsftpのdocker方式を使って構築を完了させており、コマンド1行で完了できます。
Dockerイメージfauria/vsftpdオープンソースアドレス: https://github.com/fauria/docker-vsftpd、詳細な操作ドキュメントを参照できます

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

以下もご興味があるかもしれません:
  • docker pure-ftp FTPサーバーの構築方法

<<:  MySQLでの少し複雑な使用例コード

>>:  docker-compose を使用して MySQL を実行する方法

推薦する

LinuxでのDockerのインストールチュートリアル

Docker パッケージは、デフォルトの CentOS-Extras リポジトリにすでに含まれていま...

MySQL クロステーブルクエリとクロステーブル更新

SQL の基礎知識がある友人は、「クロステーブル クエリ」について聞いたことがあるはずですが、クロス...

MySQL でのバイナリ型操作

この記事は主にMySQLデータベースのバイナリ型操作を紹介し、具体的な内容を通して紹介します。MyS...

MySQL における in と exists の使い方と違いの紹介

まずコードを書いて (int i=0;i<1000;i++){ (int j=0;j<5...

設計仕様に準拠した設計は良い設計でしょうか?

これまでの数年間、私はいわゆる「設計仕様」についてかなりの数の執筆やコンサルティングを行ってきました...

Windows Server のインストール後にワイヤレスとオーディオが機能しない問題を解決する

1. ワイヤレスPowerShell を実行し、次のコマンドを入力します。 install-wind...

VueプロジェクトにPWAを導入する手順

目次1. 依存関係をインストールする2. vue.config.js ファイルで pwa を設定しま...

JS のディープコピーとシャローコピーの詳細

目次1. 浅いコピーとはどういう意味ですか? 2. ディープコピーとはどういう意味ですか? 3. デ...

Vueを使い始める際に習得する必要がある知識について簡単に説明します

最も人気のあるフロントエンド フレームワークの 1 つとして、Vue は多くのフロントエンド開発エン...

ubuntu20.04 LTS システムのデフォルト ソース ソース リスト ファイルの変更

誤って source.list の内容を変更し、一連のエラーが発生した場合は、デフォルトのソース フ...

JavaScriptのクローン作成についての簡単な説明

目次1. 浅いクローニング2. ディープクローニング1. 浅いクローニング浅いクローンでは配列やオブ...

3つの簡単な例を使ってハイパーリンクの下線を削除する方法

ハイパーリンクの下線を削除するには、スタイルシート CSS を使用する必要があります。当面は CSS...

iFrameは背景を覆うポップアップレイヤーとして使うのに最適です

最近、私は「ぶどうコレクション」というプロジェクトに取り組んでいます。簡単に言うと、Budou ペー...

Linux システムでキャッシュをクリアする方法の概要

1) キャッシュメカニズムの紹介Linux システムでは、ファイルシステムのパフォーマンスを向上させ...

HTMLはマウスをホバーしたときにテキストを表示するためにtitle属性を使用します。

コードをコピーコードは次のとおりです。 <a href=# title="ここに表示...