您在這裡

今天開始Drupal環境就用Docker Container來建立


[圖片出處IBM Emerging Technologies Blog]

前言

在Docker如此火紅的情況下,不免也要利用Docker的眾多優點來打造Drupal的安裝環境,安裝過程不僅簡單,而且非常的輕巧,不妨一起來試試。不過本篇在介紹時,期待讀者對於Docker已經有一定程度的了解,若對於Docker不是很了解者,可以先看看這一篇文章:教你一次學會安裝 Docker 開始玩轉 Container 容器世界

基本環境

本篇文章使用的環境為Ubuntu14.04,安裝完Docker後並且啟動了Docker的服務,除此之外,沒有再做任何的設定與安裝。另外,本伺服器配有一個固定IP,按照此步驟做完之後,可以直接通過IP輸入瀏覽器,進而連結到網頁。

基本指令介紹

以下是幾個基本而且常用的Docker指令,不過以下只有做簡單介紹,如果想要了解更詳細的指令使用方式,請參考Docker Command Line

1.查詢的相關指令

$ docker ps [OPTIONS]

2.查詢映像檔

$ docker images [OPTIONS] [REPOSITORY[:TAG]]

3.下載影像檔

$  docker pull [OPTIONS] NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORT]/]NAME[:TAG]

4.建立容器

$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]

下載Drupal與MySQL的Images

Drupal在Docker Hub(註)裡面,有自己的Official Repository,在這裏有包含d7與d8的各個版本,並且會定期更新最新的Images上去,當然MySQL也是,也有自己的Official Repository,裡面有各種版本的MySQL影像檔提供下載。

  • 從Drupal官方倉庫Pull下Drupal 7的影像檔(當然如果想要下載 D8 也是可以的)
$ docker pull drupal:7
  • 一樣從MySQL的官方倉庫Pull下Mysql的影像檔
$ docker pull mysql:5.7.10 

註:

Docker Hub:Docker 官方提供並且維護的一個公共倉庫,其中有上萬個Images在這個Hub中,並且各大軟體都在這裏有屬於自己的Official Repository[各大軟體Official Repository]。大部分需求,都可以透過在 Docker Hub 中直接下載映像檔來實作。

建立MySQL容器,與建立Drupal要用的資料庫

  • 建立MySQL容器
$ docker run --name mysql-5-7-10 -e MYSQL_ROOT_PASSWORD=hellosanta -d mysql:5.7.10

說明:在這裏設定了MYSQL_ROOT_PASSWORD為hellosanta,並且將這個容器取名為mysql-5-10(由於資料庫版本很多,因此我的個人習慣喜歡將版本名字取在暱稱裡面)。

  • 建立資料庫與使用者
#以下指令主要是連結資料庫,完成以後即可開始打Mysql指定
$ docker run -it --link mysql-5-7-10:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'

#建立一個叫做Drupal的資料庫
> create database drupal;

#建立一個hellosanta的使用者,密碼為:santa123
> create user [email protected]'%' identified by 'santa123';

#設定資料庫權限
> grant all privileges on drupal.* to [email protected]'%';

#離開MySQL
> exit;

建立Drupal容器,並且與MySQL容器連結

  • 建立Drupal容器
$ docker run --name drupal7 -p 80:80 --link mysql-5-7-10:mysql -d drupal:7

說明:這裏建立一個名稱為「drupal7」的容器,並且將主機的80port指到這個容器的80port,並且將這個容器與資料庫的容器相連,並且以mysql做為MysqlDB的別名,讓我們在建立Drupal網站時,以mysq代表資料庫的IP。

  • 進入Drupal安裝畫面,進行安裝

  • 設定資料庫(帳號密碼為上面所建立),並且請將資料庫的主機位置設定成為mysql,然後即可完成全部安裝

恭喜完成了,第一個容器做的Drupal網站

Drupal網站設定完成,並且可以立刻到Drupal網站本身的狀態報告來觀看,也可以看到資料庫版本為mysql 5.7.10,到這一步已經算是全部完成所有安裝了,若您對於Drupal本身安裝流程有問題,可以參考我們的Drupal新手教學,裡面有非常詳細的流程可以給您參考。

結論

通過Docker,伺服器的環境可以非常的乾淨,所有Drupal所需要的環境與資料庫,全部都可以直接使用容器來完成,一個容器的開關與生成,不過都是幾秒中就可以完成的事情,不僅方便而且迅速。當然,如果有各種環境版本的需要,也只需要到官方倉庫下載不同的影像檔即可完成,不妨有興趣的各位也可以試試看,一起享受Docker的輕巧與便利吧,Enjoy!