Docker是為了讓我之後寫後端+DB方便使用,但是
Docker裝完之後一直強迫被關閉,WSL出事
Window10 家用版 WSL難裝到哭,原來是主機板要開啟虛擬化功能,方法如下(打開Svm mode)
https://www.asus.com/tw/support/FAQ/1043786/
再裝一次Docker
golang環境建立
3-1建立專案資料夾 > 3-2終端機安裝golang > 3-3檢查
看目前建立的pod
docker ps
使用Docker安裝Golang images
docker pull golang
檢查
docker images
exit // 跳出容器,因為是建立服務
docker network create web // 建立連線 web=網路名稱
docker network ls // 檢查目前有哪些連線
docker run -itd -p 8080:8080 -v C:/Users/user/Desktop/demo/golang_spy:/go/src --name golang_spy_backend --network web golang
啟動containers golang的專案
確定可以用之後,在docker裡面建立一個虛擬的資料夾
(簡單說就是看不到幻想的資料夾,這個資料夾會跟我本機電腦同步)
終端機看 CONTAINER ID
docker ps
docker exec -i -t 5e7c63f0fd25 bash
進去容器後,在本機的相對位置增加資料夾,在終端機上也可以看到虛擬資料夾內也有這個資料夾
9. 看資料夾就知道已連動
10. VsCode裝golang套件
11. Docker裝"管理專案套件"的套件,記得先進去虛擬資料夾
go mod init golang_spy
如果在容器內,出容器
建立docker網路
由於docer容器內的服務不相連,所以必須建立一個網路,使DB與GO相連
port只是我的本機與他們相連的管道,但他們彼此間不相通
exit // 跳出容器,因為是建立服務
docker network create web // 建立連線 web=網路名稱
docker network ls // 檢查目前有哪些連線
exit // 跳出容器,因為是建立服務
/var/lib/mysql 路徑,放跟MySQL同位置
docker create -v C:/Users/user/Desktop/demo/spy_Db --name spy_mysql_data mysql:5.7
docker run --name spy_Db -v C:/Users/user/Desktop/demo/spy_Db -e MYSQL_ROOT_PASSWORD=irisiris -p 3306:3306 -d --network web --volumes-from spy_mysql_data mysql:5.7
容器建立
進入容器
docker exec -i -t 7f26d119 bash
mysql -u root -p
8-2 輸入2.當時設定的密碼
進入畫面(此處之後都是下SQL語法)
8-3 建立服務帳號密碼(SQL帳號密碼建立指令)
'test' 帳號
'test123' 密碼
CREATE USER 'test'@'%' IDENTIFIED BY 'test123';
8-4 開該服務權限
GRANT ALL ON *.* TO 'test'@'%' WITH GRANT OPTION;
8-5 更改登入密碼的方式,用明碼
ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'test123';
docker exec -i -t 5e7c63f0fd25 bash
// main.go 本機檔案
go run main.go
docker exec -i -t 5e7c63f0fd25 bash
go get github.com/gin-gonic/gin
docker exec -i -t 7f26d119 bash
go get -u gorm.io/gorm
go get -u gorm.io/driver/sqlite