Docker搭建WordPress---搭建屬於自己的個人博客

Docker搭建WordPress—搭建屬於自己的個人博客

使用docker部署動態博客,使用到的數據庫是MySQL,使用到的博客框架是wordpress。
一、安裝Docker:
Docker屬於Linux容器的一種封裝,提供簡單易用的容器使用接口。Docker將應用程序與該程序的依賴,打包在一個文件裏面。運行這個文件,就會生成一個虛擬容器。程序在這個虛擬容器裏運行,就好像在真實的物理機上運行一樣。有了Docker,就不用擔心環境問題。總體來說,Docker的接口相當簡單,用戶可以方便地創建和使用容器,把自己的應用放入容器。容器還可以進行版本管理、複製、分享、修改,就像管理普通的代碼一樣。關於Docker的基本認識可以簡單看一下此視頻【docker入門】10分鐘,快速學會docker】更多詳細的docker介紹可以自行查看百度。

Linux安裝Docker:
Ubuntu Docker 安裝 | 菜鳥教程
Debian Docker 安裝 | 菜鳥教程
CentOS Docker 安裝 | 菜鳥教程

Windows安裝DockerWindows Docker 安裝 | 菜鳥教程

二、開始搭建
Docker安裝完後即可進行搭建,以下有兩種方式
第一種:

docker pull wordpress:latest  //安裝WordPress

docker pull mysql:latest    //安裝MySQL

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag  //啓動MySQL

這裏註釋一下:

  • docker run :啓動容器
  • –name some-mysql:指定容器的名字,這裏設置爲some-mysql
  • -e MYSQL_ROOT_PASSWORD:指定ROOT密碼
  • -d:後臺運行容器
  • tag參數是MySQL的版本號,可以是5.7、5.6、8.0。
docker run --name some-wordpress --link some-mysql:mysql -p 8080:80 -d wordpress //啓動WordPress

//name參數指定要啓動的WordPress實例名稱,link參數指定要使用的Docker MySQL實例名稱,p參數將Docker內部的80端口映射到本地的8080端口上。

然後打開瀏覽器,輸入localhost:8080(端口號是命令中設置的),然後就可以看到WordPress了。按照提示輸入用戶名等信息,然後安裝WordPress。等到它提示安裝完成,那麼WordPress的安裝就算大功告成了。
最後稍加配置,再添加諸如內網映射等功能之後,站點就可以對外訪問

在這裏插入圖片描述
詳細的部署文檔可以參考此博客:Docker快速搭建WordPress博客網站
第二種:

因爲Docker的官方服務器部署在國外,拉取鏡像時會很慢,我們換上阿里雲的鏡像加速器。 對於使用 Windows 10的系統,安裝好運行之後,在系統右下角托盤 Docker 圖標內右鍵菜單選擇 Settings,打開配置窗口後左側導航菜單選擇 Docker Engine。在 Registrymirrors一欄中填寫加速器地址https://9cpn8tt6.mirror.aliyuncs.com,之後點擊 Apply 保存後,Docker就會重啓並應用配置的鏡像地址了。

如果嫌以上部署命令太麻煩可以下載一個配置文件docker-compose.yml,裏面包含了我們要拉取的鏡像信息以及各種配置信息,這樣能省去一行一行敲命令的麻煩。
文件內容如下:

version: “2.0”

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8080:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}

接着
cmd進入docker-compose.yml所在的目錄,輸入命令

docker-compose up -d

拉取並配置完成後可以在瀏覽器地址欄輸入:localhost:8080開始你的建站之旅

關於聯網
因爲沒捨得買服務器,上面的博客搭建都是在本地電腦上搭建的,暫且不能通過外網訪問到該站點。這裏提供下幾種聯網的思路:
1、假如購買了服務器
第一種:那麼一開始就可以在購買的虛擬主機裏搭建博客,而不必在自己電腦上折騰,建議看看這個如何在阿里雲服務器上搭建wordpress博客?
第二種:把自己電腦上搭建好workpress站點的Docker容器遷移到購買的服務器上去
2、假如沒有購買服務器
試試內網映射,把內網IP映射到公網,使公網也能訪問所搭建的服務:實現內網映射的三種方式

//記一下我在部署過程中出現的bug

1.在輸入sudo apt-get update後發現終端提示:

E: 無法獲得鎖 /var/lib/dpkg/lock-frontend - open (11: 資源暫時不可用)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

第一種解決:

ps -e | grep apt

在這裏插入圖片描述
然後執行:sudo kill 進程號
在這裏插入圖片描述
第二種解決:

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock-frontend

2.安裝完docker後,執行docker相關命令,出現

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: dial unix /var/run/docker.sock: connect: permission denied

原因: Docker進程使用Unix Socket而不是TCP端口,而默認情況下,Unix socket屬於root用戶,因此需要root權限才能訪問。
解決方法:

sudo groupadd docker #添加docker用戶組

sudo gpasswd -a $XXX docker #檢測當前用戶是否已經在docker用戶組中,其中XXX爲用戶名。

sudo gpasswd -a $USER docker #將當前用戶添加至docker用戶組

newgrp docker #更新docker用戶組
docker ps #測試docker命令是否可以使用sudo正常使用

3.Docker-compose up時報錯:

ERROR: yaml.scanner.ScannerError: mapping values are not allowed here
in "./docker-compose.yml", line 2, column 9

解決:出現這個錯誤的是因爲yaml格式不正確,谷歌定義的yaml格式太嚴格了,每個冒號後面都必須帶有空格
錯誤
在這裏插入圖片描述

正確
在這裏插入圖片描述
4…執行sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7
報錯docker:

Error response from daemon: Conflict. The container name "/mysql" is already in use by container "eb4a52f08fed03d18354b9a2fec9e3a15eea96b5c7285ae7d6625e763e03e5af". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.

解決辦法:
查看 docker ps -a
在這裏插入圖片描述
看到之前運行docker容器還沒有退出,導致出現容器重名情況。
使用下面命令,刪除容器,

docker rm 1fabd37a07bf    //(鏡像ID) 
docker rm a461cde5ec3f

重新執行命令啓動即可。

以上若有存在錯誤的,歡迎交流,請多多指教!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章