pure-ftpd: 使用docker快速搭建ftp服务
前言:centos系统压根不需要ftp,因为ssh就可以用sftp连接,纯为了折腾而折腾一遍
pure-ftpd官方镜像:https://hub.docker.com/r/stilliard/pure-ftpd/
-
NTFS:准备ftp用户
[root@X61CentOS ~]# adduser ntfs
[root@X61CentOS ~]# passwd ntfs
[root@X61CentOS ~]# gpasswd -a ntfs docker
[root@X61CentOS ~]# sudo chmod +w /etc/sudoers;sudo vi /etc/sudoers;sudo chmod -w /etc/sudoers;
ntfs ALL=(ALL) ALL
ntfs ALL=(ALL) NOPASSWD: /usr/bin/docker,/usr/bin/docker-compose,/usr/bin/yum,/usr/bin/mkdir,/usr/bin/chmod,/usr/bin/mount,/usr/bin/umount,/usr/bin/chown
-
NTFS:准备专用目录
[ntfs@X61CentOS ~]$ sudo mkdir -p /www/syncRepos
[ntfs@X61CentOS ~]$ sudo chown -R ntfs /www/syncRepos
-
FTP:准备docker用到的目录
[ntfs@X61CentOS syncRepos]$ sudo mkdir /www/ftp
[ntfs@X61CentOS syncRepos]$ mkdir /www/ftp/app
[ntfs@X61CentOS syncRepos]$ mkdir /www/ftp/pure-ftpd
[ntfs@X61CentOS syncRepos]$ sudo chown -R ntfs /www/ftp
-
FTP:拉取image和编写docker-compose
[ntfs@X61CentOS syncRepos]$ sudo docker pull stilliard/pure-ftpd
Using default tag: latest
latest: Pulling from stilliard/pure-ftpd
[ntfs@X61CentOS root]$ cd /www/ftp/
[ntfs@X61CentOS ftp]$ ls
app pure-ftpd
[ntfs@X61CentOS ftp]$ vi docker-compose.yml
ftp:
container_name: "ftp"
image: stilliard/pure-ftpd:latest
#我安装的centos7.3使用volume映射后没有读写权限,加入这个参数可以解决
#看资料是linux的selinux安全限制,有几种方式,我直接配在yml里声明解决
privileged: true
restart: unless-stopped
volumes:
- /www/ftp/ftpusers:/home/ftpusers
- /www/syncRepos:/home/ftpusers/at
- /www/ftp/pure-ftpd:/etc/pure-ftpd
ports:
- "21:21"
- "30000-30200:30000-30200"
environment:
PUBLICHOST: 0.0.0.0
-
FTP: 启动服务
[ntfs@X61CentOS ftp]$ docker-compose up -d
-
FTP: 添加ftp用户
[ntfs@X61CentOS ftp]$ docker exec -it ftp /bin/bash
root@20f689ccb752:/# pure-pw useradd at -u ftpuser -d /home/ftpusers/at
Password:
Enter it again:
root@20f689ccb752:/# pure-pw mkdb
root@20f689ccb752:/# exit
-
FTP:连接ftp验证成功
看起来似乎分分钟搞定,其实我踩了很多坑,看了很多的攻略资料,最后这是部署下来能够成功的总结。
新的收获:比如加入docker的用户组,selinux读写权限