Docker一行命令完成FTP服務(wù)搭建的實(shí)現(xiàn)
一行命令
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=always \ fauria/vsftpd
參數(shù)解釋:
-d 表示新建容器在后臺(tái)運(yùn)行
-v 表示設(shè)置目錄映射 設(shè)置舉例 -v /share:/home/vsftpd 將宿主機(jī)的/share目錄映射到docker容器的/home/vsftpd (用戶zhaoolee登錄后, 程序會(huì)在/home/vsftpd文件夾下, 自動(dòng)新建一個(gè)zhaoolee文件夾, 用來(lái)存放上傳的文件)
-p 為映射端口 -p 20:20 表示將宿主機(jī)20端口映射到docker容器的20端口,-p 21:21 表示將宿主機(jī)21端口映射到docker容器的21端口, -p 21100-21110:21100-21110 表示將宿主機(jī)的21100到21110端口映射到docker容器的21100到21110端口
與端口密切相關(guān)的是主動(dòng)模式和被動(dòng)模式兩種連接方式
- 主動(dòng)模式: 21端口為ftp默認(rèn)的端口,是ftp的控制端口, 而20端口是ftp的數(shù)據(jù)端口, 21端口用來(lái)接收客戶端連接, 20端口用來(lái)傳輸數(shù)據(jù); 服務(wù)器(主動(dòng)地)定下規(guī)矩,客戶端與服務(wù)端建立連接, 那通過21端口, 想傳數(shù)據(jù)就通過20端口, 20端口和21端口結(jié)合到一起就是ftp的主動(dòng)模式
- 被動(dòng)模式: 主動(dòng)模式有一些安全性問題, 如果有人想攻擊你的ftp服務(wù), 就直接到20端口堵你, 為了避免數(shù)據(jù)出門被人堵, 就出現(xiàn)了被動(dòng)模式, 被動(dòng)模式把傳數(shù)據(jù)的20端口, 改成了范圍, 比如上文中的21100-21110, 具體哪個(gè)值由客戶端來(lái)定(比如21115), 這樣傳出的數(shù)據(jù)就不容易被人堵,安全性大大提升, 現(xiàn)在大多數(shù)ftp客戶端,默認(rèn)使用被動(dòng)模式連接服務(wù)器, 也就是由客戶端定傳數(shù)據(jù)的端口
-e 表示追加參數(shù)
FTP_USER 為ftp登錄用戶名, 設(shè)置示例 FTP_USER=zhaoolee
FTP_PASS 為ftp登錄密碼, 設(shè)置示例 FTP_PASS=eelooahz
PASV_ADDRESS 為外網(wǎng)ip , 設(shè)置示例PASV_ADDRESS=104.243.20.148 (非常重要: 這里一定要綁定宿主機(jī)對(duì)外的ip, 否則后面會(huì)連不上, zhaoolee在這里調(diào)了好久...)
PASV_MIN_PORT為客戶端連接服務(wù)器的最小端口號(hào)為21100 (被動(dòng)模式下服務(wù)端最小端口號(hào))
PASV_MAX_PORT為客戶端連接服務(wù)器的最大端口號(hào)為21110 (被動(dòng)模式下服務(wù)端最大端口號(hào))
--name zhaoolee_vsftpd 表示容器名為 zhaoolee_vsftpd(這個(gè)名字可以自定義)
--restart=always 表示 restart可以
fauria/vsftpd 代表鏡像名
用阿里云做個(gè)測(cè)試
開啟 端口20 , 端口21, 端口段21100-21110
創(chuàng)建容器
連接測(cè)試(FillZilla下載鏈接: https://filezilla-project.org/download.php?type=client)
通過ftp上傳文件
小結(jié):
ftp是一個(gè)常用的服務(wù), 這里使用vsftp的docker方式完成搭建, 一行命令搞定
docker鏡像 fauria/vsftpd 開源地址: https://github.com/fauria/docker-vsftpd, 可以找到詳細(xì)的操作文檔
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決Docker錯(cuò)誤“docker?build“?requires?exactly?1?argument(s)
這篇文章主要介紹了解決Docker錯(cuò)誤“docker?build“?requires?exactly?1?argument(s)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08docker nginx 部署多個(gè)項(xiàng)目的示例方法
這篇文章主要介紹了docker nginx 部署多個(gè)項(xiàng)目的示例方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-11-11docker簡(jiǎn)單安裝部署mysql并配置遠(yuǎn)程連接
使用docker部署mysql,可以省去mysql的安裝配置過程,下面這篇文章主要給大家介紹了關(guān)于docker簡(jiǎn)單安裝部署mysql并配置遠(yuǎn)程連接的相關(guān)資料,需要的朋友可以參考下2023-06-06Docker安裝LNMP環(huán)境的詳細(xì)過程(可部署TP項(xiàng)目)
這篇文章主要介紹了Docker安裝LNMP環(huán)境的詳細(xì)過程(可部署TP項(xiàng)目),主要包括安裝docker,安裝nginx,安裝php的命令詳解,需要的朋友可以參考下2022-06-06windows server 2016安裝docker的方法步驟
這篇文章主要介紹了windows server 2016安裝docker的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2019-06-06docker安裝redis并以配置文件方式啟動(dòng)詳解
這篇文章主要介紹了docker安裝redis并以配置文件方式啟動(dòng)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12