goweb如何部署伺服器
㈠ 想寫個web伺服器,用Go語言實現,需要有哪些前提知識
Web伺服器也是一個應用程序,這個應用程序打開了TCP的80埠,通過HTTP協議和瀏覽器交互。 python和Go有非常成熟的類庫,可以用很短的程序來實現一個Web伺服器的功能(打開80埠通過HTTP協議與瀏覽器交互)。
㈡ 如何使用Docker部署Go Web應用程序
需要在當前目錄下建立如下三個文件。
1).gitignore
node_moles/* 
2)package.json
{ 
"name": "docker-centos-hello", 
"private": true, 
"version": "0.0.1", 
"description": "Node.js Hello world app on CentOS using docker", 
"author": "Daniel Gasienica ", 
"dependencies": { 
"express": "3.2.4" 
} 
} 
3)server.js
var express = require('express'), 
app = express(), 
redis = require('redis'), 
RedisStore = require('connect-redis')(express), 
server = require('http').createServer(app); 
app.configure(function() { 
app.use(express.cookieParser('keyboard-cat')); 
app.use(express.session({ 
store: new RedisStore({ 
host: process.env.REDIS_HOST || 'localhost', 
port: process.env.REDIS_PORT || 6379, 
db: process.env.REDIS_DB || 0 
}), 
cookie: { 
expires: false, 
maxAge: 30 * 24 * 60 * 60 * 1000 
} 
})); 
}); 
app.get('/', function(req, res) { 
res.json({ 
status: "ok" 
}); 
}); 
var port = process.env.HTTP_PORT || 3000; 
server.listen(port); 
console.log('Listening on port ' + port); 
配置Dockerfile
我們需要通過Dockerfile來配置我們的docker鏡像。
FROM ubuntu:14.04 
MAINTAINER zengjinlong  
RUN apt-get update 
#Install Redis 
RUN apt-get -y -qq install python redis-server 
RUN apt-get -y -qq install wget 
#Install Node 
RUN cd /opt && \ 
wget && \ 
tar -xzf node-v0.10.33-linux-x64.tar.gz && \ 
mv node-v0.10.33-linux-x64 node && \ 
cd /usr/local/bin && \ 
ln -s /opt/node/bin/* . && \ 
rm -f /opt/node-v0.10.33-linux-x64.tar.gz 
#Set the working directory 
WORKDIR /src 
j 
CMD ["/bin/bash"] 
有了Dockerfile之後,就可以通過docker build來建立我們的鏡像。
docker build -t minimicall/node_web:0.1 . 
這里需要說明的是,你需要靈活的根據你的ubuntu真實的環境來變化中間的指令。例如,當我們第一次執行的時候,告訴我找不到python redis-server,我想應該是我的apt 源太out了,所以,我加了RUN apt-get update.就解決了這個問題。
當我wget的時候,說沒有這個指令,那麼我就得安裝wget.而nodejs的地址,也是我去從nodejs的官網查找的。所以碰到問題,具體問題具體分析。
查看我們建立的鏡像。
micall@micall-ThinkPad:~/docker/nodejs_web_app$ sudo docker images 
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE 
minimicall/node_web 0.1 730770dff17f 6 minutes ago 268.7 MB 
centos centos6 70441cac1ed5 2 weeks ago 215.8 MB 
ubuntu 14.04 5506de2b643b 4 weeks ago 199.3 MB 
啟動我們的鏡像:
sudo docker run -i -t --rm \ 
> -p 3000:3000 \ 
> -v `pwd`:/src \ 
> minimicall/node_web:0.1 
這時候我們已經進入到了這個鏡像啟動的容器裡面了。
root@d80a2ed6b4c0:/src# 
執行下列命令
root@d80a2ed6b4c0:/src# npm install --quiet > /dev/null 
npm WARN engine [email protected]: wanted: {"node":"<0.9.0"} (current: {"node":"0.10.33","npm":"1.4.28"}) 
root@d80a2ed6b4c0:/src# npm install -g nodemon --quiet > /dev/null 
root@d80a2ed6b4c0:/src# ls 
Dockerfile Dockerfile~ index.js~ package.json server.js src 
Dockerfile.centos index.js node_moles package.json~ server.js~ 
root@d80a2ed6b4c0:/src# nodemon server.js 
22 Nov 14:37:31 - [nodemon] v1.2.1 
22 Nov 14:37:31 - [nodemon] to restart at any time, enter `rs` 
22 Nov 14:37:31 - [nodemon] watching: *.* 
22 Nov 14:37:31 - [nodemon] starting `node server.js` 
Listening on port 3000 
這個時候用瀏覽器打開:,會的到如下結果。
{ 
"status": "ok" 
}
㈢ 如何使用Docker部署Go Web應用程序
步驟一 - 創建Dockerfile
如下的Dockerfile可以滿足以上的要求:
**FROM** golang:1.6
*# Install beego and the bee dev tool*
**RUN** go get github.com/astaxie/beego && go get github.com/beego/bee
*# Expose the application on port 8080*
**EXPOSE** 8080
*# Set the entry point of the container to the bee command that runs the*
*# application and watches for changes*
**CMD** ["bee", "run"]
第一行,
FROM golang:1.6
將Go的官方映像文件作為基礎映像。該映像文件預安裝了 Go 1.6 . 該映像已經把 $GOPATH 的值設置到了 /go 。所有安裝在 /go/src 中的包將能夠被go命令訪問。
第二行,
RUN go get github.com/astaxie/beego && go get github.com/beego/bee
安裝 beego 包和 bee 工具。 beego 包將在應用程序中使用。 bee 工具用語在開發中再現地重新載入咱們的代碼。
第三行,
EXPOSE 8080
在開發主機上利用容器為應用程序開放8080埠。
最後一行,
CMD ["bee", "run"]
使用bee命令啟動應用程序的在線重新載入。
步驟二 - 構建image
一旦創建了Docker file,運行如下的命令來創建image:
docker build -t ma-image .
執行以上的命令將創建名為ma-image的image。該image現在可以用於使用該應用程序的任何人。這將確保這個團隊能夠使用一個統一的開發環境。
為了查看自己的系統上的image列表,運行如下的命令:
docker images
這行該命令將輸出與以下類似的內容:
REPOSITORY  TAG     IMAGE ID      CREATED         SIZE
ma-image    latest  8d53aa0dd0cb  31 seconds ago  784.7 MB
golang      1.6     22a6ecf1f7cc  5 days ago      743.9 MB
注意image的確切名字和編號可能不同,但是,應該至少看到列表中有 golang 和 ma-image image。
步驟三 - 運行容器
一旦 ma-image 已經完成,可以使用以下的命令啟動一個容器:
docker run -it --rm --name ma-instance -p 8080:8080 \
-v /app/MathApp:/go/src/MathApp -w /go/src/MathApp ma-image
讓咱們分析一下上面的命令來看看它做了什麼。
。docker run命令用於從一個image上啟動一個容器
。-it 標簽以交互的方式啟動容器
。--rm 標簽在容器關閉後將會將其清除
。--name ma-instance 將容器命名為ma-instance
。-p 8080:8080 標簽允許通過8080埠訪問該容器
。-v /app/MathApp:/go/src/MathApp更復雜一些。它將主機的/app/MathApp映射到容器中的/go/src/MathApp。這將使得開發文件在容器的內部和外部都可以訪問。
。ma-image 部分聲明了用於容器的image。
執行以上的命令將啟動Docker容器。該容器為自己的應用程序開發了8080埠。無論何時做了變更,它都將自動地重構自己的應用程序。自己將在console(控制台)上看到以下的輸出:
bee   :1.4.1
beego :1.6.1
Go    :go version go1.6 linux/amd64
2016/04/10 13:04:15 [INFO] Uses 'MathApp' as 'appname'
2016/04/10 13:04:15 [INFO] Initializing watcher...
2016/04/10 13:04:15 [TRAC] Directory(/go/src/MathApp)
2016/04/10 13:04:15 [INFO] Start building...
2016/04/10 13:04:18 [SUCC] Build was successful
2016/04/10 13:04:18 [INFO] Restarting MathApp ...
2016/04/10 13:04:18 [INFO] ./MathApp is running...
2016/04/10 13:04:18 [asm_amd64.s:1998][I] http server Running on :8080
㈣ 如何在樹莓派上安裝一個簡單的Go Web伺服器
工具/原料
樹莓派
nat123
LAMP
方法/步驟
在樹莓派上安裝linux系統,到官網下載系統壓縮包,推薦使用raspbian。
如果在windows下安裝,需要下載win32diskimager,解壓系統,將解壓出來的系統映像寫到內存卡(內存卡最好大點,推薦8G以上的內存卡)。
如果在Linux系統下安裝,先輸入命令:sudo fdisk -l  
查詢內存卡的分區,一般是/dev/sdb。
把系統映像解壓到家目錄下/home/***,輸入命令:
sudo dd bs=1M if=~/2016-02-26-raspbian-jessie-lite.img of=/dev/sdb
這步按你自己的實際情況操作。
看到以下輸出就成功寫入了。
把內存卡裝入樹莓派,開機啟動,第一次會需要配置系統,可以按默認設置直接啟動進入系統。
安裝Apache。apache伺服器一般在linux軟體源列表有,可以用apt安裝。
在安裝可以先更新一下apt的軟體列表,以確定安裝的軟體是最新。
輸入命令:sudo apt-get update
更新完畢可以正式安裝apache了。
輸入命令:sudo apt-get install apache2
安裝mysql。這個也是軟體列表中的軟體,所以直接用apt安裝。因為我們是使用伺服器端應用,輸入以下命令安裝:
sudo apt-get install mysql-server
安裝php。
輸入命令:sudo apt-get install php5
php還需要對資料庫進行操作,所以還需要安裝php5-mysql
輸入命令:sudo apt-get install php5-mysql
8
注冊一個域名,用nat123將你的域名與你的IP進行域名解析。若是內網則還需要內網映射。
9
在瀏覽器輸入打開你的網址,網頁正常顯示伺服器就搭建成功了。
㈤ 如何使用Docker部署一個Go Web應用程序
本文的目標是建立一個Docker web app。這樣,你就可以直觀的感受,docker是如何部署一個web應用。 首先,我們建立一個空目錄來存放我們需要的文件。 我們建立的是一個node.js的web服務應用。、
㈥ 如何使用Docker部署一個Go Web應用程序
步驟一 - 創建Dockerfile
 
如下的Dockerfile可以滿足以上的要求:
 **FROM** golang:1.6
*# Install beego and the bee dev tool*
**RUN** go get github.com/astaxie/beego && go get github.com/beego/bee
*# Expose the application on port 8080*
**EXPOSE** 8080
*# Set the entry point of the container to the bee command that runs the*
*# application and watches for changes*
**CMD** ["bee", "run"]
第一行,
 FROM golang:1.6
將Go的官方映像文件作為基礎映像。該映像文件預安裝了 Go 1.6 . 該映像已經把 $GOPATH 的值設置到了 /go 。所有安裝在 /go/src 中的包將能夠被go命令訪問。
 
第二行,
 RUN go get github.com/astaxie/beego && go get github.com/beego/bee
安裝 beego 包和 bee 工具。 beego 包將在應用程序中使用。 bee 工具用語在開發中再現地重新載入我們的代碼。
 
第三行,
 EXPOSE 8080
在開發主機上利用容器為應用程序開放8080埠。
 
最後一行,
 CMD ["bee", "run"]
使用bee命令啟動應用程序的在線重新載入。
 
步驟二 - 構建image
 
一旦創建了Docker file,運行如下的命令來創建image:
 docker build -t ma-image .
執行以上的命令將創建名為ma-image的image。該image現在可以用於使用該應用程序的任何人。這將確保這個團隊能夠使用一個統一的開發環境。
 
為了查看你的系統上的image列表,運行如下的命令:
 docker images
這行該命令將輸出與以下類似的內容:
 REPOSITORY  TAG     IMAGE ID      CREATED         SIZE
ma-image    latest  8d53aa0dd0cb  31 seconds ago  784.7 MB
golang      1.6     22a6ecf1f7cc  5 days ago      743.9 MB
注意image的確切名字和編號可能不同,但是,你應該至少看到列表中有 golang 和 ma-image image。
 
步驟三 - 運行容器
 
一旦 ma-image 已經完成,你可以使用以下的命令啟動一個容器:
 docker run -it --rm --name ma-instance -p 8080:8080 \
-v /app/MathApp:/go/src/MathApp -w /go/src/MathApp ma-image
讓我們分析一下上面的命令來看看它做了什麼。
 
。docker run命令用於從一個image上啟動一個容器
 
。-it 標簽以交互的方式啟動容器
 
。--rm 標簽在容器關閉後將會將其清除
 
。--name ma-instance 將容器命名為ma-instance
 
。-p 8080:8080 標簽允許通過8080埠訪問該容器
 
。-v /app/MathApp:/go/src/MathApp更復雜一些。它將主機的/app/MathApp映射到容器中的/go/src/MathApp。這將使得開發文件在容器的內部和外部都可以訪問。
 
。ma-image 部分聲明了用於容器的image。
 
執行以上的命令將啟動Docker容器。該容器為你的應用程序開發了8080埠。無論何時你做了變更,它都將自動地重構你的應用程序。你將在console(控制台)上看到以下的輸出:
 bee   :1.4.1
beego :1.6.1
Go    :go version go1.6 linux/amd64
2016/04/10 13:04:15 [INFO] Uses 'MathApp' as 'appname'
2016/04/10 13:04:15 [INFO] Initializing watcher...
2016/04/10 13:04:15 [TRAC] Directory(/go/src/MathApp)
2016/04/10 13:04:15 [INFO] Start building...
2016/04/10 13:04:18 [SUCC] Build was successful
2016/04/10 13:04:18 [INFO] Restarting MathApp ...
2016/04/10 13:04:18 [INFO] ./MathApp is running...
2016/04/10 13:04:18 [asm_amd64.s:1998][I] http server Running on :8080
㈦ 如何使用Docker部署一個Go Web應用程序
步驟一 - 創建Dockerfile
如下的Dockerfile可以滿足以上的要求:
 **FROM** golang:1.6
*# Install beego and the bee dev tool*
**RUN** go get github.com/astaxie/beego && go get github.com/beego/bee
*# Expose the application on port 8080*
**EXPOSE** 8080
*# Set the entry point of the container to the bee command that runs the*
*# application and watches for changes*
**CMD** ["bee", "run"]
第一行,
 FROM golang:1.6
將Go的官方映像文件作為基礎映像。該映像文件預安裝了 Go 1.6 . 該映像已經把 $GOPATH 的值設置到了 /go 。所有安裝在 /go/src 中的包將能夠被go命令訪問。
第二行,
 RUN go get github.com/astaxie/beego && go get github.com/beego/bee
安裝 beego 包和 bee 工具。 beego 包將在應用程序中使用。 bee 工具用語在開發中再現地重新載入我們的代碼。
第三行,
 EXPOSE 8080
在開發主機上利用容器為應用程序開放8080埠。
最後一行,
 CMD ["bee", "run"]
使用bee命令啟動應用程序的在線重新載入。
步驟二 - 構建image
一旦創建了Docker file,運行如下的命令來創建image:
 docker build -t ma-image .
執行以上的命令將創建名為ma-image的image。該image現在可以用於使用該應用程序的任何人。這將確保這個團隊能夠使用一個統一的開發環境。
為了查看系統上的image列表,運行如下的命令:
 docker images
這行該命令將輸出與以下類似的內容:
 REPOSITORY  TAG     IMAGE ID      CREATED         SIZE
ma-image    latest  8d53aa0dd0cb  31 seconds ago  784.7 MB
golang      1.6     22a6ecf1f7cc  5 days ago      743.9 MB
注意image的確切名字和編號可能不同,但是,應該至少看到列表中有 golang 和 ma-image image。
步驟三 - 運行容器
一旦 ma-image 已經完成,可以使用以下的命令啟動一個容器:
 docker run -it --rm --name ma-instance -p 8080:8080 \
-v /app/MathApp:/go/src/MathApp -w /go/src/MathApp ma-image
㈧ 如何使用Docker部署一個Go Web應用程序
本文的目標是建立一個Docker web app。這樣,你就可以直觀的感受,docker是如何部署一個web應用。首先,我們建立一個空目錄來存放我們需要的文件。我們建立的是一個node.js的web服務應用。、
