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 了。
可能會遇到的問題
執行
wordpress
映象之後,docker ps
檢視執行中的容器沒有 mwp 容器
這時最大可能就是資料庫配置錯誤,檢查你的資料庫是否可以被外部訪問等。執行
wordpress
映象,資料庫也自動生成了,但是訪問被拒絕。由於 wordpress 自身是使用php
的,所以你可能需要檢查系統上是否安裝了php
。 特別的,有可能在使用 -p 埠對映時外部的埠被禁用。