建立帶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文件內容
相關文章
相關標籤/搜索