1. Docker安装 + 使用Docker安装Golang + 网路
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
由于docer容器内的服务不相连,所以必须建立一个网路,使DB与GO相连
port只是我的本机与他们相连的管道,但他们彼此间不相通

exit // 跳出容器,因为是建立服务
docker network create web // 建立连线 web=网路名称
docker network ls // 检查目前有哪些连线
run -itd -p 8080:8080 -v 同步程式码
C:/Users/user/Desktop/demo/golang_spyy 与这个资料夹位置同步(本机的资料夹)
:/go/src 容器内的路径
--name golang_spy_backend 容器名称
golang images名称
--network web 使用web是因为她是网域名称
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
进去看CONTAINER资料夹结构(进容器)docker exec -i -t 5e7c63f0fd25 bash
进去容器后,在本机的相对位置增加资料夹,在终端机上也可以看到虚拟资料夹内也有这个资料夹
9. 看资料夹就知道已连动
10. VsCode装golang套件
11. Docker装"管理专案套件"的套件,记得先进去虚拟资料夹
go mod init golang_spy
2. Docker装MySQL (此为开新服务,非套件,故无需进入容器)
如果在容器内,出容器
建立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
建立MySQL容器<----------如果有旧的删掉,永远最后做此处为建立建立管理员的帐号密码
预设帐号为:root
--name some-mysql 资料库名称
-v /my/own/datadir:/var/lib/mysql 本机的资料夹
-e MYSQL_ROOT_PASSWORD=资料库密码
-p 3306:3306 port号
-d 跑背景,无须给参数
--network web,前述3. 使用web是因为她是网域名称
--volumes-from spy_mysql_data,前述4. spy_mysql_data是之前建立MySQL的存放区的名称
mysql:5.7 版本号,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
建立服务的帐号密码步骤(与5.权限不同)8-1 进入2.设定的帐号
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';
https://dev.mysql.com/downloads/workbench/
9-1 DB名称

9-2 更改为"服务帐号" (前述5-3的帐号)


9-3 建立该专案使用DB

9-4 建立表
通常第一栏位都是要auto插入Primary Key及AI自动写入,为了未来方便索引

栏位完成,并insert一笔资料

3. Docker每次run golang的使用步骤
进去容器
docker exec -i -t 5e7c63f0fd25 bash
检查目前的"本机资料夹"有没有与"虚拟资料夹"连动
// main.go 本机档案 go run main.go
4. golang装套件Gin(API使用)
进去go的容器(因为是go的套件)
docker exec -i -t 5e7c63f0fd25 bash
安装API套件
go get github.com/gin-gonic/gin
5. golang装GORM框架 (简化资料库DB操作套件)
进去go的容器(因为是go的套件)
docker exec -i -t 7f26d119 bash
安装GORMhttps://gorm.io/zh_CN/docs/index.html
go get -u gorm.io/gorm go get -u gorm.io/driver/sqlite