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