1. 程式人生 > >Docker 實踐篇——搭建 wordpress

Docker 實踐篇——搭建 wordpress

實驗環境

系統: Ubuntu Server 16.04
Docker 版本: 17.09.0-ce

三個概念

映象(image)

一個特殊的檔案系統(使用 Union FS 技術),映象不包含任何動態資料,其內容在構建之後也不會被改變。

容器(container)

容器就是映象的執行時,容器可以被建立、啟動、停止、刪除、暫停等。

tips: 容器裡面的儲存會隨著容器刪除而丟失,根據 Docker 最佳實踐的要求,容器不應該向其儲存層內寫入任何資料,容器儲存層要保持無狀態化。

倉庫(repository)

倉庫是我們拉貨(映象)的位置,官方的倉庫是 Docker Hub

安裝 Docker 並配置映象加速

# step 1: 安裝必要的一些系統工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安裝GPG證書
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 寫入軟體源資訊
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs)
stable"
# Step 4: 更新並安裝 Docker-CE sudo apt-get -y update sudo apt-get -y install docker-ce # Step 5: 設定映象代理 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://6xacs6l2.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

搭建 wordpress

1.拉取 wordpress 映象

docker pull wordpress:latest

docker pull 命令用於去倉庫拉取映象
wordpress:latest 是映象名和對應映象的版本

2.執行 wordpress 映象

docker run –name mwp -e WORDPRESS_DB_HOST=192.168.2.197:3306 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=123456 -p81:80 -d wordpress

docker run 命令用於去執行一個映象,會產出一個容器。
--name mwp 為產出的容器取一個別名,非必須。
-e WORDPRESS_DB_HOST 配置資料庫位置。

需要注意的是如果使用宿主機的資料庫,不能使用 localhost 或 127.0.0.1 ,因為這樣會指向容器自身。

-e WORDPRESS_DB_USER 配置資料庫使用者名稱。
-e WORDPRESS_DB_PASSWORD 配置資料庫密碼。
-p 81:80 對映埠,將容器的 80 埠對映到宿主機 81 埠。
-d 後臺執行 wordpress 映象

3.檢視執行中的映象——mwp容器

docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
bdea494df12b        wordpress           "docker-entrypoint..."   10 hours ago        Up 2 hours          0.0.0.0:81->80/tcp   mwp

接著訪問 192.168.2.197:81 就是配置 wordpress 了。

這裡寫圖片描述

可能會遇到的問題

  1. 執行 wordpress 映象之後,docker ps 檢視執行中的容器沒有 mwp 容器
    這時最大可能就是資料庫配置錯誤,檢查你的資料庫是否可以被外部訪問等。

  2. 執行 wordpress 映象,資料庫也自動生成了,但是訪問被拒絕。由於 wordpress 自身是使用 php 的,所以你可能需要檢查系統上是否安裝了 php 。 特別的,有可能在使用 -p 埠對映時外部的埠被禁用。