理解Docker
Docker可以幫您為自己的應用程序創建一個單一的可部署“單位”。這樣的單位也叫做容器,其中包含了應用程序需要的一切。例如代碼(或二進制文件)、運行時、系統工具,以及系統庫文件。將所有這些需要的內容打包為一個單一的單位,可確保無論將應用程序部署在何處,都能提供完全相同的環境。這種技術還可以幫您維持完全一致的開發和生產環境,通常這些環境是很難被追蹤的。
一旦搭建完成,容器的創建和部署將可自動進行。這本身就可以避免一系列問題。這些問題中大部分都是因為文件不同步,或開發和生產環境之間的差異導致的。Docker可以解決這些問題。
在開發過程中使用Docker所獲得的收益
在開發工作中使用Docker可以獲得的部分收益包括:
- 所有團隊成員共同使用一個標準的開發環境,
- 集中更新依存組件,在任何位置使用相同的容器,
- 從開發到生產可以使用完全相同的環境,并且
- 更易于修復只可能在生產環境中遇到的潛在問題。
Golang 支持交叉編譯,在一個平臺上生成另一個平臺的可執行程序
一、交叉編譯
Windows 下編譯 Linux 64 位可執行程序
在項目所在根目錄下執行:
GOOS:目標平臺的操作系統(darwin、freebsd、linux、windows)
1
|
set GOOS=linux |
GOARCH:目標平臺的體系架構(386、amd64、arm)
1
|
set GOARCH=amd64 |
編譯
1
|
go build . |
二、打包鏡像
Dockerfile(放在根目錄下)
1
2
3
4
|
FROM hub.skyinno.com/common/alpine:latest MAINTAINER FAE Config Server "[email protected]" ADD mars /usr/local/bin/ ENTRYPOINT ["/usr/local/bin/mars"] |
- FROM:為后面的指令設置基礎鏡像。一個有效的Dockerfile文件必須以FROM作為第一條非注釋指令
- MAINTAINER:設置生成的鏡像的Author字段
- ADD:復制新文件、目錄或遠程文件URL并添加他們到容器的文件系統路徑
- ENTRYPOINT:ENTRYPOINT允許配置容器作為可執行文件運行
在跟目錄下進入docker環境
1
|
set DOCKER_HOST=tcp://10.110.200.29:5555 |
構建鏡像
1
2
3
4
|
docker build -t hub.skyinno.com /fcae/mars . // 查看鏡像是否構建成功 docker images |
啟動服務
1
|
docker run -i -d --name=mars -p 8011:8011 hub.skyinno.com /fcae/mars |
- --name:指定服務名稱
- -p:設置服務對外暴露端口
查看服務是否啟動成功
1
|
docker ps -a |
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:http://www.jianshu.com/p/2d234e7c8b8f