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

aws服务器

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

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

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

  • 查看contos系统版本命令:

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

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

docker安装

yum 安装docker,方便快捷

安装依赖包:

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

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

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

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

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

安装 Docker CE:

$ yum makecache fast
$ yum install docker-ce

启动 Docker CE

systemctl enable docker
systemctl start docker

建立 docker 用户组

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

建立 docker 组:

sudo groupadd docker

将当前用户加入 docker 组:

sudo usermod -aG docker $USER

这样就安装好了。

但是会有两个小问题:

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

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

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

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

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

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

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

然后重新加载 sysctl.conf 即可

sudo sysctl -p

安装Golang

方法一:源码安装

下载二进制文件:

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

解压并创建工作目录:

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

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

export GOROOT=/usr/local/go
export GOBIN=$GOROOT/bin
export GOPKG=$GOROOT/pkg/tool/linux_amd64
export GOARCH=amd64
export GOOS=linux
export GOPATH=/Golang
export PATH=$PATH:$GOBIN:$GOPKG:$GOPATH/bin

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

方法二:使用 yum 安装

先安装 EPEL 源:

yum install epel -y

然后使用 yum 安装 Golang:

yum install go -y

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

export GOPATH=/Golang
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. docker 容器容器之间网络通信 docker-compose.yaml 配置固定ip

    1.创建自己的桥接网络 $ docker network create --subnet=172.18.0.0/16 mynetwork 2.docker-compose.yaml 文件格式demo ...

  2. linux下shell脚本中sed命令的用法

    先来给一个案例: #将old.sql文件中的符号“|”替换为“,”,并保存到test.sql文件中 sed "s/|/,/g" "old.sql"> te ...

  3. MyBatis(八):高级结果映射

    本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出一遍就懂!b站搜索狂神说或点击下面链接 https://space.bilibili.com/95256449?spm_id_from=33 ...

  4. django自定义404和500页面

    from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.s ...

  5. WordPress快速增加百度收录,加快网站内容抓取

    本文已同步到专业技术网站 www.sufaith.com, 该网站专注于前后端开发技术与经验分享, 包含Web开发.Nodejs.Python.Linux.IT资讯等板块. 利用百度站长平台提供的链接 ...

  6. template_共享模板

    方法: 定义一个基本框架html文件  举例:定义{标题.内容.页尾}区块   定义相应的html文件实现区块的具体样式或内容   定义具体静态网页html文件时调用这些区块html文件, 实现公共元 ...

  7. hive常用函数一

    Hive概念 Hive最适合于数据仓库应用程序,使用该应用程序进行相关静态数据分析,不需要快速响应出结果,而数据本身不会发生频繁变化. Hdfs分布式文件系统限制了hive,使其不支持记录级别的更新. ...

  8. Linux c++ vim环境搭建系列(6)——CMakeLists.txt多文档多目录组织方法和编写示例

    CMakeLists.txt学习 1. 概要 主要是关于cmakelists.txt的编写模板,和多文档多目录的组织方法详解, 涉及第三方库的添加使用方法. 这里主要介绍cmakelists.txt的 ...

  9. 智能指针 unique_ptr

    unique_ptr 不共享它的指针.它无法复制到其他 unique_ptr,无法通过值传递到函数,也无法用于需要副本的任何标准模板库 (STL) 算法. 1.不能进行复制构造和赋值操作(unique ...

  10. Redisson 实现分布式锁的原理分析

    写在前面 在了解分布式锁具体实现方案之前,我们应该先思考一下使用分布式锁必须要考虑的一些问题.​ 互斥性:在任意时刻,只能有一个进程持有锁. 防死锁:即使有一个进程在持有锁的期间崩溃而未能主动释放锁, ...