docker部署ftp服务
docker-compose编排容器方式部署
docker-compose安装需要执行下面两条命令:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
编写docker-compose执行文件如下:
[root@localhost ~]# cat > docker-compose.yml <<-EOF
version: "3.5"
services:
ftp:
image: fauria/vsftpd
container_name: vsftpd
hostname: ftp
privileged: true
user: root
ports:
- 21120-21121:20-21
- 21100-21110:21100-21110
environment:
- FTP_USER=admin
- FTP_PASS=xxxxx
- PASV_ADDRESS=172.17.0.102
- PASV_MIN_PORT=21100
- PASV_MAX_PORT=21120
volumes:
- /etc/localtime:/etc/localtime:ro
- /mnt/vsftpd/uploads:/home/vsftpd
restart: always
tty: true
EOF
将容器的20-21端口映射到主机的21120-21121
将容器中存放文件的路径/home/vsftpd映射到主机的/home/richard/vsftpd/uploads
执行docker-compose
docker-compose up -d
添加ftp用户的方法
[root@localhost ~]# docker exec -it vsftpd /bin/bash
[root@15a26502c00b /]# cat /etc/vsftpd/virtual_users.txt
z # 用户名
z # 用户密码
web # 添加的用户名
xxxx # 添加的用户密码
[root@15a26502c00b /]# mkdir -p /home/vsftpd/web
[root@15a26502c00b /]# db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
[root@15a26502c00b /]# exit
[root@localhost ~]# docker restart vsftpd
可以使用FileZilla、xftp等工具
(注意:使用FileZilla遇到 服务器发回了不可路由的地址使用服务器地址代替 问题的话
进入站点管理>传输设置>设置成被动)