安装CentOS7虚拟机
注意:为了避免权限问题,这里我选择了以管理员身份运行VitualBox软件。
从CentOS的官网下载minimal的CentOS7的iso文件
将iso导入VitualBox,启动系统,安装CentOS7系统
设置系统的网络,使其可以上网
可以参考这个文章 。
通过VitualBox给虚拟机设置一个NAT网络,一个Host-Only网络,注意记录MAC地址
设置系统的网络信息和DNS,详见我的笔记《VitualBox下CentOS7的网络设置》
1 2 3 4 5 6 7 8 cd /etc/yum.repos.d/ yum install -y wget mv CentOS-Base.repo CentOS-Base.repo.bak wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum clean all yum makecache yum update
由于是我自己的笔记本测试环境,为了方便,我就不考虑冗余,全部安装了;如果是制作线上跑的docker镜像,必须按需安装,避免冗余:
1 yum install -y gcc-c++ gcc-g77 flex lrzsz bison file libtool libtool-libs autoconf kernel-devel patch wget libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel unzip tar bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel vim-minimal gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap diffutils net-tools libc-client-devel psmisc libXpm-devel git-core c-ares-devel
安装Docker 参考这个文章
1 2 3 4 5 6 7 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum list docker-ce --showduplicates | sort -r yum install docker-ce systemctl start docker systemctl enable docker docker version
安装Apache 去https://hub.docker.com/搜索httpd的镜像,然后拉取我需要的版本对应的标签:
查看一下,拉取成功后,本地应该有这个镜像了:
1 2 3 [root@localhost yum.repos.d]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE httpd 2.4 a6ea92c35c43 2 weeks ago 166MB
然后启动这个镜像,并将其80端口映射为宿主机的80端口:
1 docker run -dti -p 80:80 a6ea92c35c43
查看下容器的ID(CONTAINER ID),用于下一步进入容器:
1 2 3 [root@localhost yum.repos.d]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8c369b1aaf3b a6ea92c35c43 "httpd-foreground" 2 minutes ago Up 2 minutes 0.0.0.0:80->80/tcp objective_wilson
现在可以通过容器ID进入容器里面,去进行调试和自定义配置了:
1 docker exec -ti 8c369b1aaf3b /bin/bash
制作个性化的Apache镜像 修改好容器内部的信息后,将该容器保存为新的镜像即可:
1 docker commit 8c369b1aaf3b httpd.2.4.no_index
其他问题 如何在纯净的docker内部安装软件? 纯净的docker里面,可能连基本的vi、yum命令都没有,这时需要通过apt-get进行软件的安装,比如:
1 2 apt-get update apt-get install vim
Apache服务器配置不显示文件列表 修改对应目录的Directory节点里面的Option:
1 2 3 4 # 显示文件列表 options Indexes FollowSymLinks# 不显示文件列表 options FollowSymLinks
或者在Indexes前面加个减号也可以:
1 options -Indexes FollowSymLinks
还可以在根目录的 .htaccess 文件中输入:
1 2 3 <Files *> Options -Indexes</Files >
Indexes 的作用就是当该目录下没有 index.html 文件时,就显示目录结构,去掉 Indexes,Apache 就不会显示该目录的列表了。
然后重新加载下配置即可:
1 2 /usr/local/apache2/bin/httpd -t /usr/local/apache2/bin/httpd -k graceful