标题:
CentOS8_在Docker中安装PureFTPd
[打印本页]
作者:
admin
时间:
2023-4-4 14:30
标题:
CentOS8_在Docker中安装PureFTPd
查看Docker的版本信息: [root@centos8 ~]# docker -v Docker version
20.10.21
, build baeda1f [root@centos8 ~]# 已经设置开机自动启动Docker: [root@centos8 ~]# systemctl is-enabled docker
enabled
[root@centos8 ~]# 从公网下载镜像:( 以下是下载Redhat6.9的镜像 ) [root@centos8 ~]# docker pull
registry.access.redhat.com/rhel6:6.9
6.9: Pulling from rhel6 13cd330500ad: Pull complete 55e5ecc272dd: Pull complete Digest: sha256:b831589d62fd5cfe62f08f2ffe13c32d7396e2577e960fd148402f588a92e6ba Status: Downloaded newer image for registry.access.redhat.com/rhel6:6.9 registry.access.redhat.com/rhel6:6.9 [root@centos8 ~]# 查看宿主机的所有镜像: [root@centos8 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE
registry.access.redhat.com/rhel6 6.9 04b4d8781fb6 4 years ago 199MB
[root@centos8 ~]# 使用镜像“registry.access.redhat.com/rhel6:6.9”创建并启动容器“rhel6_1”: [root@centos8 ~]# docker run -itd --name
rhel6_1
-p 21:21 -v /opt/share:/home/dir_1
registry.access.redhat.com/rhel6:6.9
e9eaa92621c5
b3d382787aa6b65b36d64ccfcd3716a450bd734b32541fee6997 [root@centos8 ~]# 注释: -itd : 以交互模式情况下后台运行。 --name : 指定容器名称。 -p 端口映射 : 第一个21是宿主机的端口,暴露给外部直接访问;第二个21是容器的端口。 -v 挂载目录 : 这里是把宿主机的目录/opt/share挂载到容器的目录/home/dir_1;假如目录不存在,就会自动创建。
registry.access.redhat.com/rhel6:6.9
: 镜像名称:版本号 在宿主机查看正在运行的容器: [root@centos8 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e9eaa92621c5
registry.access.redhat.com/rhel6:6.9 "/bin/bash" About a minute ago Up About a minute
0.0.0.0:21->21/tcp, :::21->21/tcp
rhel6_1
[root@centos8 ~]# 注释:宿主机的TCP 21端口,映射到容器“rhel6_1”的TCP 21端口。 ### 进入容器“rhel6_1”: [root@centos8 ~]# docker exec -it
rhel6_1
/bin/bash [root@e9eaa92621c5 /]# [root@e9eaa92621c5 /]# pwd / [root@e9eaa92621c5 /]# ls bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin selinux srv sys tmp usr var [root@e9eaa92621c5 /]# 查看容器“rhel6_1”的系统版本信息: [root@e9eaa92621c5 /]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.9 (Santiago)
[root@e9eaa92621c5 /]# uname -r
4.18.0-193.el8.x86_64
[root@e9eaa92621c5 /]# [root@e9eaa92621c5 /]# vim 1.txt
bash: vim: command not found
[root@e9eaa92621c5 /]# 不可以直接使用公网Yum源: [root@e9eaa92621c5 /]# yum -y install vim
Loaded plugins: ovl, product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager to register. Setting up Install Process No package vim available. Error: Nothing to do
[root@e9eaa92621c5 /]# [root@e9eaa92621c5 /]# cd /etc/yum.repos.d [root@e9eaa92621c5 yum.repos.d]# ls
redhat.repo
[root@e9eaa92621c5 yum.repos.d]# [root@e9eaa92621c5 yum.repos.d]# cat redhat.repo # # Certificate-Based Repositories # Managed by (rhsm) subscription-manager # # *** This file is auto-generated. Changes made here will be over-written. *** # *** Use "subscription-manager repo-override --help" if you wish to make changes. *** # # If this file is empty and this system is subscribed consider # a "yum repolist" to refresh available repos #[root@e9eaa92621c5 yum.repos.d]# Redhat6使用CentOS6的公网Yum源,可参考:
CentOS6使用新Yum源+EPEL
[root@e9eaa92621c5 yum.repos.d]# ls
CentOS-Base.repo epel.repo
redhat.repo [root@e9eaa92621c5 yum.repos.d]# 现在可以使用公网Yum源安装rpm软件包: [root@e9eaa92621c5 ~]# yum -y install vim [root@e9eaa92621c5 ~]# yum -y install wget ### 在容器“rhel6_1”中安装PureFTPd: 先安装依赖软件包: yum -y install gcc gcc-c++ autoconf automake tar yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel 编译安装: tar -zxvf pure-ftpd-1.0.47.tar.gz && cd pure-ftpd-1.0.47 ./configure --prefix=/usr/local/pureftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-peruserlimits --with-tls make && make install 修改PureFTPd的配置文件:(可拿以下代码直接覆盖原文件) [root@e9eaa92621c5 ~]#
cat /usr/local/pureftpd/etc/pure-ftpd.conf |grep -v "^#" |grep -v "^$"
ChrootEveryone yes BrokenClientsCompatibility no MaxClientsNumber 50 Daemonize yes MaxClientsPerIP 8 VerboseLog no DisplayDotFiles yes AnonymousOnly no NoAnonymous yes SyslogFacility ftp DontResolve yes MaxIdleTime 15 PureDB /usr/local/pureftpd/etc/pureftpd.pdb LimitRecursion 10000 8 AnonymousCanCreateDirs no MaxLoad 4 PassivePortRange 9000 9045 AntiWarez yes Umask 133:022 MinUID 100 AllowUserFXP no AllowAnonymousFXP no ProhibitDotFilesWrite no ProhibitDotFilesRead no AutoRename no AnonymousCantUpload yes CreateHomeDir yes MaxDiskUsage 99 CustomerProof yes IPV4Only yes 启动PureFTPd服务: [root@e9eaa92621c5 ~]# /usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf [root@e9eaa92621c5 ~]# 确认PureFTPd服务正在运行中: [root@e9eaa92621c5 ~]# ps -ef |grep pure-ftpd | grep -v "grep"
root 9990 1 0 21:13 ? 00:00:00 /usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf
[root@e9eaa92621c5 ~]# 检测PureFTPd的监听端口:(PureFTPd服务运行时) [root@e9eaa92621c5 ~]# netstat -anp |grep pure-ftpd tcp 0 0 0.0.0.0:
21
0.0.0.0:* LISTEN 9990/pure-ftpd [root@e9eaa92621c5 ~]# 创建一个真实的系统用户: [root@e9eaa92621c5 ~]# useradd -d /home/pure -s /sbin/nologin
pure
[root@e9eaa92621c5 ~]# 设置FTP目录的权限: [root@e9eaa92621c5 ~]# chmod -R 777 /home/dir_1 [root@e9eaa92621c5 ~]# 添加FTP虚拟用户(zhuohua),并指定其FTP目录: [root@e9eaa92621c5 ~]# /usr/local/pureftpd/bin/pure-pw useradd
zhuohua
-u pure -d
/home/dir_1
Password: Enter it again: [root@e9eaa92621c5 ~]# 每添加一个新的FTP虚拟用户后,都要重新生成数据库文件: [root@e9eaa92621c5 ~]# /usr/local/pureftpd/bin/pure-pw mkdb [root@e9eaa92621c5 ~]# ### Windows客户端使用FlashFXP连接容器“rhel6_1”的FTP:(使用PureFTPd用户验证)
下载
(40.13 KB)
2023-4-4 14:33
可能会出现以下错误:(FlashFXP其实可以自动更改模式)
下载
(36.15 KB)
2023-4-4 14:33
解决方法:(指定站点不使用被动模式)
下载
(203.73 KB)
2023-4-4 14:33
下载
(208.96 KB)
2023-4-4 14:34
实验至此,对于容器“rhel6_1”的FTP目录里面的所有内容,zhuohua可以下载、上传、修改、删除。(支持中文) ### 容器“rhel6_1”默认是没有安装crontab周期性计划任务: [root@e9eaa92621c5 ~]# service crond status
crond: unrecognized service
[root@e9eaa92621c5 ~]# 安装crond服务: [root@e9eaa92621c5 ~]# yum -y install vixie-cron 安装crond服务成功后:(其实crond服务是不会随容器的启动而启动) [root@e9eaa92621c5 ~]# service crond status
crond is stopped
[root@e9eaa92621c5 ~]# chkconfig --list crond crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@e9eaa92621c5 ~]# ### 让PureFTPd服务、crond服务随容器的启动而启动: 在容器“rhel6_1”里创建一个脚本: [root@e9eaa92621c5 ~]# cat /etc/auto_service.sh #!/bin/bash
/usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf
service crond start
/bin/bash [root@e9eaa92621c5 ~]# chmod 777 /etc/auto_service.sh [root@e9eaa92621c5 ~]# ll /etc/auto_service.sh -rwxrwxrwx. 1 root root 96 Apr 3 21:57 /etc/auto_service.sh [root@e9eaa92621c5 ~]# 在宿主机把容器“rhel6_1”创建成一个新镜像: [root@centos8 ~]# docker commit
rhel6_1
rhel6_1:3.8.1
sha256:1498f4c0edaea118e3f4c1c4c8425a8c709a30688d1d0bbaccac3495fe05804b [root@centos8 ~]# 笺注:
rhel6_1:3.8.1
: 新镜像名称:版本号 再次,查看宿主机的所有镜像: [root@centos8 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE
rhel6_1 3.8.1 1498f4c0edae 23 seconds ago 834MB
registry.access.redhat.com/rhel6 6.9 04b4d8781fb6 4 years ago 199MB [root@centos8 ~]# 在宿主机创建Dockerfile文件: [root@centos8 ~]# vi Dockerfile 写入: FROM
rhel6_1:3.8.1
CMD ["/bin/bash","/etc/auto_service.sh"] 笺注:
rhel6_1:3.8.1
: 源镜像名称:版本号 根据Dockerfile文件创建成一个新镜像: [root@centos8 ~]# docker build -f ./Dockerfile -t
rhel6_1:3.8.2
.
Sending build context to Docker daemon 629.8kB Step 1/2 : FROM rhel6_1:3.8.1 ---> 1498f4c0edae Step 2/2 : CMD ["/bin/bash","/etc/auto_service.sh"] ---> Running in ba1102b5a0f4 Removing intermediate container ba1102b5a0f4 ---> 61a0b857815c Successfully built 61a0b857815c Successfully tagged rhel6_1:3.8.2
[root@centos8 ~]# 笺注:
rhel6_1:3.8.2
: 新镜像名称:版本号 再次,查看宿主机的所有镜像: [root@centos8 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE
rhel6_1 3.8.2 61a0b857815c About a minute ago 834MB
rhel6_1 3.8.1 1498f4c0edae 2 minutes ago 834MB registry.access.redhat.com/rhel6 6.9 04b4d8781fb6 4 years ago 199MB [root@centos8 ~]# 使用镜像“rhel6_1:3.8.2”创建并启动容器“rhel6_2”: [root@centos8 ~]# docker run -itd --name
rhel6_2
-p 2121:21 -p 9000-9045:9000-9045 -v /opt/share:/home/dir_1
rhel6_1:3.8.2
746f7edc2dd2
13e126509c5e2801d0ea1691d4e7aa2e6e462b151313dec2a3fb [root@centos8 ~]# 注释: -itd : 以交互模式情况下后台运行。 --name : 指定容器名称。 -p 端口映射 : 2121、9000-9045是宿主机的端口,暴露给外部直接访问;21、9000-9045是容器的端口。 -v 挂载目录 : 这里是把宿主机的目录/opt/share挂载到容器的目录/home/dir_1;假如目录不存在,就会自动创建。
rhel6_1:3.8.2
: 镜像名称:版本号 在宿主机查看所有的容器:(无论是否正在运行) [root@centos8 ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
746f7edc2dd2
rhel6_1:3.8.2 "/bin/bash /etc/auto…" 34 seconds ago Up 30 seconds
0.0.0.0:9000-9045->9000-9045/tcp, :::9000-9045->9000-9045/tcp, 0.0.0.0:2121->21/tcp, :::2121->21/tcp
rhel6_2
e9eaa92621c5 registry.access.redhat.com/rhel6:6.9 "/bin/bash" 2 hours ago Up 15 minutes 0.0.0.0:21->21/tcp, :::21->21/tcp rhel6_1 [root@centos8 ~]# 注释: 宿主机的TCP 2121端口,映射到容器“rhel6_2”的TCP 21端口。 宿主机的TCP 9000-9045端口,映射到容器“rhel6_2”的TCP 9000-9045端口。 宿主机的TCP 9000-9045端口,其实可以不映射到容器“rhel6_2”的TCP 9000-9045端口。 ### 进入容器“rhel6_2”: [root@centos8 ~]# docker exec -it
rhel6_2
/bin/bash [root@746f7edc2dd2 /]# 查看PureFTPd服务的状态: [root@746f7edc2dd2 /]# ps -ef |grep pure-ftpd | grep -v "grep"
root 8 1 0 22:42 ? 00:00:00 /usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf
[root@746f7edc2dd2 /]# 检测PureFTPd的监听端口:(PureFTPd服务运行时) [root@746f7edc2dd2 /]# netstat -anp |grep pure-ftpd tcp 0 0 0.0.0.0:
21
0.0.0.0:* LISTEN 8/pure-ftpd [root@746f7edc2dd2 /]# 查看crond服务的状态: [root@746f7edc2dd2 /]# service crond status
crond (pid 25) is running...
[root@746f7edc2dd2 /]# 笺注:实验至此,容器“rhel6_2”的PureFTPd服务、crond服务会随宿容器的启动而启动。 在宿主机让容器“rhel6_2”随宿主机的启动而启动: [root@centos8 ~]# docker update --restart=
always
rhel6_2
rhel6_2
[root@centos8 ~]# 笺注:实验至此,容器“rhel6_2”的PureFTPd服务、crond服务会随宿主机的启动而启动。 ### Windows客户端使用FileZilla连接容器“rhel6_2”的FTP:(使用PureFTPd用户验证)
下载
(77.08 KB)
2023-4-4 14:38
注释:指定站点要使用端口TCP 2121
下载
(66.09 KB)
2023-4-4 14:38
注释:指定站点要使用主动模式。
下载
(201.72 KB)
2023-4-4 14:39
实验至此,对于容器“rhel6_2”的FTP目录里面的所有内容,zhuohua可以下载、上传、修改、删除。(支持中文) 笺注: Docker宿主机的防火墙其实无需特意打开任何TCP端口: [root@centos8 ~]# firewall-cmd --zone=public --list-ports [root@centos8 ~]# 相关文章:
CentOS8_在Docker中安装vsftpd
CentOS8_在Docker的容器内自动启动服务
PureFTPd虚拟用户验证
本地备份站点目录和数据库+crontab计划任务
图片附件:
图片1.png
(2023-4-4 14:33, 40.13 KB) / 下载次数 23
http://blog.zhuohua.store/attachment.php?aid=22208&k=b593a4d72ec770e58b6ced6dbfcd8ff6&t=1715366233&sid=IeZGxt
图片附件:
图片2.png
(2023-4-4 14:33, 36.15 KB) / 下载次数 16
http://blog.zhuohua.store/attachment.php?aid=22209&k=92faada93650a66569f9724d68f30d9d&t=1715366233&sid=IeZGxt
图片附件:
图片3.png
(2023-4-4 14:33, 203.73 KB) / 下载次数 21
http://blog.zhuohua.store/attachment.php?aid=22210&k=0cf1e24ea1a48188b2a4dfcfe6593f85&t=1715366233&sid=IeZGxt
图片附件:
图片4.png
(2023-4-4 14:34, 208.96 KB) / 下载次数 18
http://blog.zhuohua.store/attachment.php?aid=22211&k=307de1da22d324ced32f7ec4cb6a7336&t=1715366233&sid=IeZGxt
图片附件:
图片5.png
(2023-4-4 14:38, 77.08 KB) / 下载次数 22
http://blog.zhuohua.store/attachment.php?aid=22212&k=a9d964695332de8f0923cb30b3f9b513&t=1715366233&sid=IeZGxt
图片附件:
图片6.png
(2023-4-4 14:38, 66.09 KB) / 下载次数 19
http://blog.zhuohua.store/attachment.php?aid=22213&k=d05c82d530571a28b37b2ebb1b569ef2&t=1715366233&sid=IeZGxt
图片附件:
图片7.png
(2023-4-4 14:39, 201.72 KB) / 下载次数 17
http://blog.zhuohua.store/attachment.php?aid=22214&k=151fec2fe3e4fb7c65c5c2696e18c6b3&t=1715366233&sid=IeZGxt
欢迎光临 blog.zhuohua.store (http://blog.zhuohua.store/)
Powered by Discuz! 7.2