最近自己使用golang折腾了一点东西,可是需要部署到线上才好玩,那么服务器使用了aws,然后使用了docker和没有使用docker部署了一次。简单记录一下过程

aws服务器

为什么使用aws呢,说实话,穷。可以免费使用一年干嘛不用。但是使用的时候注意了,每个月只有750小时,如果你开多台实例,那铁定要跑超了,要付高昂费用的呦。

至于怎么申请,我写了一个文章在微信里,点击这里,每个步骤都有.这样你就可以免费的玩起来了。

当然如果你不确定你使用了什么系统,有几个命令可以告诉你:

  • 查看contos系统版本命令:

    1. cat /proc/version
    2. uname -a
    3. uname -r
  • 查看版本
  1. cat /etc/issue
  2. cat /etc/redhat-release //使用Ubuntu的就不用试了

当然如果你不想一直sudo下去,sudo -i可以切换到root用户,反正是玩,无所谓

docker安装

yum 安装docker,方便快捷

安装依赖包:

  1. yum install -y yum-utils device-mapper-persistent-data lvm2

鉴于国内网络问题,强烈建议使用国内源.
执行下面的命令添加 yum 软件源:

  1. yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

如果需要最新版本的 Docker CE 请使用以下命令:

  1. yum-config-manager --enable docker-ce-edge

安装 Docker CE:

  1. $ yum makecache fast
  2. $ yum install docker-ce

启动 Docker CE

  1. systemctl enable docker
  2. systemctl start docker

建立 docker 用户组

如果是生产服务器的话,一般不会直接使用root,默认情况下,docker 命令会使用 Unix socket Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组

建立 docker 组:

  1. sudo groupadd docker

将当前用户加入 docker 组:

  1. sudo usermod -aG docker $USER

这样就安装好了。

但是会有两个小问题:

1.如果你使用最新版的redhat,而且使用最新版的docker,肯定会出错。这有个地址,解决办法是:

  1. yum install --setopt=obsoletes=0 \
  2. docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
  3. docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch

也就要不使用最新版本就好了,降低版本,希望你没有。

2.默认配置下,如果在 CentOS 使用 Docker CE 看到下面的这些警告信息:

  1. WARNING: bridge-nf-call-iptables is disabled
  2. WARNING: bridge-nf-call-ip6tables is disabled

请添加内核配置参数以启用这些功能。

  1. tee -a /etc/sysctl.conf <<-EOF
  2. net.bridge.bridge-nf-call-ip6tables = 1
  3. net.bridge.bridge-nf-call-iptables = 1
  4. EOF

然后重新加载 sysctl.conf 即可

  1. sudo sysctl -p

安装Golang

方法一:源码安装

下载二进制文件:

  1. // 最新版
  2. wget https://storage.googleapis.com/golang/go1.10.linux-amd64.tar.gz

解压并创建工作目录:

  1. tar -zxf go1.7.3.linux-amd64.tar.gz -C /usr/local/
  2. mkdir /Golang

在 /etc/profile 添加环境变量:

  1. export GOROOT=/usr/local/go
  2. export GOBIN=$GOROOT/bin
  3. export GOPKG=$GOROOT/pkg/tool/linux_amd64
  4. export GOARCH=amd64
  5. export GOOS=linux
  6. export GOPATH=/Golang
  7. export PATH=$PATH:$GOBIN:$GOPKG:$GOPATH/bin

然后执行 source /etc/profile 使之生效

方法二:使用 yum 安装

先安装 EPEL 源:

  1. yum install epel -y

然后使用 yum 安装 Golang:

  1. yum install go -y

在 /etc/profile 添加环境变量:

  1. export GOPATH=/Golang
  2. export PATH=$PATH:$GOPATH/bin

然后执行 source /etc/profile 使之生效。

其他

还有安装git,beego框架等其他的一些配置就不用细说了,大家都会的东西说了多没意思。

先到这

参考文章:
https://yeasy.gitbooks.io/doc...
http://blog.csdn.net/u0127241...

golang 线上项目部署折腾之一的更多相关文章

  1. 吾八哥学k8s(二):golang服务部署到kubernetes

    本篇主要讲解如何将golang的服务部署到kubernetes集群里,附带相关的golang的demo和yml文件内容.纯新手入门方式,生产服务需要完整的CI/CD流程来支持. golang服务代码 ...

  2. Golang项目部署

    文章来源:https://goframe.org/deploymen... 一.独立部署 使用GF开发的应用程序可以独立地部署到服务器上,设置为后台守护进程运行即可.这种模式常用在简单的API服务项目 ...

  3. NodeJS项目迁移兼Ubuntu下NodeJS环境部署

    前言 之前做的几个项目都托管在阿里云服务器,但是最近要到期了.想着到底要不要续期,毕竟100/月.后面看着阿里云有个活动,800/三年.果断买下.环境部署折腾了一天,其中也遇到几个坑. 目录 一.安装 ...

  4. 以太坊系列之十六: 使用golang与智能合约进行交互

    以太坊系列之十六: 使用golang与智能合约进行交互 以太坊系列之十六: 使用golang与智能合约进行交互 此例子的目录结构 token contract 智能合约的golang wrapper ...

  5. Golang错误和异常处理的正确姿势

    Golang错误和异常处理的正确姿势 错误和异常是两个不同的概念,非常容易混淆.很多程序员习惯将一切非正常情况都看做错误,而不区分错误和异常,即使程序中可能有异常抛出,也将异常及时捕获并转换成错误.从 ...

  6. 以太坊系列之十六:golang进行智能合约开发

    以太坊系列之十六: 使用golang与智能合约进行交互 以太坊系列之十六: 使用golang与智能合约进行交互 此例子的目录结构 token contract 智能合约的golang wrapper ...

  7. Golang通脉之错误处理

    在实际工程项目中,总是通过程序的错误信息快速定位问题,但是又不希望错误处理代码写的冗余而又啰嗦.Go语言没有提供像Java.C#语言中的try...catch异常处理方式,而是通过函数返回值逐层往上抛 ...

  8. 聚光灯下的熊猫TV技术架构演进

    2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时 ...

  9. C#调用WORD处理的实例代码(包含excel)

    最近程序人生(http://www.manong123.com)一个朋友让我帮他做一个小功能,其实就是把WORD文档里的内容存到数据库里去,可以实现搜索并转EXCEL的功能,需求很简单,想不到加上部署 ...

随机推荐

  1. python 终端带颜色的打印文本

    import sys from termcolor import colored, cprint text = colored('Hello, World!', 'red', attrs=['reve ...

  2. 混合app禁止切换输入法英文键盘方案

    前言 在此介绍的是h5的部分,非原生,原生可以直接属性禁止. 需求 禁止中文出现在input中.(如果你认为不显示出来中文,那么请往下看) 效果:只显示英文键盘. 遇到的问题 1.在三星低版本上会出现 ...

  3. mybatis源码配置文件解析之一:解析properties标签

    mybatis作为日常开发的常用ORM框架,在开发中起着很重要的作用,了解其源码对日常的开发有很大的帮助.源码版本为:3-3.4.x,可执行到github进行下载. 从这篇文章开始逐一分析mybati ...

  4. Java第二十九天,文件及目录的管理,File类

    一.基础知识点 1.路径分隔符 (1)什么是路径分隔符? 这个多被应用在环境变量设置当中,例如当我设置Path环境变量时,多个环境变量的路径要用 ':'(Windows系统用封号分隔)或 ':'(Li ...

  5. Linux网络安全篇,认识防火墙(二),Netfilter

    一.概述 因为iptables软件利用的是数据包的过滤的机制.所以它会分析数据包的报头数据.根据报头数据与定义的规则来决定该数据是否可以放行.若数据包内容与规则内容相同则放行,否则继续与下一条规则进行 ...

  6. Linux 文件管理篇(一 档案读写)

    由第一行开始显示文件内容        cat 由最后一行开始显示文件内容        tac 一页一页的显示文件内容            more 一页一页的显示文件内容(可以向前翻页)     ...

  7. Vue生成分享海报(含二维码)

    本文已同步到专业技术网站 www.sufaith.com, 该网站专注于前后端开发技术与经验分享, 包含Web开发.Nodejs.Python.Linux.IT资讯等板块. 功能需求: 海报有1张背景 ...

  8. tf.get_variable

    使用tf.get_variable()时,如果检测到命名冲突,系统不会处理冲突,而会报错. 如果已经创建的变量对象,就把那个对象返回,如果没有创建变量对象的话,就创建一个新的. tf.get_vari ...

  9. intellij idea 设置用真机测试android

    android自带的模拟器是不容置疑的慢,genymontion虽然快,但是觉得有点怪的感觉,哈哈,其实这些都不是重点. 之前是用myeclipse开发android的,虽然一直很想用eclipse来 ...

  10. Salesforce 产品 | 协同办公“大魔王”,Salesforce Quip的使用攻略!

    Salesforce帮助企业渡过疫情难关,支持在线远程办公.7.5亿美金收购的动态文档共享平台Quip,即刻开放给所有Salesforce老客户还有非营利组织免费使用至2020年9月30日. Quip ...