最近深刻學習了大火的docker容器,想要作一個小項目練練手,剛剛想把以前本身搭的博客小站升級爲更加geek。所以就要了這一次從無到有的極速搭建ghost博客教程。mysql
docker可真是一個使人驚歎的技術。以往搭建ghost博客或者其餘博客站點,有極其複雜的步驟和衆多意向不到的阻礙,簡單說就是學習曲線陡,而使用了docker容器技術,把別人的鏡像拿來改造改造,秒搭我的博客git
由於geek,:)github
一共分爲兩個容器,一個是博客服務的ghost容器,另外一個就是mysql數據庫鏡像sql
docker network create ghost_blog_dev
docker
docker中自定義bridge網絡會有DNS功能,後面ghost容器鏈接mysql容器能夠經過容器名鏈接而不是IP地址。數據庫
mysql容器銷燬後,產生的數據也會銷燬。所以咱們得把數據卷存放到宿主機上,所以先建立數據目錄。bash
mkdir -p /data/blog/
複製代碼
docker run -d --name mysql -v /data/blog/:/var/lib/mysql --network ghost_blog_dev -e MYSQL_ROOT_PASSWORD=123456 mysql
複製代碼
值得注意得是,-v,指定數據卷的目錄,--network指定鏈接的網絡,--name,指定mysql容器名。網絡
容器啓動後可使用docker logs mysql
,觀察一下日誌查看,容器是否啓動成功。
查看到mysql容器的ip架構
docker network inspect ghost_blog_dev
複製代碼
在宿主機上鍊接mysql,密碼是123456 工具
修改用戶root登錄auth爲native,由於ghost容器那邊不支持mysql 8.0的登錄驗證方式。
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
複製代碼
建立ghost數據庫(表名會由ghost容器自動建立)
create database ghost;
複製代碼
從個人github上拉取已經寫好的鏡像,並構建爲ghost:dev鏡像名
docker build -t ghost:dev https://github.com/jiujiujiujiujiuaia/ghost_Dockerfile.git
複製代碼
--name指明容器名,--network指明鏈接的網絡,--url指明ghost網站的鏈接域名(沒有域名的指定ip),-p指明瞭宿主機和容器間的端口映射關係
docker run -d --name blog --network ghost_blog_dev -e url=http://118.24.145.98 -p 80:2368 ghost:dev
複製代碼
經過docker logs能夠看到,容器已經啓動成功,並在咱們ghost數據庫內建立了須要的數據表
同時,在宿主機的數據目錄下,也能夠看到容器產生的數據持久化到了宿主機中。
有了上面的步驟,博客搭建就完成了!不須要了解複雜的軟件安裝,軟件工具安裝,各類配置,一切都是拉取鏡像,啓動容器,bingo!完成!
訪問博客!
關於博客的配置,能夠經過url+/ghost進入後臺管理系統進行配置,這裏就很少說了。
未完待續