CentOS Docker安装配置部署Golang web helloworld
目錄【閱讀時(shí)間:約5分鐘】
- 一、Docker簡介
- 二、Docker的安裝與配置【CentOS環(huán)境】
- 三、Docker部署Golang web helloworld
- 四、Docker與虛擬機(jī)的區(qū)別
- 五、吐槽
一、Docker簡介
Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的鏡像中,然后發(fā)布到任何流行的 Linux或Windows 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。
觀察Docker圖標(biāo),其實(shí)很形象的解釋了什么是Docker。在沒有使用集裝箱的情況下,我們需要考慮不同形狀、尺寸的貨物怎么安放,貨物與貨物之間是否能堆疊,這無疑是很繁瑣的事情。現(xiàn)在有了集裝箱(容器),我們就能將不同的貨物放入集裝箱之內(nèi)這樣就能以同樣的方式來存放貨物,實(shí)現(xiàn)了標(biāo)準(zhǔn)化。
Docker采用了集裝箱原理,我們將程序放入到容器中,實(shí)現(xiàn)“一次封裝,到處運(yùn)行”,只要開發(fā)環(huán)境能跑,在其他任何流行的機(jī)器上都能運(yùn)行。并且將程序丟入到容器中,很好的實(shí)現(xiàn)了程序與程序之間的隔離,避免了類似Java開發(fā)的程序和.net開發(fā)的程序安裝在一個(gè)服務(wù)器上需要很多調(diào)試,有時(shí)還會(huì)產(chǎn)生沖突的情況。
Docker的應(yīng)用場景:
Web 應(yīng)用的自動(dòng)化打包和發(fā)布。
自動(dòng)化測試和持續(xù)集成、發(fā)布。
在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫或其他的后臺應(yīng)用。
從頭編譯或者擴(kuò)展現(xiàn)有的 OpenShift 或 Cloud Foundry 平臺來搭建自己的 PaaS 環(huán)境。
二、Docker的安裝與配置【CentOS環(huán)境】
在CentOS環(huán)境下,通過如下指令即可安裝Docker:
sudo yum install docker
在安裝完畢后,可通過如下指令檢驗(yàn)安裝是否成功:
$ docker --version
Docker version 1.13.1, build 64e9980/1.13.1
檢查安裝無誤后,即可開始下面的基于golang的docker helloworld程序。
三、Docker部署Golang web helloworld
首先創(chuàng)建項(xiàng)目目錄和main.go文件:
[henryhzy@localhost 桌面]$ mkdir helloWorldDocker
[henryhzy@localhost 桌面]$ cd helloWorldDocker/
[henryhzy@localhost helloWorldDocker]$ touch main.go
[henryhzy@localhost helloWorldDocker]$ cat main.go
[henryhzy@localhost helloWorldDocker]$ vim main.go
在main.go文件中輸入如下內(nèi)容:
package main
import ("fmt""net/http"
)
func main() {fmt.Println("Hello world!!")http.HandleFunc("/", homePage)http.HandleFunc("/login", login)_ = http.ListenAndServe(":80", nil)
}
func homePage(w http.ResponseWriter, r *http.Request) {fmt.Println("Hello Docker")
}
func login(w http.ResponseWriter, r *http.Request) {fmt.Println("Login Docker")
}
然后創(chuàng)建Dockerfile文件,其內(nèi)容如下:
FROM golang:latest
WORKDIR $GOPATH/src/helloWorldDocker
COPY . $GOPATH/src/helloWorldDocker
RUN go build .
EXPOSE 8080
ENTRYPOINT ["./helloWorldDocker"]
編譯并運(yùn)行dockers:
docker build -t hellow ./helloWorldDocker
docker run -p 8080:8080 hellow
運(yùn)行結(jié)果:
Hello world!!
四、Docker與虛擬機(jī)的區(qū)別
五、吐槽
Docker在編譯運(yùn)行時(shí)太慢了太慢了,如果系統(tǒng)資源不足&網(wǎng)速慢,估計(jì)得等到一百年~
下篇博客應(yīng)該會(huì)介紹快速編譯&more golang web~
總結(jié)
以上是生活随笔為你收集整理的CentOS Docker安装配置部署Golang web helloworld的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【ReactiveX】基于Golang
- 下一篇: 中级实训总结报告