読者です 読者をやめる 読者になる 読者になる

メンチカツには醤油でしょ!!

ITエンジニア徒然 (AWS/Java/JavaScript/Google Spreadsheets/Jenkins/Mac/外部コミュニティ・勉強会レポ)

DockerでFTPサーバーを構築したら簡単すぎた

Docker

pullしてrunするだけがいい

色々検討しても良いのかも知れませんが先日のOracle Databaseの件のように動かないコンテナに苦労したり、不可能な環境構築にトライしたくない領域だったので、今回は最初からDocker Hubを検索。Most downloads, most starsを選択しました。
https://hub.docker.com/r/stilliard/pure-ftpd/

SFTPならコチラがMost downloads, most starsでした。
https://hub.docker.com/r/atmoz/sftp/

stilliard/pure-ftpd:hardenedのドキュメント通りに進めます。

> docker pull stilliard/pure-ftpd:hardened

hardened: Pulling from stilliard/pure-ftpd
386a066cd84a: Pull complete
:::::略:::::: Pull complete
26eb4ca837a0: Pull complete
Digest: sha256:d21f3d12be52d8669b5561c7325f60013b61c9920a78db9d85e2e1545cbdae4f
Status: Downloaded newer image for stilliard/pure-ftpd:hardened

> docker run -d --name ftpd_server -p 21:21 -p 30000-30009:30000-30009 -e "PUBLICHOST=localhost" stilliard/pure-ftpd:hardened

0206a6e60ff6f738a1e23beecdb46d4631da2e654962dc18e1c7526e325cc840

> docker ps -a

CONTAINER ID  IMAGE                         COMMAND                 CREATED                 STATUS        PORTS                                                     NAMES
0206a6e60ff6  stilliard/pure-ftpd:hardened  "/bin/sh -c '/run...."  Less than a second ago  Up 3 seconds  0.0.0.0:21->21/tcp, 0.0.0.0:30000-30009->30000-30009/tcp  ftpd_server

> docker exec -it 0206a6e60ff6 bash

root@0206a6e60ff6:/# cd /home/ftpusers/

root@0206a6e60ff6:/home/ftpusers# ls -la

total 8
drwxr-xr-x 2 root root 4096 Feb 7 20:39 .
drwxr-xr-x 3 root root 4096 Nov 30 08:28 ..

root@0206a6e60ff6:/home/ftpusers# pure-pw useradd my-account-name -f /etc/pure-ftpd/passwd/pureftpd.passwd -m -u ftpuser -d /home/ftpusers/my-account-name

Password: ********
Enter it again: ********

root@0206a6e60ff6:/home/ftpusers# mkdir my-account-name

root@0206a6e60ff6:/home/ftpusers# chown ftpuser:ftpgroup my-account-name

root@0206a6e60ff6:/home/ftpusers# ls -la

total 12
drwxr-xr-x 3 root root 4096 Feb 7 20:41 .
drwxr-xr-x 3 root root 4096 Nov 30 08:28 ..
drwxr-xr-x 3 ftpuser ftpgroup 4096 Feb 7 20:41 my-account-name

/home/ftpuser/【設定したアカウント名】
ディレクトリが作成されていることが確認できます。
ここでFFFTPなどでファイルアップロードなどします。
ユーザー名とパスワードはpure-pwコマンドの時に設定したものです。
(下記の例はtestというディレクトリを作成した例)

root@0206a6e60ff6:/home/ftpusers# cd my-account-name

root@0206a6e60ff6:/home/ftpusers/bob# ls -la

total 12
drwxr-xr-x 3 ftpuser ftpgroup 4096 Feb 7 20:41 .
drwxr-xr-x 3 root root 4096 Feb 7 20:41 ..
drwxr-xr-x 2 ftpuser ftpgroup 4096 Feb 7 20:41 test

簡単すぎて鼻血出そう...