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文件内容