前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >创建带httpd服务的CentOS Docker镜像

创建带httpd服务的CentOS Docker镜像

作者头像
双面人
发布2019-05-31 14:16:20
1.3K0
发布2019-05-31 14:16:20
举报
文章被收录于专栏:热爱IT热爱IT

一、拉取带sshd服务的centos docker镜像到本地

代码语言:javascript
复制
命令:
  docker pull freedoms1988/centos7-sshd
解释:
  docker pull【拉取命令】 freedoms1988/centos7-sshd【远程镜像名】

二、启动带sshd服务的centos docker容器

代码语言:javascript
复制
命令:
  docker run -p 10022:22 -d freedoms1988/centos7-sshd /usr/sbin/sshd -D
解释:
  docker run【运行命令】 -p 10022:22【映射端口:宿主机10022到docker22】 -d freedoms1988/centos7-sshd【本地镜像名】 /usr/sbin/sshd -D【启动sshd命令】

三、登录容器

代码语言:javascript
复制
命令:
  ssh root@localhost -p 10022
解释:
  ssh root【用户】@localhost【主机名】 -p 10022【端口号】

四、安装openssh-clients

代码语言:javascript
复制
命令:
  yum install openssh-clients
解释:
  yum install【安装命令】openssh-clients【软件名称】

五、安装wget

代码语言:javascript
复制
命令:
  yum install wget
解释:
  yum install【安装命令】wget【软件名称】

六、下载httpd

代码语言:javascript
复制
命令:
  1、cd /usr/local/src
  2、wget [http://apache.01link.hk//httpd/httpd-2.4.29.tar.gz](http://apache.01link.hk//httpd/httpd-2.4.29.tar.gz)
  3、tar -zxvf httpd-2.4.29.tar.gz
  4、cd httpd-2.4.29
解释:
  1、进入源码暂存路径
  2、下载httpd2.4.29
  3、解压
  4、进入httpd2.4.29源码路径

七、安装gcc、make、apache依赖

代码语言:javascript
复制
命令:
  yum install -y gcc make apr-devel apr apr-util apr-util-devel pcre-devel
解释:
  yum install【安装命令】 -y【自动确认参数】 gcc make apr-devel apr apr-util apr-util-devel pcre-devel【软件名称】

八、编译、安装httpd

代码语言:javascript
复制
命令:
  1、./configure --prefix=/usr/local/apache2 --enable-mods-shared=most --enable-so
  2、make && make install
解释:
  1、配置编译参数,安装路径
  2、编译并安装

九、修改httpd配置

代码语言:javascript
复制
命令:
  sed -i 's/#ServerName www.example.com:80/ServerName localhost:80/g' /usr/local/apache2/conf/httpd.conf
解释:
  sed【查找命令】 -i【替换参数】 's/#ServerName www.example.com:80/ServerName localhost:80/g' 【待替换参数/替换参数】/usr/local/apache2/conf/httpd.conf【文件路径】

十、启动httpd

代码语言:javascript
复制
命令:
  1、/usr/local/apache2/bin/httpd
  2、systemctl enable httpd.service
解释:
  1、启动httpd
  2、设置开机自启动

十一、编辑ssh、httpd启动脚本

代码语言:javascript
复制
操作:
  1、cd /usr/local/sbin
  2、vim httpd.sh
  3、编辑内容:
      #!/bin/bash
      /usr/sbin/sshd &
      /usr/local/apache2/bin/httpd -D FOREGROUND
  4、保存退出
  5、更改文件权限
    chmod 755 httpd.sh

十二、生成支持ssh的centos镜像

代码语言:javascript
复制
命令:
  1、docker ps -a
  2、docker commit 6c40d0d2d8e centos7-sshd
  3、docker images
解释:
  1、docker ps【列出容器列表】 -a【可选参数,列出未启动容器列表】
  2、docker commit【提交】6c40d0d2d8e【上一步中容器id】 centos7-httpd2.4-sshd【自定义镜像名称】
  3、docker images【列出本地镜像列表】

十三、使用生成的镜像运行容器

代码语言:javascript
复制
命令:
  docker run -d -p 10022:22 -p 8080:80 freedoms1988/centos7-httpd2.4-sshd /usr/local/sbin/httpd.sh
解释:
  docker run【运行命令】 -d【后台进程参数】 -p 10022:22【端口映射:宿主机10022到docker22】 -p 8080:80 【端口映射:宿主机8080到docker80】freedoms1988/centos7-httpd2.4-sshd【镜像名称】 /usr/local/sbin/httpd.sh【运行镜像时运行脚本路径】

十四、测试httpd

代码语言:javascript
复制
操作:
  浏览器中输入localhost:8080
结果:
  看到it'work

十五、测试sshd

代码语言:javascript
复制
操作:
  ssh root@localhost -p 10022
结果:
  成功进入容器

十六、挂载宿主机项目目录到容器httpd服务目录

代码语言:javascript
复制
命令:
  docker run -d -p 10022:22 -p 8080:80 -v /Users/freedoms/work/Docker/httpd/www:/usr/local/apache2/htdocs freedoms1988/centos7-httpd2.4-sshd /usr/local/sbin/httpd.sh
解释:
  docker run【运行命令】 -d -p 10022:22【端口映射:宿主机10022到docker22】 -p 8080:80【端口映射:宿主机8080到docker80】 -v /Users/freedoms/work/Docker/httpd/www:/usr/local/apache2/htdocs 【目录映射:宿主机目录:docker目录】freedoms1988/centos7-httpd2.4-sshd 【镜像名称】 /usr/local/sbin/httpd.sh 【运行镜像时运行脚本路径】

十七、测试宿主机项目目录挂载有效性

代码语言:javascript
复制
操作:
  1、在宿主机项目目录中创建index.html文件,并输入任意内容
  2、在宿主机或容器内 curl localhost:8080
结果:
  应打印index.html文件内容
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档