云原生之使用Docker部署ftp服务器

简介: 云原生之使用Docker部署ftp服务器

一、ftp介绍

ftp分为主动模式(PORT)和被动模式(PASV)。主动模式使用20和21端口,其中20为数据端口,21为控制端口。被动模式使用21控制端口和一个其他随机端口作数据端口。

二、检查本地docker状态

[root@node ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2022-10-28 13:19:21 CST; 10h ago
     Docs: https://docs.docker.com
 Main PID: 76667 (dockerd)
    Tasks: 26
   Memory: 1.5G
   CGroup: /system.slice/docker.service
           ├─ 76667 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
           ├─113263 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8080 -container-ip 172.20.0.4 -container-port 8080
           └─113272 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8080 -container-ip 172.20.0.4 -container-port 8080

Oct 28 18:20:58 node dockerd[76667]: time="2022-10-28T18:20:58.288655357+08:00" level=info msg="Container failed to exit within 10s of s...d72e076f
Oct 28 18:20:58 node dockerd[76667]: time="2022-10-28T18:20:58.332958782+08:00" level=info msg="ignoring event" container=9d5d9e1f2a9e27...kDelete"
Oct 28 18:34:37 node dockerd[76667]: time="2022-10-28T18:34:37.034425164+08:00" level=info msg="Container failed to exit within 10s of s...d72e076f
Oct 28 18:34:37 node dockerd[76667]: time="2022-10-28T18:34:37.076085196+08:00" level=info msg="ignoring event" container=9d5d9e1f2a9e27...kDelete"
Oct 28 18:49:20 node dockerd[76667]: time="2022-10-28T18:49:20.711383881+08:00" level=info msg="Container failed to exit within 10s of s...d72e076f
Oct 28 18:49:20 node dockerd[76667]: time="2022-10-28T18:49:20.762906859+08:00" level=info msg="ignoring event" container=9d5d9e1f2a9e27...kDelete"
Oct 28 18:51:31 node dockerd[76667]: time="2022-10-28T18:51:31.734729814+08:00" level=info msg="Container failed to exit within 10s of s...d72e076f
Oct 28 18:51:31 node dockerd[76667]: time="2022-10-28T18:51:31.776846324+08:00" level=info msg="ignoring event" container=9d5d9e1f2a9e27...kDelete"
Oct 28 18:51:32 node dockerd[76667]: time="2022-10-28T18:51:32.051543900+08:00" level=info msg="ignoring event" container=b9940db8d7817f...kDelete"
Oct 28 18:51:32 node dockerd[76667]: time="2022-10-28T18:51:32.235131874+08:00" level=info msg="ignoring event" container=826cd78a351542...kDelete"
Hint: Some lines were ellipsized, use -l to show in full.

三、下载vsftpd镜像

[root@node ~]# docker pull fauria/vsftpd
Using default tag: latest
latest: Pulling from fauria/vsftpd
75f829a71a1c: Pull complete 
a1a6b490d7c7: Pull complete 
ad2cabfec967: Pull complete 
c7a98e8d62f5: Pull complete 
10d192add873: Pull complete 
fc18a09c86d0: Pull complete 
5397e9c5e314: Pull complete 
e89f582c70f5: Pull complete 
8b8bdebbfc97: Pull complete 
026ae919720d: Pull complete 
Digest: sha256:c3988c1b8418018a05688a0553986d87aa7c72a293ad7e74467972c1aad3d6b7
Status: Downloaded newer image for fauria/vsftpd:latest
docker.io/fauria/vsftpd:latest

四、创建vsftpd容器

1.创建数据目录


[root@node ~]# mkdir -p /data/ftp/data  && mkdir -p /data/ftp/log  && chmod -R 777 /data/ftp

2.创建vsftpd容器

docker run -d \
--name vsftpd   \
--restart=always \
-v /data/ftp/data/:/home/vsftpd \
-v  /data/ftp/log/:/var/log/vsftpd/ \
-p 20:20 -p 21:21 -p 20000:20000 \
-e FTP_USER=admin \
-e FTP_PASS=admin \
-e PASV_MIN_PORT=20000 \
-e PASV_MAX_PORT=20000 \
-e PASV_ADDRESS=192.168.3.166 \
-e LOG_STDOUT=1 \
fauria/vsftpd

image.png

3.查看vsftpd容器状态

[root@node ftp]# docker ps
CONTAINER ID   IMAGE                                                    COMMAND                  CREATED          STATUS                 PORTS                                                                                          NAMES
fce7b8fc2279   fauria/vsftpd                                            "/usr/sbin/run-vsftp…"   38 seconds ago   Up 36 seconds          0.0.0.0:20-21->20-21/tcp, :::20-21->20-21/tcp, 0.0.0.0:20000->20000/tcp, :::20000->20000/tcp   vsftpd

五、linux客户端访问ftp

1.安装ftp客户端软件

yum install -y ftp 

image.png

2.登录ftp


[root@node ftp]# ftp 192.168.3.166
Connected to 192.168.3.166 (192.168.3.166).
220 (vsFTPd 3.0.2)
Name (192.168.3.166:root): admin
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,3,166,78,32).
150 Here comes the directory listing.
226 Directory send OK.
ftp> 

六、web页面访问ftp

ftp://192.168.3.166/

image.png

image.png

七、上传文件

1.在挂载数据目录上传文件

[root@node admin]# mkdir test it linux
[root@node admin]# 
[root@node admin]# ls
it  linux  test
[root@node admin]# cd linux/
[root@node linux]# touch file100

2.查看ftp上文件

image.png

相关文章
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
942 2
|
存储 测试技术 数据安全/隐私保护
【Docker项目实战】使用Docker部署dufs文件服务器
【Docker项目实战】使用Docker部署dufs文件服务器
1588 17
【Docker项目实战】使用Docker部署dufs文件服务器
|
NoSQL Redis Docker
Docker——阿里云服务器利用docker搭建redis集群
本文详细记录了使用Docker搭建Redis集群的过程,包括检查Docker和Docker Compose的安装、创建Redis配置文件、编写`docker-compose.yml`文件、启动Redis节点、创建Redis集群的具体步骤,以及最终的验证方法。文章还提供了在多服务器环境下搭建Redis集群的注意事项,帮助读者全面了解 Redis 集群的部署流程。
1981 68
|
Ubuntu 安全 数据安全/隐私保护
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
817 12
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
729 28
|
Ubuntu 网络安全 PHP
如何使用vscode的Docker插件管理ubuntu 拉取服务器的镜像以及创建容器
本测试镜像旨在记录使用vscode的Docker插件拉取病创建Dockerfile,以及拉取镜像。
|
Ubuntu 安全 网络安全
在Ubuntu系统下使用vsftpd配置FTP服务器的步骤
以上就是在Ubuntu系统下使用vsftpd配置FTP服务器的步骤。这些步骤都是基础的,但足够让你建立一个简单的FTP服务器。如果你需要更高级的功能,例如SSL加密、虚拟用户等,你可能需要进一步研究vsftpd的配置选项。
1036 13
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
868 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
本文内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。
1122 15
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。