Docker - 第十三章 | 安裝Apache Server
要架設網站,一定要有Web伺服器,而Apache是web伺服器(靜態解析,如HTML)。至於動態的網頁這在下一個文章會特別提到。如果有興趣可以先看看這篇文章Apache和Tomcat的區別。
搜尋 Image
Searh指令進化一下,只搜尋10顆星以上的。
1 | docker search -f=stars=10 apache |
拉取 Image
1 | docker pull httpd |
查看 Image
1 | docker images |
執行 Image
使用volume
由於docker卷是持久性的,因此可以專門為此目的建立volume。
1 | docker volume create --name httpd-htdocs |
- -d :後台執行 Container ,並返回ID
- -p 80:80 :將 Container 的 80 Port 映射到主機的 80 Port (前面代表主機,後面代表容器)
- -name myhttpd :將 Container 取名為 myhttpd
- -restart always :如果 container 遇到例外的情況被 stop 掉,例如是重新開機,docker 會試著重新啟動此 container
- -v httpd-htdocs:/usr/local/apache2/htdocs/ :使用剛建立的volume,httpd-htdocs 掛載到 Container 的 /usr/local/apache2/htdocs/。
- httpd :指定安裝的鏡像httpd
掛載主機目錄
這不可移植,因為它依賴於主機上具有正確權限的目錄。但是,在需要將此卷分配給某些特定底層存儲的某些情況下,它可能很有用。
先建立一個httpd.conf檔於$PWD/conf/下,在掛載的時候才不會因為檔案不存在造成啟動失敗。
1 | cd /Users/morose/Documents/Temp/Docker/Httpd |
- -d :後台執行 Container ,並返回ID
- -p 80:80 :將 Container 的 80 Port 映射到主機的 80 Port (前面代表主機,後面代表容器)
- -name myhttpd :將 Container 取名為 myhttpd
- -restart always :如果 container 遇到例外的情況被 stop 掉,例如是重新開機,docker 會試著重新啟動此 container
- -v $PWD/htdocs:/usr/local/apache2/htdocs/ :將主機當前目錄下的 htdocs 掛載到 Container 的 /usr/local/apache2/htdocs/。
- httpd :指定安裝的鏡像httpd
進入 Container
1 | docker exec -it myhttpd bash |
- -i :即使沒有附加也保持STDIN 打開
- -t :分配一個偽終端
測試
- 建立一個index.html
- 將下方程式碼複製進去index.html並儲存
- 將index.html複製到$PWD/htdocs/下
- 開啟瀏覽器 瀏覽 http://localhost
1 |
|
恭喜你已經搭建了Apache Server,這邊只是簡單的使用Docker快速建置,當然有更多詳細參數設定或是指令等等,這邊就不特別列出,畢竟我也不熟,哈。
註:以上參考了
dockerhub 的 httpd 文章。
apache
Docker 安装 Apache
Apache和Tomcat的區別