win10安装docker部署Golang web应用

目录

        • · 环境需求
        • · 下载及安装
        • · 常见配置
        • · 简单命令
        • · 部署应用

· 环境需求

  1. 确认Docker for Windows的环境条件。
    · 启动虚拟化
    进入任务管理器(ctrl+alt+delete),点击性能->cpu ,查看虚拟化是否已启用,如果虚拟化是已禁用,那么你需要重启电脑进入bios开启虚拟化(我们的发的笔记本cpu都是支持虚拟化的,重启时进入bios按esc -> 再按f12 -> 去开启虚拟化)
    如图:
    win10安装docker部署Golang web应用_第1张图片
    . 开启Hyper-V
    打开控制面板——>点击程序——>点击启用或关闭Windows功能——>勾选Hyper-V——>重启电脑。
    如图:
    win10安装docker部署Golang web应用_第2张图片

· 下载及安装

  1. 去官网下载:下载地址
  2. 下载完成后,双击进行安装。跟着安装引导程序来就可以。
    启动后会看到鲸鱼小图标。
    在这里插入图片描述

· 常见配置

  1. 配置镜像加速器(以 Azure 中国镜像为例 )
        在任务栏托盘 Docker 图标内右键菜单选择 Settings,打开配置窗口后在左侧导航菜单选择 Docker Engine,在右侧像下边一样编辑 json 文件,之后点击 Apply & Restart 保存后 Docker 就会重启并应用配置的镜像地址了。
{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://hub-mirror.c.163.com"
  ]
}

运行docker info命令检查配置是否生效
win10安装docker部署Golang web应用_第3张图片
出现图示情况说明配置成功
2. 开启实验特性(一些 docker 命令或功能仅当 实验特性 开启时才能使用)
· 开启 Docker CLI 的实验特性:
  临时生效:
  运行:set KaTeX parse error: Expected 'EOF', got '&' at position 39: …NTAL="enabled" &̲nbsp;  **永…   [environment]::SetEnvironmentvariable(“DOCKER_CLI_EXPERIME  NTAL”,“enabled”,“User”)
· 开启 Dockerd 的实验特性:
右键鲸鱼小图标——>单击Settings——>执行入下图所示的操作即可。
win10安装docker部署Golang web应用_第4张图片
运行docker info查看配置是否生效:
win10安装docker部署Golang web应用_第5张图片

· 简单命令

  1. 使用Docker镜像。
    从 Docker 镜像仓库获取镜像的命令是 docker pull。其命令格式为:
    docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
    如: docker pull ubuntu:18.04
    我第二次pull:
    win10安装docker部署Golang web应用_第6张图片
  2. 检查Docker,Compose版本
    win10安装docker部署Golang web应用_第7张图片
  3. 检查版本信息。
    win10安装docker部署Golang web应用_第8张图片
  4. 运行docker run hello-world以测试从Docker Hub中拉取图像并启动容器。
    win10安装docker部署Golang web应用_第9张图片
  5. 运行、退出Ubuntu容器
    win10安装docker部署Golang web应用_第10张图片
  6. 运行命令docker run -d -p 80:80 --name webserver nginx 启动一个Dockerized webserver 会下载nginx容器图像并启动它,然后再打开浏览器键入http://localhost
    win10安装docker部署Golang web应用_第11张图片
    安装、启动成功!
    win10安装docker部署Golang web应用_第12张图片
    我们还可以这样:
    我们可以使用 docker exec 命令进入容器,修改其内容。
    在这里插入图片描述
    我们以交互式终端方式进入 webserver 容器,并执行了 bash 命令,也就是获得一个可操作的 Shell。
    然后,我们用

    Hello, Docker!

    覆盖了 /usr/share/nginx/html/index.html 的内容。
    现在我们再刷新浏览器的话,会发现内容被改变了。
    win10安装docker部署Golang web应用_第13张图片
  7. 运行docker ps, 查看容器详细信息
    在这里插入图片描述
    也可以用docker ps -a拉出所有详细信息:
    win10安装docker部署Golang web应用_第14张图片
  8. 删除
    删除镜像docker rmi iamgeName):
    有必要说一下,存在多个容器使用一个镜像的情况,要把运行着的所有容器都停掉才能删除该镜像。如:
    win10安装docker部署Golang web应用_第15张图片
    删除容器docker rm containerId
    当然要确认容器停止运行才可以删除。
    win10安装docker部署Golang web应用_第16张图片

· 部署应用

项目地址:https://github.com/KobeBeyond/go_blog

  1. 编写Dockerfile文件
    在项目根目录下创建文件:Dockerfile如下图所示
    win10安装docker部署Golang web应用_第17张图片
  2. 构建镜像
    在项目根路径下执行:docker build -t gin_blog_docker .
    win10安装docker部署Golang web应用_第18张图片
    运行成果:
    win10安装docker部署Golang web应用_第19张图片
  3. 验证镜像
    运行docker images
    win10安装docker部署Golang web应用_第20张图片
  4. 创建并运行一个新容器
    docker run -p 8000:8000 gin_blog_docker
    win10安装docker部署Golang web应用_第21张图片
    看似项目已经跑起来了,但是仔细看看控制台的输出了一条错误:
2020/02/06 08:09:40 dial tcp 127.0.0.1:3306: connect: connection refused

接下来是MySQL的配置。
5. 拉取MySQL镜像
docker pull mysql
我来到了windows自带的command line执行这个命令(跟在Goland terminal执行效果是一样的)
win10安装docker部署Golang web应用_第22张图片
6. 创建并运行一个新容器
docker run --name mysql -p 33060:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql
命令返回容器的id
在这里插入图片描述
7. 连接MySQL
进入容器:docker exec -it 容器ID /bin/bash
win10安装docker部署Golang web应用_第23张图片
8. 删除有错镜像
我们现在把未拉取MySQL的gin_blog_docker镜像删掉。
在这里插入图片描述
9. 创建并运行一个新容器。
(1) 修改Dockerfile如图所示:
win10安装docker部署Golang web应用_第24张图片
(2)修改app.ini如图所示:
win10安装docker部署Golang web应用_第25张图片
(3)因为docker是Linux环境所以进行交叉编译后才能在docker中运行。
win10安装docker部署Golang web应用_第26张图片
得到如图所示:
win10安装docker部署Golang web应用_第27张图片
(4)构建镜像
docker build -t gin-blog-docker-scratch .
win10安装docker部署Golang web应用_第28张图片
图中scrach应为scratch,不过打错也无碍,但Dockerfile中要写对!
(5)关联MySQL容器和gin_blog_docker_scrach容器并运行。
docker run --link mysql:mysql -p 8000:8000 gin_blog_docker_scrach
win10安装docker部署Golang web应用_第29张图片
此时项目就运行起来了。下图是测试获取token的接口:
win10安装docker部署Golang web应用_第30张图片
至此,安装Docker并部署golang web项目讲解完毕!但是大家肯定会在Mysql的配置、连接上费很多时间。但这篇博客实在太长。鉴于此,大家请移步如何连接docker中MySQL容器

你可能感兴趣的:(杂)