fauria/vsftpd
이 Docker 이미지로 다음 기능과 함께 vsftpd 서버를 구현할 수 있다.
- Centos 7 기반 이미지
- vsftpd 3.0
- 가상 사용자 지원
- 패시브 모드
- 파일 또는 STDOUT에 로깅
환경 변수 등에 관한 정보는 아래 도커허브에서 참고하자.
fauria/vsftpd
서버 구축
docker-compose.yaml 파일이 작성 될 경로를 생성해주자.
$ mkdir -p /docker/ftp-server
$ mkdir /docker/ftp-server/data
$ cd /docker/ftp-server
$ vim ./docker-compose.yaml
docker-compose.yaml
version: "3"
services:
ftp:
image: fauria/vsftpd
restart: always
platform: linux/amd64 # Mac M1 인 경우 설정
container_name: ftp
ports:
- "20:20"
- "21:21"
- "21100-21110:21100-21110"
volumes:
- "./data:/home/vsftpd"
environment:
- FTP_USER=jaehyo
- FTP_PASS=jaehyo
- PASV_ADDRESS=127.0.0.1
- PASV_MIN_PORT=21100
- PASV_MAX_PORT=21110
PASV_ADDRESS=127.0.0.1 , PASV_MIN_MIN_PORT=21100, PASV_MAX_PORT=21110
: 패시브 모드에서 데이터 포트 및 주소정보 지정FTP_USER=jaehyo , FTP_PASS=jaehyo
: FTP에 사용될 USER/PW 정보20:20 , 21:21 , 21100-21110:21100-21110
: 포트 매칭, 패시브 && 액티브 && 데이터포트 범위 지정
서버 실행
$ docker-compose up -d
위 명령어로 컨테이너를 실행하자
실행되면 아래처럼 위에서 지정한 21100 ~ 21110 포트가 다 열리게 되는데 용도는 위에서 설명한 것과 같다.
$ netstat -nltp | grep "21*"
tcp 0 0 127.0.0.1:35543 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:21104 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:21105 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:21106 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:21107 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:21108 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:21109 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:21110 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:21100 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:21101 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:21102 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:21103 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:20 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp6 0 0 :::21104 :::* LISTEN -
tcp6 0 0 :::21105 :::* LISTEN -
tcp6 0 0 :::21106 :::* LISTEN -
tcp6 0 0 :::21107 :::* LISTEN -
tcp6 0 0 :::21108 :::* LISTEN -
tcp6 0 0 :::21109 :::* LISTEN -
tcp6 0 0 :::21110 :::* LISTEN -
tcp6 0 0 :::21100 :::* LISTEN -
tcp6 0 0 :::21101 :::* LISTEN -
tcp6 0 0 :::21102 :::* LISTEN -
tcp6 0 0 :::21103 :::* LISTEN -
tcp6 0 0 :::20 :::* LISTEN -
tcp6 0 0 :::21 :::* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
FTP 서버 접근
간단하게 폴더를 열어서 ftp://<IP주소>:21
으로 접근해주면 된다.
테스트를 위해 간단하게 ./data/사용자 디렉토리 안에 파일을 생성해보자.
$ touch ./data/jaehyo/test.txt
파일이 잘 들어갔다!