标题:
CentOS8_在Docker的容器内自动启动服务
[打印本页]
作者:
admin
时间:
2023-3-18 20:51
标题:
CentOS8_在Docker的容器内自动启动服务
笺注:Docker的安装可参考
CentOS8_在Docker中使用Nginx的反向代理
查看Docker的版本信息: [root@centos8 ~]# docker -v Docker version
20.10.21
, build baeda1f [root@centos8 ~]# 已经设置开机自动启动Docker: [root@centos8 ~]# systemctl is-enabled docker
enabled
[root@centos8 ~]# 从公网下载镜像:( 以下是下载Ubuntu 20.04的镜像 ) [root@centos8 ~]# docker pull
ubuntu:20.04
20.04: Pulling from library/ubuntu 06d39c85623a: Pull complete Digest: sha256:24a0df437301598d1a4b62ddf59fa0ed2969150d70d748c84225e6501e9c36b9 Status: Downloaded newer image for ubuntu:20.04 docker.io/library/ubuntu:20.04 [root@centos8 ~]# 查看宿主机的所有镜像: [root@centos8 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 20.04 1c5c8d0b973a 8 days ago 72.8MB
[root@centos8 ~]# 使用镜像“ubuntu:20.04”创建并启动容器“Vsftpd_1”: [root@centos8 ~]# docker run -itd --name
Vsftpd_1
-p 21:21 -v /opt/share:/usr/share/html
ubuntu:20.04
5144089bae4f
a6160845b89c66f17463c38cb15a9cae4e9698855e99c5ea9d1b [root@centos8 ~]# 注释: -itd : 以交互模式情况下后台运行。 --name : 指定容器名称。 -p 端口映射 : 第一个21是宿主机的端口,暴露给外部直接访问;第二个21是容器的端口。 -v 挂载目录 : 这里是把宿主机的目录/opt/share挂载到容器的目录/usr/share/html;假如目录不存在,就会自动创建。
ubuntu:20.04
: 镜像名称:版本号 在宿主机查看正在运行的容器: [root@centos8 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5144089bae4f
ubuntu:20.04 "/bin/bash" 57 seconds ago Up 56 seconds
0.0.0.0:21->21/tcp, :::21->21/tcp
Vsftpd_1
[root@centos8 ~]# 注释:宿主机的TCP 21端口,映射到容器“Vsftpd_1”的TCP 21端口。 ### 进入容器“Vsftpd_1”: [root@centos8 ~]# docker exec -it
Vsftpd_1
/bin/bash root@5144089bae4f:/# 查看容器“Vsftpd_1”的系统版本信息: root@5144089bae4f:/# cat /etc/issue
Ubuntu 20.04.5 LTS \n \l
root@5144089bae4f:/# uname -a Linux 5144089bae4f
4.18.0-193.el8.x86_64
#1 SMP Fri May 8 10:59:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux root@5144089bae4f:/# 在容器“Vsftpd_1”中安装vsftpd: root@5144089bae4f:/# whoami
root
root@5144089bae4f:/# apt-get update root@5144089bae4f:/# apt-get -y install
vsftpd
查看vsftpd的版本: root@5144089bae4f:/# vsftpd -v
vsftpd: version 3.0.3
root@5144089bae4f:/# 建立FTP用户:(使用vsftpd用户验证) root@5144089bae4f:/# groupadd ftp_01 root@5144089bae4f:/# root@5144089bae4f:/# useradd -g ftp_01 -d /usr/share/html -s /bin/bash
happy
root@5144089bae4f:/# passwd
happy
New password: Retype new password: passwd: password updated successfully root@5144089bae4f:/# root@5144089bae4f:/# useradd -g ftp_01 -d /usr/share/html -s /bin/bash
ftp_user_1
root@5144089bae4f:/# passwd
ftp_user_1
New password: Retype new password: passwd: password updated successfully root@5144089bae4f:/# 设置FTP目录的权限:(属主有读写的权限;组员只可以读,不可以写;其他人不可以读写) root@5144089bae4f:/# chown -R happy:ftp_01 /usr/share/html root@5144089bae4f:/# root@5144089bae4f:/# chmod -R 750 /usr/share/html root@5144089bae4f:/# root@5144089bae4f:/# ls -ld /usr/share/html drwxr-x---. 3 happy ftp_01 93 Mar 14 03:09 /usr/share/html root@5144089bae4f:/# ### 在宿主机上修改容器“Vsftpd_1”的vsftpd的主配置文件: [root@centos8 ~]# docker cp
Vsftpd_1
:/etc/vsftpd.conf /root [root@centos8 ~]# vi vsftpd.conf 追加: userlist_deny=NO userlist_enable=YES userlist_file=
/etc/allowed_users
seccomp_sandbox=NO local_enable=YES pasv_promiscuous=YES write_enable=YES 在宿主机上,往容器“Vsftpd_1”上传修改好的文件: [root@centos8 ~]# docker cp /root/vsftpd.conf
Vsftpd_1
:/etc/vsftpd.conf [root@centos8 ~]# 再往容器“Vsftpd_1”上传以下文件:(允许登录FTP的系统用户) [root@centos8 ~]# cat allowed_users happy ftp_user_1 [root@centos8 ~]# [root@centos8 ~]# docker cp /root/allowed_users
Vsftpd_1
:/etc/ [root@centos8 ~]# Docker宿主机的防火墙其实可以不用打开TCP 21端口: [root@centos8 ~]# firewall-cmd --zone=public --list-ports [root@centos8 ~]# ### 在容器“Vsftpd_1”里重启vsftpd服务:(vsftpd服务不会自动启动) root@5144089bae4f:/# /etc/init.d/vsftpd restart
[ OK ]pping FTP server vsftpd [ OK ]rting FTP server vsftpd
root@5144089bae4f:/# 查看vsftpd服务的状态: root@5144089bae4f:/# service vsftpd status
* FTP server is running
root@5144089bae4f:/# 创建任务计划: root@5144089bae4f:/# apt-get -y install vim root@5144089bae4f:/# crontab -e -u
root
追加: */1 * * * * chown -R happy:ftp_01 /usr/share/html */1 * * * * chmod -R 750 /usr/share/html 要手动启动任务计划服务:(cron服务不会自动启动) root@5144089bae4f:/# service cron status
* cron is not running
root@5144089bae4f:/# service cron start
[ OK ]rting periodic command scheduler cron
root@5144089bae4f:/# service cron status
* cron is running
root@5144089bae4f:/# ### Ubuntu18.04桌面版的客户端访问容器“Vsftpd_1”的FTP:(使用vsftpd用户验证) telnet 192.168.168.154
21
下载
(42.64 KB)
2023-3-18 20:57
注释:容器“Vsftpd_1”要打开TCP 21端口。 打开Linux文件管理器,在左侧窗格中点击“其他位置”》“连接到服务器”: ftp://192.168.168.154
下载
(60.97 KB)
2023-3-18 20:57
下载
(34.51 KB)
2023-3-18 20:58
下载
(90.3 KB)
2023-3-18 20:58
要手动切换到目录/usr/share/html
下载
(42.64 KB)
2023-3-18 20:58
实验至此,对于容器“Vsftpd_1”的FTP目录里面的所有内容,happy可以下载、上传、修改、删除;ftp_user_1只可以下载。(支持中文) ###### ###### 在Docker的容器内自动启动vsftpd服务、cron服务: 进入容器“Vsftpd_1”: [root@centos8 ~]# docker exec -it
Vsftpd_1
/bin/bash root@5144089bae4f:/# root@5144089bae4f:/# cd /etc/init.d root@5144089bae4f:/etc/init.d# root@5144089bae4f:/etc/init.d# ls
cron
hwclock.sh procps
vsftpd
root@5144089bae4f:/etc/init.d# 在容器“Vsftpd_1”里创建一个脚本: root@5144089bae4f:/# cat /etc/auto_service.sh #!/bin/bash
/etc/init.d/vsftpd start /etc/init.d/cron start
/bin/bash root@5144089bae4f:/# chmod 777 /etc/auto_service.sh root@5144089bae4f:/# root@5144089bae4f:/# ll /etc/auto_service.sh -rwxrwxrwx. 1 root root 70 Mar 17 15:01 /etc/auto_service.sh* root@5144089bae4f:/# 在宿主机把容器“Vsftpd_1”创建成一个新镜像: [root@centos8 ~]# docker commit
Vsftpd_1
vsftpd_1:3.88
sha256:800cdc08eceee28ec90068c9640337ff37726c5014c59ad8e9f2e3376b4cc8d0
[root@centos8 ~]# 笺注:
vsftpd_1:3.88
: 新镜像名称:版本号 再次,查看宿主机的所有镜像: [root@centos8 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE
vsftpd_1 3.88 800cdc08ecee 52 seconds ago 184MB
ubuntu 20.04 1c5c8d0b973a 9 days ago 72.8MB [root@centos8 ~]# 在宿主机创建Dockerfile文件: [root@centos8 ~]# vi Dockerfile 写入: FROM
vsftpd_1:3.88
CMD ["/bin/bash","/etc/auto_service.sh"] 笺注:
vsftpd_1:3.88
: 源镜像名称:版本号 根据Dockerfile文件创建成一个新镜像: [root@centos8 ~]# docker build -f ./Dockerfile -t
vsftpd_1:3.99
.
Sending build context to Docker daemon 22.53kB Step 1/2 : FROM vsftpd_1:3.88 ---> 800cdc08ecee Step 2/2 : CMD ["/bin/bash","/etc/auto_service.sh"] ---> Running in b5448a21e9c0 Removing intermediate container b5448a21e9c0 ---> 393e32f39ed6 Successfully built 393e32f39ed6 Successfully tagged vsftpd_1:3.99
[root@centos8 ~]# 笺注:
vsftpd_1:3.99
: 新镜像名称:版本号 再次,查看宿主机的所有镜像: [root@centos8 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE
vsftpd_1 3.99 393e32f39ed6 2 minutes ago 184MB
vsftpd_1 3.88 800cdc08ecee 20 minutes ago 184MB ubuntu 20.04 1c5c8d0b973a 9 days ago 72.8MB [root@centos8 ~]# 使用镜像“vsftpd_1:3.99”创建并启动容器“Vsftpd_2”: [root@centos8 ~]# docker run -itd --name
Vsftpd_2
-p 2121:21 -v /opt/share:/usr/share/html
vsftpd_1:3.99
c885f5a502f6
636ee2eb5e3a8bd433a9b40e4db4b380587dc903c4b16085bd27 [root@centos8 ~]# 注释: -itd : 以交互模式情况下后台运行。 --name : 指定容器名称。 -p 端口映射 : 2121是宿主机的端口,暴露给外部直接访问;21是容器的端口。 -v 挂载目录 : 这里是把宿主机的目录/opt/share挂载到容器的目录/usr/share/html;假如目录不存在,就会自动创建。
vsftpd_1:3.99
: 镜像名称:版本号 在宿主机查看所有的容器:(无论是否正在运行) [root@centos8 ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c885f5a502f6
vsftpd_1:3.99 "/bin/bash /etc/auto…" 3 minutes ago Up 3 minutes
0.0.0.0:2121->21/tcp, :::2121->21/tcp
Vsftpd_2
5144089bae4f ubuntu:20.04 "/bin/bash" 28 hours ago Up 49 minutes 0.0.0.0:21->21/tcp, :::21->21/tcp Vsftpd_1 [root@centos8 ~]# 注释:宿主机的TCP 2121端口,映射到容器“Vsftpd_2”的TCP 21端口。 ### 进入容器“Vsftpd_2”: [root@centos8 ~]# docker exec -it
Vsftpd_2
/bin/bash root@c885f5a502f6:/# 查看vsftpd服务的状态: root@c885f5a502f6:/# service vsftpd status
* FTP server is running
root@c885f5a502f6:/# 查看cron服务的状态: root@c885f5a502f6:/# service cron status
* cron is running
root@c885f5a502f6:/# 笺注:实验至此,容器“Vsftpd_2”的vsftpd服务、cron服务会随宿容器的启动而启动。 在宿主机让容器“Vsftpd_2”随宿主机的启动而启动: [root@centos8 ~]# docker update --restart
=always
Vsftpd_2
Vsftpd_2
[root@centos8 ~]# 笺注:实验至此,容器“Vsftpd_2”的vsftpd服务、cron服务会随宿主机的启动而启动。 ### Ubuntu18.04桌面版的客户端访问容器“Vsftpd_2”的FTP:(使用vsftpd用户验证) telnet 192.168.168.154
2121
下载
(41.95 KB)
2023-3-18 21:03
注释:容器“Vsftpd_2”要打开TCP 21端口。 打开Linux文件管理器,在左侧窗格中点击“其他位置”》“连接到服务器”: ftp://192.168.168.154:
2121
下载
(62.28 KB)
2023-3-18 21:03
下载
(34.99 KB)
2023-3-18 21:03
下载
(85.8 KB)
2023-3-18 21:04
要手动切换到目录/usr/share/html
下载
(45.83 KB)
2023-3-18 21:04
实验至此,对于容器“Vsftpd_2”的FTP目录里面的所有内容,happy可以下载、上传、修改、删除;ftp_user_1只可以下载。(支持中文) 相关文章:
CentOS8_在Docker中安装vsftpd
CentOS8_在Docker中安装Flask
CentOS8_在Docker中安装PureFTPd
CentOS8_在Docker中限制容器可用的CPU个数和内存量
图片附件:
图片1.png
(2023-3-18 20:57, 42.64 KB) / 下载次数 16
http://blog.zhuohua.store/attachment.php?aid=22193&k=328710845c934a8eb77d6598d2975078&t=1714338874&sid=Xy716F
图片附件:
图片2.png
(2023-3-18 20:57, 60.97 KB) / 下载次数 15
http://blog.zhuohua.store/attachment.php?aid=22194&k=974582ef92568a90e1a9aba265afbea0&t=1714338874&sid=Xy716F
图片附件:
图片3.png
(2023-3-18 20:58, 34.51 KB) / 下载次数 12
http://blog.zhuohua.store/attachment.php?aid=22195&k=338ffd349996967d555b9b484871be78&t=1714338874&sid=Xy716F
图片附件:
图片4.png
(2023-3-18 20:58, 90.3 KB) / 下载次数 15
http://blog.zhuohua.store/attachment.php?aid=22196&k=248593919b126e91e0d26c91ba822247&t=1714338874&sid=Xy716F
图片附件:
图片5.png
(2023-3-18 20:58, 42.64 KB) / 下载次数 17
http://blog.zhuohua.store/attachment.php?aid=22197&k=f54f94e78c19de1f61a39843bfa53a22&t=1714338874&sid=Xy716F
图片附件:
图片6.png
(2023-3-18 21:03, 41.95 KB) / 下载次数 12
http://blog.zhuohua.store/attachment.php?aid=22198&k=60f2bb9b84aa38cd1c23641068ce23f7&t=1714338874&sid=Xy716F
图片附件:
图片7.png
(2023-3-18 21:03, 62.28 KB) / 下载次数 12
http://blog.zhuohua.store/attachment.php?aid=22199&k=c5bb54621c0fa84aaab21aefde57a322&t=1714338874&sid=Xy716F
图片附件:
图片8.png
(2023-3-18 21:03, 34.99 KB) / 下载次数 13
http://blog.zhuohua.store/attachment.php?aid=22200&k=dd148172a6bb498f4f827fbd425f29e4&t=1714338874&sid=Xy716F
图片附件:
图片9.png
(2023-3-18 21:04, 85.8 KB) / 下载次数 20
http://blog.zhuohua.store/attachment.php?aid=22201&k=fea88f8eca91e404740d0bc19bc4cda8&t=1714338874&sid=Xy716F
图片附件:
图片11.png
(2023-3-18 21:04, 45.83 KB) / 下载次数 14
http://blog.zhuohua.store/attachment.php?aid=22202&k=2284381fd85bddc44feda6b1a0b698cd&t=1714338874&sid=Xy716F
欢迎光临 blog.zhuohua.store (http://blog.zhuohua.store/)
Powered by Discuz! 7.2