在我们安装好Docker以后,就可以在Docker中安装我们要安装的服务了,比如本文中,我们安装FTP服务。
安装Docker
搜索FTP镜像
FTP镜像有多个,我们可以搜素看看有哪些镜像,然后选择自己需要的镜像,不过一般来说,不过一般来说,就像我们购物一样,都是选择销量高。
docker search vsftpd
如下搜索中,我们看到fauria/vsftpd这个镜像点赞最多,因此我们就用这个了。
拉取最新版本的fauria/vsftpd镜像到本地
docker pull fauria/vsftpd
等待如下下载。
使用FTP镜像创建FTP容器
有两种方式,一个是带用户创建容器,一个是不带用户创建容器。以下方式二选一即可。
带用户创建FTP容器(推荐使用,因为会主动创建用户)
如下命令不能直接执行,执行之前先替换几个变量
PASV_ADDRESS : 需改为自己的宿主机ip
-p : 进行端口绑定映射
-v : 进行文件目录的映射
FTP_UESR 和FTP_PASS如果设定了会在container的/etc/vsftpd/virtual_users.txt里面(即带用户创建容器)
PASV_MIN_PORT和PASV_MAX_PORT映射的是被动模式下端口使用范围
如下命令执行后,会创建ftp容器,并且ftp的登录用户名为:ftphutao,密码为ftp@hutao,访问地址为:ftp://49.232.70.33
docker run -d -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -v /Ftpfile:/home/vsftpd -e FTP_USER=ftphutao -e FTP_PASS=ftp@hutao -e PASV_ADDRESS=49.232.70.33 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name vsftpd --restart=always fauria/vsftpd
不带用户创FTP建容器
创建时参数未加入用户名和密码,系统会默认创建admin和随机密码。
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
进入FTP容器
docker exec -i -t vsftpd bash
编辑配置文件写入用户名和密码
vi /etc/vsftpd/virtual_users.txt
注意使用vi编辑指令,其中奇数行为用户名,临近的下一个偶数行为密码,
添加新用户的文件夹,以用户名命名
mkdir -p /home/vsftpd/<新用户名>
hash处理登录的验证信息并写入数据库
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
退出FTP容器
exit或Ctrl+D
重启FTP容器
docker restart vsftpd
访问FTP服务
ftp://<ip地址>
如下,创建一个test的文件夹
然后刷新浏览器页面,看看能否看到test
至此,安装完毕