CentOS下如何创建基于supervisord的sshd和其它服务的Docker image
发表于:2025-02-14 作者:千家信息网编辑
千家信息网最后更新 2025年02月14日,小编给大家分享一下CentOS下如何创建基于supervisord的sshd和其它服务的Docker image,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1. 基于supervi
千家信息网最后更新 2025年02月14日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安全错误
数据库的锁怎样保障安全
数据库加密处理
cfps数据库能解决什么问题
网络软件开发价格优势
小学生网络安全教育班会反思
计算机三级网络技术英翻译
数据库创建过程注意事项
it包括数据库技术
网络安全最基本的问题是什么
试述数据库的安全性
任丘盘古网络技术
山东春考信息技术网络技术
数据库修改前后
服务器显示器改造
如何新建数据库使用加密狗
黑龙江智能软件开发
河北线上网络安全博览会
数据库字段长度如何设置
德佑数据库
传奇服务器登录引擎
吉安移动软件开发
宝马f系如何替换数据库
怎么才能快速地清理数据库
我的世界狗啃空岛服务器
数据库技术达摩院
oracle镜像数据库
服务器显示器改造
仓山区图书馆网络安全
肇庆考试软件开发联系方式
华为视频服务器sdk
学习网络技术的免费网站