Hi 來到第七天,昨天已經說明了該怎麼使用 mysql 來 create 這次要用來存放 Block 的 table ,但我們還缺個可運行的 db server。
今天就來搭建一下 docker 這個好用的玩意兒吧!
Docker 是一個開源的容器化平台,旨在簡化應用程式的部署和管理。它通過將應用程式及其所有依賴包封裝在一個稱為「容器」的標準化單位內,確保應用程式可以在不同環境中一致地運行。Docker 的容器與虛擬機器不同,它們不需要整個操作系統,而是與主機共享操作系統內核,這使得容器更輕量且啟動速度更快。
其實 Docker 可以想像做是更輕量化的 VM ( 虛擬機) ,他不需要多餘的GUI 介面或是 Account 管理 之類的系統,完全是以最乾淨的 Linux 作為基底進行操作。
不過在使用前還是有幾樣知識需要知道:
看完 chatGPT的簡單介紹後來整理下比較常用到的docker 指令
檢查 Docker 版本
docker --version
**啟動 Docker Container,**例如:docker run -d -p 80:80 nginx
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
列出運行中的 Container
docker ps
列出所有 Container(包含停止的)
docker ps -a
停止 Container
docker stop CONTAINER_ID
啟動已停止的 Container
docker start CONTAINER_ID
移除 Container
docker rm CONTAINER_ID
列出本地所有的 Docker Images
docker images
移除 Image
docker rmi IMAGE_ID
上面整理完基本的指令後,我們就來搭建 mysql吧
docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=<SQL的密碼> -d -p 3306:3306 mysql:latest
確認下 container 有沒有正確跑起來
使用自己喜歡的 SQL IDE 進行連線,連線成功即可使用 SQL
接著我們就可以接續對 SQL 做 建立DB、Table 等作業
Create DataBase Blockchain;
USE Blockchain;
CREATE TABLE Blocks (
Id INT PRIMARY KEY AUTO_INCREMENT,
Data TEXT NOT NULL,
Hash VARCHAR(64) NOT NULL,
PreviousHash VARCHAR(64) NOT NULL,
TimeStamp DATETIME NOT NULL,
Nonce INT NOT NULL,
);
Select * from Blocks
好啦,今天我們成功將DB給建立起來了,接著我們就可以透過專案針對DB 進行連線,並對她Insert 第一筆資料,不過那是明天的事情了~~~
今天進度就先到這兒。
結語: Happy Friday