- Docker 1.13.0
- FTP
- SFTP
前提
開発環境としてFTPやSFTPが手元に欲しい。運用するわけではない。
FTP
pure-ftpdを使うらしい。
READMEに書いてある通り。
起動
docker run -d --name ftpd_server -p 21:21 -p 30000-30009:30000-30009 -e "PUBLICHOST=localhost" stilliard/pure-ftpd:hardened
ユーザー作成
-
docker exec
で動いてるサーバーに入って -
pure-pw
でユーザー追加 - パスワードが対話モードで聞かれるので入れる
こんな感じ。
% docker exec -it ftpd_server /bin/bash
root@df9198f8f9be:/# pure-pw useradd bob -f /etc/pure-ftpd/passwd/pureftpd.passwd -m -u ftpuser -d /home/ftpusers/bob
Password:
Enter it again:
root@df9198f8f9be:/#
bobで接続するとFTPの /
はコンテナ内の /home/ftpusers/bob
になる。
接続
パッシブモードで。アクティブモードでは接続できない。
ftp
でなら以下の通り。
ftp -p localhost
SFTP
READMEに書いてある通り。
起動およびユーザー作成
docker run -p 22:22 -d atmoz/sftp foo:pass:::upload
ユーザーが foo
、パスワードが pass
で作成される。
fooで接続するとSFTPの /
はコンテナ内の /home/foo
になる。
書き込めるのは /home/foo/upload
だけ。
SSHキー使うのとかはREADME参照。
接続
sftp
でなら以下の通り。
sftp foo@localhost
sshは拒否される。
% ssh foo@localhost
foo@localhost's password:
Could not chdir to home directory /home/foo: No such file or directory
This service allows sftp connections only.
Connection to localhost closed.