docker_ftp使用

官方 docker 镜像:https://hub.docker.com/_/redis/


前篇


使用流程

  1. 拉去镜像, 用的最多的是 fauria/vsftpd

    1
    $ docker pull fauria/vsftpd
  2. 创建实例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    docker run -d \
    -p 21:21 \
    -p 20:20 \
    -p 21100-21110:21100-21110 \
    -v /root/docker_data/ftp:/home/vsftpd \
    -v /mnt/hgfs/share:/share \
    -e FTP_USER=yangx \
    -e FTP_PASS=123456 \
    -e PASV_MIN_PORT=21100 \
    -e PASV_MAX_PORT=21110 \
    --privileged \
    --name vsftpd \
    --restart=always \
    fauria/vsftpd:latest
    • -v /root/docker_data/ftp:/home/vsftpd 是挂载 ftp 所有用户的 更目录
  3. 然后就可以使用 yangx:123456 去访问服务器了


添加用户

假设添加一个 testuser:123456 用户:密码

  1. 进入容器

    1
    $ docker exec -it vsftpd bash
  2. 添加一个 testuser

    1. 先创建用户目录 (目录名必须与用户名一致)

      1
      $ mkdir /home/vsftpd/testuser
    2. 修改配置

      1
      2
      3
      4
      $ vi /etc/vsftpd/virtual_users.txt

      testuser
      123456

      奇数行是用户名, 偶数行是密码

    3. 重新加载配置

      1
      /usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
  3. done. 可以使用 testuser:123456 用户连接了


自用的 docker 实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
docker run -d \
-p 21:21 \
-p 20:20 \
-p 21100-21110:21100-21110 \
-v /root/docker_data/ftp:/home/vsftpd \
-v /mnt/hgfs/share:/home/vsftpd/its \
-e FTP_USER=its \
-e FTP_PASS=its \
-e PASV_MIN_PORT=21100 \
-e PASV_MAX_PORT=21110 \
-e PASV_ADDRESS=192.168.2.233 \
--privileged \
--name vsftpd \
--restart=always \
fauria/vsftpd:latest

将虚拟机共享目录 /mnt/hgfs/share 挂载到 its 用户 的根目录

PASV_ADDRESS=192.168.2.233 宿主机子的 ip