Dokcer安装vsftpd搭建FTP服务器

发布 : 2019-12-20 分类 : 服务器 浏览 :

首先你想要使用docker就必须先安装docker,安装docker很简单,推荐两种方式安装:

直接使用yum安装(以centos系统为例)

  1. 安装依赖包

    1
    yum install -y yum-utils device-mapper-persistent-data lvm2
  2. 添加yum软件源

    1
    2
    3
    yum-config-manager \
    --add-repo \
    https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

如果需要每日构建版本的 Docker CE 请使用以下命令:

1
yum-config-manager --enable docker-ce-nightly

  1. 安装docker ce
    1
    2
    yum makecache fast
    yum install docker-ce -y

使用官方提供的脚本安装

1
2
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun

–mirrror 选项使用国内源进行安装

启动Docker CE

1
2
systemctl start docker
systemctl enable docker #开机自启

建立Docker用户组

1
2
groupadd docker
usermod -aG docker docker

测试 Docker 是否安装正确

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$ docker run hello-world

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
d1725b59e92d: Pull complete
Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/

若能正常输出以上信息,则说明安装成功。

镜像加速

对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)

1
2
3
4
5
6
{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://hub-mirror.c.163.com"
]
}

重启服务

1
2
systemctl daemon-reload
systemctl restart docker

检查加速器是否生效

执行docker info,如果从结果中看到了如下内容,说明配置成功。

1
2
Registry Mirrors:
https://dockerhub.azk8s.cn/

安装好docker之后就可以使用docker安装vsftpd,具体操作如下:

下载镜像

1
docker pull fauria/vsftpd

使用方法

创建一个用于测试目的的临时容器:

1
docker run --rm fauria/vsftpd

使用默认用户帐户在活动模式下创建一个具有绑定数据目录的容器:

1
docker run -d -p 21:21 -v /my/data/directory:/home/vsftpd --name vsftpd fauria/vsftpd

使用自定义用户帐户创建生产容器,绑定数据目录并启用主动和被动模式:

1
2
3
4
5
docker run -d -v /my/data/directory:/home/vsftpd \
-p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
-e FTP_USER=myuser -e FTP_PASS=mypass \
-e PASV_ADDRESS=127.0.0.1 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd --restart=always fauria/vsftpd

手动将新的FTP用户添加到现有容器:

1
2
3
4
5
6
docker exec -i -t vsftpd bash
mkdir /home/vsftpd/myuser
echo -e "myuser\nmypass" >> /etc/vsftpd/virtual_users.txt
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
exit
docker restart vsftpd

注意:如果你的安装环境是云服务器,需要在安全组放行相关端口,如果是虚拟机,建议关闭防火墙。

访问方式

安装成功之后。在浏览器输入ftp://ip地址 就能访问到ftp服务器。

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹