摘要:而且需要額外的端口映射,占用主機(jī)的端口。的做法比較,而容器中通常只有基礎(chǔ)的工具,沒有一個熟悉的工具套件環(huán)境,操作比較費時費力,不夠直觀。
無圖無真相,先放個效果圖:
背景使用 docker 來跑一些服務(wù)很方便,但是有的時候想管理容器里面的文件卻很麻煩 -- 一般常規(guī)做法有3種:
通過數(shù)據(jù)卷或數(shù)據(jù)卷容器的方式
啟動容器的時候時候啟動 vsftpd 或者 sshd 等服務(wù),并開啟端口映射,然后通過 ftp/sftp 連上去管理
進(jìn)入容器的終端,通過命令行管理
但是這些做法都有一定的缺陷和不便:
1和2都是需要在啟動容器的時候做一些配置,如果容器已經(jīng)啟動了就歇菜了。而且2需要額外的端口映射,占用主機(jī)的端口。3的做法比較 geek ,而容器中通常只有基礎(chǔ)的 shell 工具,沒有一個熟悉的工具套件環(huán)境,操作比較費時費力,不夠直觀。
解決方案: ftp-server-for-docker我所能想到比較好的解決方案是綜合2和3的方案,構(gòu)建一個不需要額外的啟動配置的 FTP 服務(wù)器:ftp-server-for-docker
如何安裝這是一個 docker 專用的 FTP 服務(wù)器 - 允許通過 FTP 協(xié)議來訪問 docker 容器中的文件(即使 docker 容器已經(jīng)啟動了也可以的喲)。基于 linux shell sh 和 docker 的 docker cp.
推薦使用 npm 安裝:
npm install -g ftp-server-for-docker如何運行 示例1
比如說在 localhost:21 上啟動 FTP 服務(wù)器,并運行 test 用戶通過密碼 123456 來訪問:
$ ftp-server-for-docker -H localhost -p 21 --users test:123456 FtpServer start listening at localhost:21示例2
使用 ftp-server-for-docker 來瀏覽容器 wordpress 中的文件:
查看命令行幫助想要知道更多使用方法,可以查看命令行幫助:
$ ftp-server-for-docker --help Usage: ftp-server-for-docker [options] Options: --port, -p Specify which port to listen on(default is 21) [number] --host, -H Specify which host to bind(default is 0.0.0.0) [string] --annoymous, -a Whether enable annoymous user [boolean] --users, -u Specify users (in form like username:password, can be multiple) [array] --config, -c Specify which configuration file to use --debug Whether enable debug mode [boolean] -h, --help Show help [boolean] -?, --help Show help [boolean] Examples: ftp-server-for-docker -h localhost -p 21 Start the FTP Server on -u test:123 localhost:21, allow user `test` to access.實現(xiàn)原理
這個 FTP 服務(wù)器網(wǎng)絡(luò)方面采用了比較成熟的 ftpd ,而文件系統(tǒng)模塊替換成了新寫的 Docker FS.
文件系統(tǒng)的基本操作(stat/readdir/open/unlink...)都是通過 docker exec、docker cp 和臨時文件來完成,比如:
stat 是通過 docker exec
readdir 是通過 docker exec
open 是通過 docker cp
具體實現(xiàn)流程參見源代碼
關(guān)于 TypeScript這個項目中的主要源代碼都使用 TypeScript -- 都是在 src/*.ts 中,通過 tsc 編譯后生成成 lib/*.js,最終npm打包的只有 lib/*.js 沒有 src/*.ts.
這是我第一次使用 TypeScript. TypeScript 的強(qiáng)類型帶來很多方便,也帶來很多不便。綜合而言,TypeScript 讓我想起了曾經(jīng)使用過的 C#,結(jié)合 Visual Studio Code 來用還是利大于弊。TypeScript 能在編輯和編譯的時候就檢查出很多類型問題,而且智能提示確實很棒。
常見問題FileZilla 無法列出目錄結(jié)構(gòu) -- 可以嘗試配置傳輸模式為 主動模式,被動模式還有問題,正在解決ing...
中文目錄顯示亂碼 -- 已知問題,正在解決ing...
如有其他問題,歡迎來提 issue , 當(dāng)然更歡迎 fork 并解決后來提 PR.
本文地址:http://www.clarencep.com/2017... 轉(zhuǎn)載請注明出處
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/26854.html
摘要:給客服端提供下載服務(wù)隨機(jī)端口號范圍,默認(rèn),與前面的端口映射設(shè)置成一樣。,防火墻配置如果服務(wù)器有防火墻,為了讓客戶端能夠訪問服務(wù)。 1,拉取鏡像首先執(zhí)行如下命令將鏡像下載到本地:?docker pull fauria/vsftpd2,啟動容器執(zhí)行如下命令實例化?ftp?服務(wù):??參數(shù)說明:/var/ftp:/home/vsf...
閱讀 2843·2021-11-23 09:51
閱讀 2475·2021-09-30 09:48
閱讀 2121·2021-09-22 15:24
閱讀 1079·2021-09-06 15:02
閱讀 3432·2021-08-17 10:14
閱讀 2000·2021-07-30 18:50
閱讀 2035·2019-08-30 15:53
閱讀 3256·2019-08-29 18:43