docker로 vsftpd 간단하게 설치하기
급하게 ftp 서버를 올릴 필요가 있을 경우
리눅스에서는 대부분 vsftpd를 설치하여 사용하는데
기능과 성능이 엄청 좋은 반면에 기본 설정이 은근히 까다롭다.
특히 리눅스에서 사용자 설정 및 virtual user 설정 등이 처음 접하기엔 까다롭다.
그리고 vsftpd를 자주 사용하지 않으면 쉽게 셋팅하기도 어렵다.
그래서 docker에서 잘 만든 이미지를 주워다가 간단한 셋팅으로 손쉽게 ftp 서버를 구축해 본다.
테스트 환경
- CentOS7
- docker v19.03.12
# 쉘 스크립트 작성
# FTP_USER, FTP_PASS, PASV_ADDRESS 는 자신의 환경에 맞게 변경할 것
vi ftp_run.sh
#!/bin/bash
docker pull fauria/vsftpd
mkdir -p /test/ftp
docker run -d -v /test/ftp:/home/vsftpd \
-p 20:20 -p 21:21 -p 30000-30010:30000-30010 \
-e FTP_USER=ftpuser -e FTP_PASS=uniqpassword \
-e PASV_ADDRESS=192.168.0.123 -e PASV_MIN_PORT=30000 -e PASV_MAX_PORT=30010 \
--name vsftpd --restart=always fauria/vsftpd
docker logs vsftpd
# 방화벽 등록
firewall-cmd --permanent --add-port=20/tcp
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=30000-30010/tcp
firewall-cmd --reload-all
firewall-cmd --list-all
# ftp 접속하여 확인
# 파일 다운로드/업로드 콘텐츠 경로는 /test/ftp/<FTP_USER> 경로가 되는데
# 여기서는 ftpuser 가 ID이므로 /test/ftp/ftpuser 경로를 사용한다.
이렇게 손쉽게 ftp 서버를 구축하여 사용할 수 있다.
virtual user를 여러개 등록하여 사용하고 싶은 경우 아래 링크의 virtual user 항목을 참조하여 설정한다.
링크 : https://hub.docker.com/r/fauria/vsftpd/