后端程序員對于 Docker 要掌握多少才行?阿粉的答案是...
阿粉的答案是會部署服務就行了。
關于 Docker 阿粉相信作為后端程序員小伙伴們多多少少都聽過或者用過,而且很多時候也都是因為要使用的時候才會去學習,畢竟學了用不上還不如不學。
對于后端程序員來說,如果不是專門運維或者喜歡研究運維的同學,對于 Docker 的使用只要能熟練地部署服務基本上就夠用了。
畢竟說實話作為后端程序員要學習的東西真的太多了,一名合格的后端程序員不僅要能看得懂改得了前端代碼,也要能懂運維部署和數據庫設計,而且每個領域還動不動就有很多新東西要學習,只能說太難了,畢竟每個人的精力是有限的。
為了掌握一下 Docker 再加上阿粉最近搞了一臺輕量服務器,想折騰點東西,但是不知道搞什么好,所以就想起來了搭建一個網站來玩玩,可以用來寫一些文章和分享啥的。
搭建網站有很多種方式,不過最強大的還是要數 WordPress?,但是如果要完全靠自己搭建環境還是比較復雜,所以就想著還是使用 docker 來搭建,簡單快速。
安裝 Docker
在 Linux? 服務器中安裝 docker? 非常簡單,直接執行yum install docker 命令即可,阿粉這邊已經安裝過了,所以就提示了這個,沒有安裝的話,會自行安裝。
安裝 Docker Compose
安裝完了 docker? 后,我們再安裝一下 Docker Compose? 。安裝 Docker Compose? 的目的主要是為了管理很多的 Docker? 容器,Docker Compose? 就是一個工具,通過這個工具我們可以方便的管理各個有關聯關系的容器,形成一個整體。使用 Compose?,我們需要在一個 YAML 文件中定義所有服務,然后使用單個命令,就可以啟動或停止所有服務。
我們這里使用 Docker Compose? 在隔離的容器化環境中并排運行兩個容器(WordPress? 和 MySQL),一個是站點,一個是保存用戶數據的。
在終端中執行下面的命令:
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
然后將可執行權限應用于二進制文件:
sudo chmod +x /usr/local/bin/docker-compose
最后可以通過檢查版本來驗證安裝是否成功:
docker-compose --version
顯示下面內容表示安裝成功。
更多關于 Docker Compose 的內容可以參考官方文檔。
站點目錄
接下來我們就開始搭建站點了,首先創建或者選擇一個路徑,阿粉這里的路徑是 /srv? ,然后創建一個名為wordpress? 的目錄來存放 WordPress 數據。
sudo mkdir -p /srv/wordpress
cd /srv/wordpress/
創建 YAML 文件
在 Docker Compose? 工具中,運行容器所需的所有資源都必須在名為 docker-compose.yaml? 的 YAML? 文件中定義。然后 Docker Compose? 將讀取此類文件并與 Docker 守護程序通信以創建、配置或銷毀定義的資源。
在我們的例子中,該 docker-compose.yaml? 文件將包含我們的服務定義。另外 Docker Compose 允許我們將這些服務與共享網絡和卷鏈接在一起。因為我們知道 Docker 容器本身就不會將數據持久化的,所以我們需要一個數據卷。
因此,讓我們從使用 Vim? 編輯器在/srv/wordpress?目錄中創建一個新文件docker-compose.yaml開始 。內容如下:
version: '3'
services:
mysql:
image: mysql:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress_user
MYSQL_PASSWORD: your_wordpress_password
volumes:
- mysql_data:/var/lib/mysql
wordpress:
image: wordpress:latest
depends_on:
- mysql
ports:
- 8080:80
restart: always
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_USER: wordpress_user
WORDPRESS_DB_PASSWORD: your_wordpress_password
volumes:
- ./wp-content:/var/www/html/wp-content
volumes:
mysql_data:
這里稍微解釋一下:
- 我們定義了兩個自動相互鏈接的容器服務、mysql和wordpress;
- 兩個服務都使用Docker 鏡像,并且指定了使用最新的版本;
- mysql? 環境配置:指定wordpress? 將使用這些環境變量連接到mysql 容器;
- wordpress 環境配置:設置數據庫連接詳細信息;
- wordpress? 鏡像基于Apache? 默認的端口是80?,這里我們將本機的8080? 端口映射到容器的80 端口上;
- mysql_data?:定義一個數據卷,流入這個數據庫的數據將被持久化到一個名為mysql_data 的數據卷里面,這樣即使我們刪除了容器,數據仍然存在于我們的機器上,并且可以再次安裝在新的容器中。
另外,wordpress? 下面的volumes? 參數是告訴 Docker? 在本地文件系統中顯示 wp-content?目錄。這樣只要我們同時擁有數據庫和 wp-content 文件夾,就可以隨時恢復我們的站點,即使其他所有內容都丟失了也可以恢復。
使用 Docker Compose 運行 WordPress
接下來我們就可以運行 WordPress? 了,首先進入 /srv/wordpress 目錄,運行以下命令:
sudo docker-compose up -d
該命令將開始運行腳本,當 Docker? 拉入 MySQL? 和 WordPress? 鏡像時,應該會在終端中看到各種“正在下載”和“正在等待”消息。4-5分鐘即可。完成后我們的目錄下面就會多了一個wp-content? 目錄,如下所示:
OK?,現在帶有 MySQL? 容器和 WordPress 容器的 WordPress 安裝已成功。
訪問您的 WordPress 安裝
最后,在我們的容器運行的情況下,我們可以通過 WordPress Web? 界面完成安裝。在 Web? 瀏覽器中,導航到http://localhost:8080或http://your_ip_address:8080。如果在本地安裝的話就用本地地址,如果是在服務器上面安裝就用服務器的地址進行訪問即可。
這里需要注意一點,如果使用的是騰訊云或者阿里云,在控制臺中可能需要打開防火墻開放對應的端口,否則訪問不通。訪問不通的小伙伴,一定要確保自己服務器的端口是開放的。
打開后將看到語言選擇頁面。選擇您的語言,然后單擊繼續,接下來就是根據頁面上顯示的內容進行填寫就好了,主要是一些賬號密碼,站點名稱,這些后面都是可以再重新改的,所以不用太糾結。最后成功通過身份驗證后,就可以開始使用 WordPress 了。
到這里其實整個搭建就已經完成了,但是并不代表站點就可以正常使用了,我們還需要做的是購買域名,備案域名,再配置 HTTPS,等這一系列都完成了過后,整個站點才算是搭建完畢。
下面這幾個都是阿粉常用的wordpress 的網站,感興趣的小伙伴可以去看看,有條件的也可以嘗試自己去搭建一個,搭建過程中如果遇到問題,可以通過文末的形式進讀者群,我們一起探討。
http://www.itmind.net/
https://www.cxy521.com/
http://itmooc.tech/
https://yuandifly.com/
Docker Compose 命令
首先,確保您在/srv/wordpress目錄中:
docker-compose ps // 查看容器狀態
docker-compose up -d // 啟動
docker-compose stop // 停止
注意:阿粉這里配置的端口是 9996?,上面給大家演示使用的是 8080?,這個完全沒有任何影響,主要是阿粉這邊 8080 已經被使用了。
結論
最后整篇的安裝文章就到這里了,通過 Docker? 的安裝還是非常簡單的,主要網絡和端口沒問題,基本上都能安裝成功的,剩下的就是 docker 的一些使用技巧了,不在本文討論的范圍之內就不細說了。