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

相关文章
|
2月前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
113 2
|
2月前
|
弹性计算 监控 负载均衡
|
2月前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
13天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
77 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
2月前
|
弹性计算 开发工具 git
2分钟在阿里云ECS控制台部署个人应用(图文示例)
作为一名程序员,我在部署托管于Github/Gitee的代码到阿里云ECS服务器时,经常遇到繁琐的手动配置问题。近期,阿里云ECS控制台推出了一键构建部署功能,简化了这一过程,支持Gitee和GitHub仓库,自动处理git、docker等安装配置,无需手动登录服务器执行命令,大大提升了部署效率。本文将详细介绍该功能的使用方法和适用场景。
2分钟在阿里云ECS控制台部署个人应用(图文示例)
|
2月前
|
运维 Cloud Native 云计算
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
|
2月前
|
NoSQL 容灾 MongoDB
MongoDB主备副本集方案:两台服务器使用非对称部署的方式实现高可用与容灾备份
在资源受限的情况下,为了实现MongoDB的高可用性,本文探讨了两种在两台服务器上部署MongoDB的方案。方案一是通过主备身份轮换,即一台服务器作为主节点,另一台同时部署备节点和仲裁节点;方案二是利用`priority`设置实现自动主备切换。两者相比,方案二自动化程度更高,适合追求快速故障恢复的场景,而方案一则提供了更多的手动控制选项。文章最后对比了这两种方案与标准三节点副本集的优缺点,指出三节点方案在高可用性和数据一致性方面表现更佳。
|
2月前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
2月前
|
PHP 数据库 数据安全/隐私保护
布谷直播源码部署服务器关于数据库配置的详细说明
布谷直播系统源码搭建部署时数据库配置明细!
|
5天前
|
机器学习/深度学习 人工智能 PyTorch
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考
阿里云GPU云服务器怎么样?阿里云GPU结合了GPU计算力与CPU计算力,主要应用于于深度学习、科学计算、图形可视化、视频处理多种应用场景,本文为您详细介绍阿里云GPU云服务器产品优势、应用场景以及最新活动价格。
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考

热门文章

最新文章