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