Docker建網站 4條命令搞定
提起云計算,肯定少不了kvm和Docker這兩個重量級的角色。沒有這兩位,就沒有云計算。其中,Docker可能更重要。
我不想跟大家講Docker的概念什么的。你只需要知道它很厲害就成了!而我呢,只想拿Docker來建一個網站給大家瞧瞧。呵呵,高射炮打蚊子?關鍵是,高射炮還真打不著蚊子。Docker卻真的能建網站。在只有一個操作系統的情況下,用Wordpress建網站,只需要3條命令行!
先看看,不用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。你看到的內容可能是這樣的:
alan@alan-VirtualBox:~$ docker logs 630e
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條命令呢?其實,第3命令運行的時候,已經完成了網站的創建。第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(云計算方向)五門核心課程之一。想進行Docker培訓學習的話,趕快來騰科報名吧。