建立带httpd服务的CentOS Docker镜像

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

命令:
  docker pull freedoms1988/centos7-sshd
解释:
  docker pull【拉取命令】 freedoms1988/centos7-sshd【远程镜像名】

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

命令:
  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命令】

3、登陆容器apache

命令:
  ssh root@localhost -p 10022
解释:
  ssh root【用户】@localhost【主机名】 -p 10022【端口号】

4、安装openssh-clientsvim

命令:
  yum install openssh-clients
解释:
  yum install【安装命令】openssh-clients【软件名称】

5、安装wgetcentos

命令:
  yum install wget
解释:
  yum install【安装命令】wget【软件名称】

6、下载httpd浏览器

命令:
  一、cd /usr/local/src
  二、wget [http://apache.01link.hk//httpd/httpd-2.4.29.tar.gz](http://apache.01link.hk//httpd/httpd-2.4.29.tar.gz)
  三、tar -zxvf httpd-2.4.29.tar.gz
  四、cd httpd-2.4.29
解释:
  一、进入源码暂存路径
  二、下载httpd2.4.29
  三、解压
  四、进入httpd2.4.29源码路径

7、安装gcc、make、apache依赖bash

命令:
  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【软件名称】

8、编译、安装httpddom

命令:
  一、./configure --prefix=/usr/local/apache2 --enable-mods-shared=most --enable-so
  二、make && make install
解释:
  一、配置编译参数,安装路径
  二、编译并安装

9、修改httpd配置ssh

命令:
  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【文件路径】

10、启动httpdcurl

命令:
  一、/usr/local/apache2/bin/httpd
  二、systemctl enable httpd.service
解释:
  一、启动httpd
  二、设置开机自启动

11、编辑ssh、httpd启动脚本

操做:
  一、cd /usr/local/sbin
  二、vim httpd.sh
  三、编辑内容:
      #!/bin/bash
      /usr/sbin/sshd &
      /usr/local/apache2/bin/httpd -D FOREGROUND
  四、保存退出
  五、更改文件权限
    chmod 755 httpd.sh

12、生成支持ssh的centos镜像

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

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

命令:
  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【运行镜像时运行脚本路径】

十4、测试httpd

操做:
  浏览器中输入localhost:8080
结果:
  看到it'work

十5、测试sshd

操做:
  ssh root@localhost -p 10022
结果:
  成功进入容器

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

命令:
  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 【运行镜像时运行脚本路径】

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

操做:
  一、在宿主机项目目录中建立index.html文件,并输入任意内容
  二、在宿主机或容器内 curl localhost:8080
结果:
  应打印index.html文件内容
相关文章
相关标签/搜索