1. 程式人生 > >Docker建網站 4條命令搞定

Docker建網站 4條命令搞定

提起雲端計算,肯定少不了kvm和Docker這兩個重量級的角色。沒有這兩位,就沒有云計算。其中,Docker可能更重要。

我不想跟大家講Docker的概念什麼的。你只需要知道它很厲害就成了!而我呢,只想拿Docker來建一個網站給大家瞧瞧。呵呵,高射炮打蚊子?關鍵是,高射炮還真打不著蚊子。Docker卻真的能建網站。在只有一個作業系統的情況下,用Wordpress建網站,只需要4條命令列!
先看看,不用Docker,傳統模式下,如何建設起一個網站來。一般會經過以下四個步驟。是步驟,不是命令列。要數命令列,差不多有30多行的樣子。
第1步:安裝Apache
第2步:安裝MariaDB
第3步:安裝PHP
第4步:安裝Wordpress
上面的四步,不管你用什麼yum,還是用rpm,或者編譯安裝,最少得1個小時。其中,還要專門為Apahce安裝一個特別的模組apxs。還要修改Apahce的主配置檔案;新增一個虛擬主機的配置檔案;在MariaDB裡內為Wordpress建立使用者和資料庫。最後,開通防火牆,恢復網頁目錄的SELinux安全上下文標籤等等,步驟很多,非常繁瑣。我在幾所學校裡提供Linux實訓時使用上面的四步,輸入的命令列數十行,講解並完成上述過程一般都需要四節課的時間。
在執行Docker的方法前,看看我的執行環境:
硬體主機:小米膝上型電腦,執行Windows 10
作業系統:VirtualBox下的Ubuntu 18
網路條件:Ubuntu已經聯通網際網路


上圖中,演示的環境比較複雜。如果我們在一臺安裝著Linux作業系統的電腦上,如租用的Linux雲主機上,就沒有這麼多層次。
第1條命令:安裝Docker

$ sudo apt-get install docker.io

第2條命令:將普通使用者加入Docker組

$ sudo gpasswd -a alan docker

將當前的普通使用者alan新增到docker組內。你安裝的時候,建立的普通使用者是誰,你就把alan替換成那個使用者名稱,就成了。
第3條命令:建立MariaDB的容器

$ docker run --name mariadb-test -e MYSQL_ROOT_PASSWORD=123456Abcd -d mariadb

在MariaDB裡,為root使用者設定了一個密碼:123456Abcd。這麼長的密碼是Wordpress要求的:有數字,有大、小寫字母。容器的名字叫 mariadb-test,要執行的是一個名叫maria的軟體。我的Ubuntu裡沒有它的映象,便直接從hub.docker.com上下載。
第4條命令:建立Wordpress的命令

$ docker run --name wordpress-test --link mariadb-test:mysql -p 80 -d wordpress

建立,並執行一個名叫wordpress-test的容器,還扯上那個名叫mariadb-test的,並且要開通80埠。
第5條命令:檢視日誌

$ docker logs 630e


630e是上一條命令返回的一長串字元——即一個名叫wordpress-test的容器的ID的前4位。當然,你看到的ID肯定不同。你只需要使用前面的4位即可。我們這條命令是要檢視該容器的執行資訊。如果前面的id不顯示,或你弄丟了。就輸入docker container ls查詢容器的id。在裡面我們會看到一個IP地址,可能是172.17.0.3。你看到的內容可能是這樣的:
WordPress not found in /var/www/html - copying now...
Complete! WordPress has been successfully copied to /var/www/html
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.3. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.3. Set the 'ServerName' directive globally to suppress this message
[Thu Nov 29 15:28:13.306609 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.12 configured -- resuming normal operations
[Thu Nov 29 15:28:13.306730 2018] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

第6條命令:訪問網站後臺

$ firewfox http://172.17.0.3 &

 這條命令執行之後,在彈出來的Firefox視窗內,為網站管理後臺設定一個使用者,併為該使用者設定一個密碼。你可以直接登入進去,釋出一篇文章試試。然後,再開啟一個瀏覽器視窗,再次輸入 http://172.17.0.3,看到的就是網站的前臺頁面了。
等等,不是說4條命令就搞定嗎?怎麼運行了6條命令呢?其實,第4行命令執行的時候,已經完成了網站的建立。第4條、第5條、第6條,僅僅是為網站設設定管理賬號而已。就算是6條,也很快,對吧?
Wordpress可能是最著名的CMS軟體,功能強大,非常靈活,圖片、模板、佈局等等都可以自定義。如果你會琢磨,肯定能利用後臺把網站整出很多花樣來。

有人問,我用的是CentOS作業系統行嗎?當然行。
第1條命令: su
第2條命令:yum -y install docker
為簡便起見,你直接變成root使用者得了。後面的命令跟Ubuntu裡的一樣。
Docker可以做很多事情。建設網站,不過是眾多功能中的一種。紅帽公司將Docker與Google公司開源出來除錯軟體Kubernetes放在一起,再加上etcd這個強大的分散式配置程序,以及Ansible自動化工具等等,便成了三大雲端計算應用場景中的PaaS開源系統OpenShift。而OpenShift則是紅帽高階認證RHCA(雲端計算方向)五門核心課程之一。想學習的話,趕快來騰科報名吧。