建立帶httpd服務的CentOS Docker映象
阿新 • • 發佈:2019-05-30
一、拉取帶sshd服務的centos docker映象到本地
命令:
docker pull freedoms1988/centos7-sshd
解釋:
docker pull【拉取命令】 freedoms1988/centos7-sshd【遠端映象名】
二、啟動帶sshd服務的centos 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命令】
三、登入容器
命令:
ssh root@localhost -p 10022
解釋:
ssh root【使用者】@localhost【主機名】 -p 10022【埠號】
四、安裝openssh-clients
命令:
yum install openssh-clients
解釋:
yum install【安裝命令】openssh-clients【軟體名稱】
五、安裝wget
命令:
yum install wget
解釋:
yum install【安裝命令】wget【軟體名稱】
六、下載httpd
命令: 1、cd /usr/local/src 2、wget [http://apache.01link.hk//httpd/httpd-2.4.29.tar.gz](http://apache.01link.hk//httpd/httpd-2.4.29.tar.gz) 3、tar -zxvf httpd-2.4.29.tar.gz 4、cd httpd-2.4.29 解釋: 1、進入原始碼暫存路徑 2、下載httpd2.4.29 3、解壓 4、進入httpd2.4.29原始碼路徑
七、安裝gcc、make、apache依賴
命令:
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【軟體名稱】
八、編譯、安裝httpd
命令: 1、./configure --prefix=/usr/local/apache2 --enable-mods-shared=most --enable-so 2、make && make install 解釋: 1、配置編譯引數,安裝路徑 2、編譯並安裝
九、修改httpd配置
命令:
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【檔案路徑】
十、啟動httpd
命令:
1、/usr/local/apache2/bin/httpd
2、systemctl enable httpd.service
解釋:
1、啟動httpd
2、設定開機自啟動
十一、編輯ssh、httpd啟動指令碼
操作:
1、cd /usr/local/sbin
2、vim httpd.sh
3、編輯內容:
#!/bin/bash
/usr/sbin/sshd &
/usr/local/apache2/bin/httpd -D FOREGROUND
4、儲存退出
5、更改檔案許可權
chmod 755 httpd.sh
十二、生成支援ssh的centos映象
命令:
1、docker ps -a
2、docker commit 6c40d0d2d8e centos7-sshd
3、docker images
解釋:
1、docker ps【列出容器列表】 -a【可選引數,列出未啟動容器列表】
2、docker commit【提交】6c40d0d2d8e【上一步中容器id】 centos7-httpd2.4-sshd【自定義映象名稱】
3、docker images【列出本地映象列表】
十三、使用生成的映象執行容器
命令:
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【執行映象時執行指令碼路徑】
十四、測試httpd
操作:
瀏覽器中輸入localhost:8080
結果:
看到it'work
十五、測試sshd
操作:
ssh root@localhost -p 10022
結果:
成功進入容器
十六、掛載宿主機專案目錄到容器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 【執行映象時執行指令碼路徑】
十七、測試宿主機專案目錄掛載有效性
操作:
1、在宿主機專案目錄中建立index.html檔案,並輸入任意內容
2、在宿主機或容器內 curl localhost:8080
結果:
應列印index.html檔案內容