CentOS下如何创建基于supervisord的sshd和其它服务的Docker image
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,小编给大家分享一下CentOS下如何创建基于supervisord的sshd和其它服务的Docker image,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1. 基于supervi
千家信息网最后更新 2025年12月04日CentOS下如何创建基于supervisord的sshd和其它服务的Docker image1. 基于supervisord的sshd和httpd
小编给大家分享一下CentOS下如何创建基于supervisord的sshd和其它服务的Docker image,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
1. 基于supervisord的sshd和httpd
获取最新的centos镜像
# docker pull centos:latest
编写Dockerfile(支持apache+ssh服务)
# mkdir /home/Dockerfile/webserver# cd /home/Dockerfile/webserver# vim Dockerfile
Dockerfile内容如下:
# This is a base commentFROM centos:latestMAINTAINER renguijiayi#yum install PackageRUN yum -y install net-toolsRUN yum -y install iputils iproute man vim-minimal openssh-server openssh-clientsRUN yum -y install httpdRUN yum -y install python-setuptoolsRUN easy_install supervisor#set sshdRUN ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_keyRUN ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_rsa_keyRUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ""RUN sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshdRUN mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.sshRUN echo 'root:qwe123' | chpasswd#set supervisorRUN mkdir -p /var/log/supervisorADD supervisord.conf /etc/supervisord.conf#set portEXPOSE 22EXPOSE 80#set ENVENV LANG en_US.UTF-8ENV LC_ALL en_US.UTF-8#run supervisorCMD ["/usr/bin/supervisord -c /etc/supervisord.conf"]
通过supervisord来维护Docker容器中服务进程,编写supervisord.conf:
# vi supervisord.conf[supervisord]nodaemon=true[program:sshd]command=/usr/sbin/sshd -D[program:httpd]command=/usr/sbin/httpd -DFOREGROUND
创建镜像,运行:
# docker build -t test/webserver:v1 .
2. 基于supervisord的sshd和mysql
直接上Dockerfile:
FROM centos:centos6 MAINTAINER renguijiayi RUN rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmRUN yum install -y openssh-server sudo mysql-server mysql supervisorRUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config RUN useradd adminRUN echo "admin:admin" | chpasswdRUN echo "admin ALL=(ALL) ALL" >> /etc/sudoers RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_keyRUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_keyRUN mkdir /var/run/sshd RUN /etc/init.d/mysqld start &&\ mysql -e "grant all privileges on *.* to 'root'@'%' identified by 'letmein';"&&\ mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by 'letmein';"&&\ mysql -u root -pletmein -e "show databases;" RUN mkdir -p /var/log/supervisorCOPY supervisord.conf /etc/supervisord.conf EXPOSE 22 3306CMD ["/usr/bin/supervisord"]
在Dockerfile所在目录下创建supervisord.conf文件,内容如下:
[supervisord]nodaemon=true [program:sshd]command=/usr/sbin/sshd -D [program:mysqld]command=/usr/bin/mysqld_safe
在Dockerfile所在目录下运行build命令来生成image文件,这里使用mysql_server作为image文件名:
sudo docker build -t myserver .
首先使用下面的命令来启动容器:
sudo docker run --name=myserver -d -P myserver
启动完容器后,可以使用"sudo docker ps"来查看,此时可以看PORTS列内容为"0.0.0.0:49171->22/tcp, 0.0.0.0:49172->3306/tcp"容器的22端口和3306端口会被映射到宿主机器的49171和49172端口。
可以通过下面的命令来访问ssh和mysql服务:
ssh admin@<宿主机器> -p <宿主机器端口>mysql -h <宿主机器> -u root -pletmein -P 49172
也可以使用"sudo docker inspect myserver | grep IPAddress"来查看容器IP地址,然后通过下面命令访问ssh和mysql服务:
ssh admin@<容器机器IP> mysql -h <容器机器IP> -u root -pletmein
看完了这篇文章,相信你对"CentOS下如何创建基于supervisord的sshd和其它服务的Docker image"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
服务
容器
命令
内容
文件
端口
所在
目录
篇文章
镜像
面的
运行
可以通过
地址
完了
宿主
文件名
更多
机器
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全电竞联赛
有哪些网络安全协议
网络安全培训制度- 百度
网络安全波尔远控
上海力谱云软件开发公司
富士通服务器管理ip
软件开发公司部门职责分工
计算机网络技术有关公司
方舟手游服务器怎么区域pvp
如何得到自己手机服务器地址
数据库原理第三版答案
江苏运营网络技术服务内容
干巴精互联网科技
oracle数据库工资
如何连接港澳台服务器
成都市网络安全保卫支队
关系表 数据库
自动化软件开发工程师招聘
西山租房网络安全
新沂市在哪里找软件开发公司
c 数据库操作类
深圳亿诺互联网络科技
csgo如何搜服务器
安徽企业网络技术咨询怎么样
系统后台服务器如何进入
鲸网互联网科技有限公司
xbox360改装服务器
疯狂坦克服务器搭建
数据库总计查询的创建方法
网络安全标语卡片制作