docker容器

Docker | 搭建一个ftp服务器

2019-06-14  本文已影响0人  Ricsy

目录


前期准备

名称 地址 说明
阿里云服务器 阿里云翼计划 系统镜像选择Ubuntu1604 server版
Xshell+Xftp Xshell和Xftp免费试用 分别用于ssh、ftp连接服务器

安装docker


配置docker镜像加速器

说明:

  • 一般安装docker后会默认存在

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

安装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端口

提示:

  • 注意使用vi编辑指令,其中奇数行为用户名,临近的下一个偶数行为密码,创建container时参数未加入用户名和密码,系统会默认创建admin和随机密码.

提示:

  • 一般新搭建的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

单次下载
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,一般选择关闭

help

部分命令

参阅:


2. Ubuntu访问FTP

Q&A
第一种情况

Q:ls/dir无法使用

A:passive


3. FTP客户端访问FTP


优化FTP

注意:

  • 修改完后重启vsftpd服务
  • docker restart vsftpd

1. 支持中文字符集

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/vsftpd.conf
guest_enable=YES
anon_world_readable_only=NO

9. 虚拟用户管理

user1 有浏览目录、上传、改名、删除等权限
user2 有浏览目录、上传权限
user3 有浏览目录、下载的权限(且只能在 /misc/abc 目录下,速度为 20k )

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

参阅:

11. 定义ftp网页样式【待解决】


更新中......


上一篇 下一篇

猜你喜欢

热点阅读