云原生之使用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

相关文章
|
5天前
|
运维 Kubernetes Cloud Native
云原生时代下,如何高效构建与部署微服务
【9月更文挑战第8天】随着云计算技术的飞速发展,云原生已成为现代软件架构的重要趋势。本文将深入浅出地介绍云原生概念、微服务架构的优势以及如何在云平台上高效构建和部署微服务。我们将通过实际的代码示例,展示在Kubernetes集群上部署一个简单的微服务应用的过程,帮助读者理解云原生环境下的微服务开发和运维实践。
|
11天前
|
网络协议 网络安全
基于bind软件部署DNS服务器
关于如何使用bind软件部署DNS服务器的教程,包括DNS服务器的类型、基于bind软件的部署步骤、验证DNS服务器可用性的指导,以及如何进行DNS正向解析的实现。
13 2
基于bind软件部署DNS服务器
|
12天前
|
存储 关系型数据库 MySQL
使用Docker快速部署Mysql服务器
本文介绍了如何使用Docker快速部署MySQL服务器,包括下载官方MySQL镜像、启动容器、设置密码、连接MySQL服务器以及注意事项。
92 18
|
1天前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
9 3
|
9天前
|
Cloud Native 持续交付 Docker
云原生技术实践:Docker容器化部署教程
【9月更文挑战第4天】本文将引导你了解如何利用Docker这一云原生技术的核心工具,实现应用的容器化部署。文章不仅提供了详细的步骤和代码示例,还深入探讨了云原生技术背后的哲学,帮助你理解为何容器化在现代软件开发中变得如此重要,并指导你如何在实际操作中运用这些知识。
|
5天前
|
Cloud Native API 持续交付
云原生技术:开启现代软件部署的新篇章
在数字化浪潮中,云计算已从简单的资源共享进化到支持复杂应用的平台。云原生技术作为这一演变的核心,不仅重塑了软件开发、部署的方式,还为业务敏捷性、可伸缩性和可靠性设定了新的标准。本文将探讨云原生的基本概念、核心技术及实践方法,揭示它如何引领企业走在数字化转型的前列。
|
14天前
|
Kubernetes Cloud Native 开发者
探索云原生技术:从Docker到Kubernetes的旅程
【8月更文挑战第31天】云原生技术正在改变软件开发、部署和运维的方式。本文将带你了解云原生的核心概念,并通过实际代码示例,展示如何使用Docker容器化应用,并进一步通过Kubernetes进行集群管理。我们将一起构建一个简单的微服务架构,体验云原生带来的高效与便捷。
|
14天前
|
Kubernetes Cloud Native Linux
云原生入门:Kubernetes的简易部署与应用
【8月更文挑战第31天】在云原生的世界里,Kubernetes(K8s)是一颗璀璨的星。本文将带你走进K8s的世界,从安装到简单应用,轻松驾驭这个强大的容器编排工具。让我们一起探索云原生的奥秘,解锁新技能!
|
14天前
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【8月更文挑战第31天】 在数字化转型的浪潮中,云原生技术成为推动现代软件开发的关键力量。本文将引导读者理解云原生的基本概念,通过Docker和Kubernetes的实际应用示例,展示如何在云平台上部署和管理容器化应用。我们将一起探索服务编排、持续集成和微服务架构的实践之路,旨在为初学者揭开云原生技术的神秘面纱,并激发对这一前沿领域的深入探索。
|
14天前
|
UED
JSF文件下载:解锁终极文件传输秘籍,让你的Web应用瞬间高大上!
【8月更文挑战第31天】掌握JSF文件下载功能对构建全面的Web应用至关重要。本文通过具体代码示例,详细介绍如何在JSF中实现文件下载。关键在于后端Bean中的文件读取与响应设置。示例展示了从创建实体类到使用`<h:commandLink>`触发下载的全过程,并通过正确设置响应头和处理文件流,确保文件能被顺利下载。这将显著提升Web应用的实用性与用户体验。
28 0