目录
前期准备
名称 | 地址 | 说明 |
---|---|---|
阿里云服务器 | 阿里云翼计划 | 系统镜像选择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镜像加速器
- 创建docker文件夹
mkdir -p /etc/docker
说明:
- 一般安装docker后会默认存在
- 创建daemon.json
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
提示:
- 加速地址可以更换为下面的
国内 镜像源地址 官方中国区 https://registry.docker-cn.com
网易 http://hub-mirror.c.163.com
USTC 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镜像并创建对应的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编辑指令,其中奇数行为用户名,临近的下一个偶数行为密码,创建container时参数未加入用户名和密码,系统会默认创建admin和随机密码.
-
添加新用户的文件夹,以用户名命名
mkdir -p /home/vsftpd/<新用户名>
-
hash处理登录的验证信息并写入数据库
/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里面的内容为空,出现上图结果即搭建成功
Docker常用命令
命令 | 作用 |
---|---|
docker search <镜像名> |
搜索在线可用镜像名 |
docker pull <镜像名:tag> |
从官网拉取镜像 |
docker images -a |
查询所有的镜像,默认是最近创建的排在最上 |
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> <镜像名称> |
制作镜像 使用以下命令,根据某个“容器 ID”来创建一个新的“镜像” |
docker run -d -p 58080:8080 --name javaweb wsl/javaweb:0.1 /root/run.sh |
启动一个容器,其中-d:表示以“守护模式”执行/root/run.sh脚本; -p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 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
- .......
优化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. 设置欢迎词,最大连接数
vi /etc/vsftpd/vsftpd.conf
## 欢迎词
ftpd_banner=welcome to here!
## 最大同时访问用户数
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并存储到数据库中
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 系统【待认证】
- 建立虚拟用户
vi /etc/vsftpd/virtual_users.txt
- 生产vsftpd 的认证数据库
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
- 改数据库权限
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优化,请看linux下ftp的搭建及优化
11. 定义ftp网页样式【待解决】
更新中......
网友评论