使用docker部署gin程序到阿里云服务器

一、Go

参考

Win系统使用docker部署go的gin框架简单应用_Foehn_revol的博客-CSDN博客

1.DockerFile.txt

FROM golang:1.14
WORKDIR /go/src/app
ADD . /go/src/app
RUN go env -w GO111MODULE=on
RUN go env -w GOPROXY=https://goproxy.cn,direct
RUN go get -u github.com/gin-gonic/gin
EXPOSE 9090
CMD go run main.go

FROM导入go基本镜像
WORKDIR创建虚拟路径,ADD将本地文件移入此路径
RUN执行命令,换国内源并下载go-gin依赖包
EXPOSE暴露9090端口
CMD运行go项目

项目目录如下:
项目目录

2.service/data_base.go

func ConnectDb() *gorm.DB {
	dsn := "host=阿里云公网ip port=5432 user=postgres dbname=postgres password=数据库密码 sslmode=disable"
	db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})

	if err != nil {
		panic(err)
	}
	//defer db.Close()

	fmt.Println("连接成功")
	return db
}

以上修改gopath和goroot里的文件都改了,分不清QAQ 

 二、将项目用docker部署到本地镜像库

参考

Win系统使用docker部署go的gin框架简单应用_Foehn_revol的博客-CSDN博客

1.在Docker Quickstart Terminal中cd到本项目所在路径

在这里插入图片描述

2.创建本项目镜像

docker build -t myhello:tag -f ./DockerFile.txt .
(注意第二个.之前有个空格)
在这里插入图片描述

3.查看镜像docker images,创建成功
在这里插入图片描述

 三、上传本地镜像到镜像仓库

参考

docker学习11-上传本地镜像到镜像仓库 - 云+社区 - 腾讯云

1.新建镜像仓库

dockerhub

2.打本地标签tag

在上传之前,先给本地镜像打个tag标签,相当于重新复制镜像并重命名为docker账户名/仓库名称

docker tag 本地镜像:tag docker账号/docker仓库:tag

3.push 上传本地镜像

先登陆docker hub账号,

docker login

上传本地镜像标签到镜像仓库,使用docker指令

docker push 账号/仓库名称:tagname

push很慢,非常慢。。。(不知道咋解决

上传完成后打开自己的docker hub账号,查看镜像仓库 

四、Xshell阿里云

1.pull 拉取镜像

拉取镜像使用docker pull 你自己的镜像名称

docker pull docker账号/docker仓库:tag

 2.pull拉取postgres

docker pull postgres:12.0

3. 创建容器绑定端口

docker run --name postgresl -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d postgres:12.0

1.run,创建并运行一个容器;
2. --name,指定创建的容器的名字;
3. -e POSTGRES_PASSWORD=password,设置环境变量,指定数据库的登录口令为password;
4. -p 5432:5432,端口映射将容器的5432(后)端口映射到外部机器的5432(前)端口;
5. -d postgres:12.0,指定使用postgres:12.0作为镜像。

4.navicat连接数据库

使用docker部署gin程序到阿里云服务器_第1张图片

主机:阿里云服务器实例公网ip

用DBase形式导出导入向导

5.运行go程序容器

 docker run -p 9090:9090 docker账号/docker仓库:tag

 6.可以开心地访问了

 http://公网ip:9090/接口路径

五、Docker操作容器与镜像

参考Docker删除容器与镜像_点点的博客-CSDN博客_删除container

1.查看容器

docker ps -a        (查看所有运行或者不运行容器)

docker ps        (查看所有运行的容器)

2.停止container(容器),这样才能够删除其中的images: 

docker stop $(docker ps -a -q) 或者 docker stop $(docker ps -aq)         (停止所有的容器)

docker stop 容器id

3.如果想要删除container(容器)的话再加一个指令: 

docker rm $(docker ps -a -q) 或者 docker rm $(docker ps -aq)         (删除所有container)

docker rm 容器id

4.查看当前有些什么images 

docker images

5.删除images(镜像)

docker rmi

docker rmi 镜像名:tag 也可以

6.再次启动上次暂停的容器

docker start 容器id

你可能感兴趣的:(docker,docker)