本文内容:在已经使用docker toolbox在win环境下安装好了docker,以及go的sdk的基础上,如何使用docker部署go的gin框架简单应用


在使用docker toolbox安装docker,涉及到Docker环境的初始化时候,会在VirtualBox中创建名字为【default】的linux虚拟机,会用到名为boot2docker.iso的镜像。然而一般下载时候自带的这个镜像的版本不对,请自行百度下载对应版本的iso文件。本文不做赘述。

所需环境

  • Golang 1.14
  • Goland IDE
  • Docker toolbox

1. 检测docker的网络可用性

打开Docker Quickstart Terminal,安装完成后
输入docker run hello-world后如出现以下信息,则证明安装配置成功,可继续进行

2.创建并配置golang的gin框架

  1. 在golandIDE中 设置GoPath并且创建项目(注意选择Go Modules创建),点击create
  1. 在项目中创建文件:

views文件夹下的index.html(主页模板)

main.go

DockerFile.txt

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

项目目录如下:

  1. 在创建docker之前,我们先试运行一下这个gin应用
    在main.go中将鼠标放于报错处,点击Sync dependencies of hello下载gin依赖包

然后运行main函数
打开浏览器输入localhost(根据之前设置的默认80端口),项目启动成功

3.将本项目用docker打包部署

  1. 停止运行项目

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

  1. 创建本项目镜像
    输入

docker build -t myhello -f ./DockerFile.txt .
(注意第二个.之前有个空格)

  1. 查看镜像
    镜像创建成功

    出现此字眼后输入
    docker image ls
    查看本地所有镜像,可以看到myhello镜像已经创建成功

4.运行容器

输入
docker run -p 8080:80 myhello

将原本的80端口映射到宿主机的8080端口上

表示容器已经运行

win10家庭版使用的dockertoolbox的容器是运行在虚拟机中的,因此容器的ip并不是localhost,而是被分配的虚拟机中的ip地址
此ip地址可以通过docker-machine ip命令去查看

输入docker-machine ip查看容器运行宿主机的ip地址

获得虚拟机的ip地址后在浏览器中输入:
192.168.99.100:8080

至此,在windows10中简单的基于gin框架的go web的应用部署成功。