
目錄

前期準備
| 名稱 | 地址 | 說明 |
|---|---|---|
| 阿里云服務器 | 阿里云翼計劃 | 系統(tǒng)鏡像選擇Ubuntu1604 server版 |
| Xshell+Xftp | Xshell和Xftp免費試用 | 分別用于ssh、ftp連接服務器 |
安裝docker
- 更新軟件源
apt update - 更新軟件
apt upgrade -y - 使用官方安裝腳本自動安裝最新版docker客戶端docker-ce
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun - 查看docker-ce版本
docker --version

配置docker鏡像加速器
- 創(chuàng)建docker文件夾
mkdir -p /etc/docker
說明:
- 一般安裝docker后會默認存在
- 創(chuàng)建daemon.json
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
提示:
- 加速地址可以更換為下面的
國內 鏡像源地址 官方中國區(qū) https://registry.docker-cn.com網(wǎng)易 http://hub-mirror.c.163.comUSTC https://docker.mirrors.ustc.edu.cn阿里云 DaoCloud https://www.daocloud.io/mirror
- 重新載入加速器
systemctl daemon-reload - 重啟docker
systemctl restart docker
安裝vsftpd
參閱:
- 搜索vsftpd鏡像
docker search vsftpd

- pull最新版鏡像到本地
docker pull fauria/vsftpd

- 運行docker鏡像并創(chuàng)建對應的Container
包含用戶名和密碼
docker run -d -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -v /Ftpfile:/home/vsftpd -e FTP_USER=user -e FTP_PASS=userpwd -e PASV_ADDRESS=<宿主機ip> -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name vsftpd --restart=always fauria/vsftpd
不包含用戶名和密碼
docker run -d -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -v /Ftpfile:/home/vsftpd -e PASV_ADDRESS=<宿主機ip> -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name vsftpd --restart=always fauria/vsftpd
提示:
- PASV_ADDRESS需改為自己的宿主機ip
- -p 進行端口綁定映射
- -v 進行文件目錄的映射
- FTP_UESR 和FTP_PASS如果設定了會在container的
/etc/vsftpd/virtual_users.txt里面- PASV_ADDRESS指的的宿主機地址
- PASV_MIN_PORT和PASV_MAX_PORT映射的是被動模式下端口使用范圍
- 必須在服務器的防火墻中開啟20、21、22和21100/21110端口

- 進入vsftpd鏡像對應的container中
docker exec -i -t vsftpd bash

- 編輯配置文件寫入用戶名和密碼
vi /etc/vsftpd/virtual_users.txt
提示:
- 注意使用vi編輯指令,其中奇數(shù)行為用戶名,臨近的下一個偶數(shù)行為密碼,創(chuàng)建container時參數(shù)未加入用戶名和密碼,系統(tǒng)會默認創(chuàng)建admin和隨機密碼.
添加新用戶的文件夾,以用戶名命名
mkdir -p /home/vsftpd/<新用戶名>hash處理登錄的驗證信息并寫入數(shù)據(jù)庫
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db退出container
exit或Ctrl+D重啟container
docker restart vsftpd驗證ftp
ftp://<宿主機ip>

提示:
- 一般新搭建的ftp里面的內容為空,出現(xiàn)上圖結果即搭建成功
Docker常用命令
| 命令 | 作用 |
|---|---|
docker search <鏡像名> |
搜索在線可用鏡像名 |
docker pull <鏡像名:tag> |
從官網(wǎng)拉取鏡像 |
docker images -a |
查詢所有的鏡像,默認是最近創(chuàng)建的排在最上 |
docker ps |
查看正在運行的容器 |
docker ps -a |
查看所有容器 |
docker rmi -f <鏡像ID> |
刪除單個鏡像 |
docker start <容器名or ID> |
啟動某個容器 |
docker stop <容器名or ID> |
停止某個容器 |
docker kill <容器名or ID> |
殺掉某個容器 |
docker logs {容器ID或容器名稱} |
查詢某個容器的所有操作記錄。 |
docker commit <容器ID> <鏡像名稱> |
制作鏡像 使用以下命令,根據(jù)某個“容器 ID”來創(chuàng)建一個新的“鏡像” |
docker run -d -p 58080:8080 --name javaweb wsl/javaweb:0.1 /root/run.sh |
啟動一個容器,其中-d:表示以“守護模式”執(zhí)行/root/run.sh腳本; -p:表示宿主機與容器的端口映射,此時將容器內部的 8080 端口映射為宿主機的 58080 端口,這樣就向外界暴露了 58080 端口,可通過 Docker 網(wǎng)橋來訪問容器內部的 8080 端口了。 -name:為容器命名 |
service docker start |
啟動docker服務的命令 |
參閱:
FTP管理
1. CMD訪問FTP
- 調用ftp
ftp

- 訪問ftp服務器(其中需要輸入用戶名和密碼)
open <宿主機ip>

-
查看遠程根目錄下文件情況,默認為空
ls
上傳D盤test文件下的文件到ftp服務器(put或mput指令)
lcd D:\test
put a.txt


- 再次查看
ls或dir

- 下載ftp服務器的文件到D盤test文件下(get或mget指令)
單次下載
lcd D:\test
get test.zip

提示:
get <文件名1> <文件名2>等價于下載文件1并重命名為文件名2
批量下載
lcd D:\test
mget a.txt test.zip

提示:
- 默認情況下,prompt是打開的;在傳輸多個文件期間,ftp 的提示將允許您選擇性地檢索或存儲文件;如果 prompt 是關閉的,則 mget 和 mput 將傳輸所有文件
prompt關閉/開啟prompt,一般選擇關閉
- cmd的ftp命令行
help

部分命令

參閱:
2. Ubuntu訪問FTP
- 與第一種CMD訪問是基本一樣的.
Q&A
第一種情況
Q:ls/dir無法使用

A:passive

3. FTP客戶端訪問FTP
- Filezilla
- Xftp
- Winscp
- .......
優(yōu)化FTP
注意:
- 修改完后重啟vsftpd服務
docker restart vsftpd
1. 支持中文字符集
- 進入docker的vsftpd容器
docker exec -i -t vsftpd bash
vi /etc/profile
export LANG=en_US.utf8
source /etc/profile
參閱:
2. 允許 FTP 匿名登陸
vi /etc/vsftpd/vsftpd.conf

3. 設置歡迎詞,最大連接數(shù)
vi /etc/vsftpd/vsftpd.conf
## 歡迎詞
ftpd_banner=welcome to here!
## 最大同時訪問用戶數(shù)
Max_clients=50
4. 添加用戶到黑名單中
vi /etc/vsftpd/ftpusers
<userName>
默認

5. 只允許user_list的用戶登錄
第一種
vi /etc/vsftpd/vsftpd.conf
userlist_deny=NO
vi /etc/vsftpd/user_list
<userName>
第二種
vi /etc/vsftpd/vsftpd.conf
userlist_deny=NO
userlist_file=/etc/ftpuser/user_list
vi /etc/ftpuser/user_list
<userName>
默認

6. 限速
vi /etc/vsftpd/vsftpd.conf
## 注冊的用戶下載速度 200k
Local_max_rate=200000
## 匿名用戶下載速度20K
Anon_max_rate=20000
7. 因人限速
vi /etc/vsftpd/vsftpd.conf
## 用戶的配置文件
User_config_dir=/etc/vsftpd
vi /etc/vsftpd/user1
Local_max_rate = 3000
vi /etc/vsftpd/user2
Local_max_rate = 30000
提示:
- user1和user2需要添加到virtual_users.txt并存儲到數(shù)據(jù)庫中
vi /etc/vsftpd/virtual_users.txt/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
8. 建立虛擬的用戶可以登陸 FTP ,但不能登陸我的 linux 系統(tǒng)【待認證】
- 建立虛擬用戶
vi /etc/vsftpd/virtual_users.txt - 生產(chǎn)vsftpd 的認證數(shù)據(jù)庫
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db - 改數(shù)據(jù)庫權限
chmod 600 /etc/vsftpd/virtual_users.db - 虛擬用戶及所要訪問的目錄并設置相應的權限
vi /etc/vsftpd/vsftpd.conf
guest_enable=YES
anon_world_readable_only=NO
9. 虛擬用戶管理
user1 有瀏覽目錄、上傳、改名、刪除等權限
user2 有瀏覽目錄、上傳權限
user3 有瀏覽目錄、下載的權限(且只能在 /misc/abc 目錄下,速度為 20k )
- 編輯 vsftpd 的主配置文件
vi /etc/vsftpd/vsftpd.conf
User_config_dir=/etc/vsftpd
user1
vi /etc/vsftpd/user1
// 開放讀的權限(如果沒有添加此項,用戶看到的目錄是隱藏的)
Anon_world_readable_only=NO
Anon_upload_enable=YES
Anon_mkdir_write_enable=YES
Anon_other_write_enable=YES
user2
vi /etc/vsftpd/user2
// 開放讀的權限(如果沒有添加此項,用戶看到的目錄是隱藏的)
Anon_world_readable_only=NO
Anon_upload_enable=YES
user3
vi /etc/vsftpd/user3
// 開放讀的權限(如果沒有添加此項,用戶看到的目錄是隱藏的)
Anon_world_readable_only=NO
// 設置目錄為本地
Local_root=/misc/abc
Anon_max_rate=20000
10. 設置匿名的用戶可以上傳以及刪除的權限
vi /etc/vsftpd/vsftpd.conf
Anon_upload_enable=YES
Anon_mkdir_write_enable=YES
Anon_other_write_enable=YES
- 改變 pub 目錄的權限
chmod - R 777 /var/ftp/pub
參閱:
- 更多關于FTP優(yōu)化,請看linux下ftp的搭建及優(yōu)化
11. 定義ftp網(wǎng)頁樣式【待解決】
更新中......



