你可能遇到這樣的場景:開發軟體時,需要像資料庫(mysql,mongodb)、訊息系統(rabbitmq)、快取服務(redis)等其它依賴服務。當然我們可以找台機器,一步步安裝依賴,然後把所有依賴的服務都安裝好,這就是一台測試機。dock基於docker實現了快速搭建開發環境,是乙個更加靈活便利的可行性方案,可以短時間內啟動所有開發環境所需要的服務。為了避免重複的勞動,vm層面的解決方案就是把這個測試機做成映象,以後申請的時候,就可以用之前測試機的映象作為模板,啟動一台虛擬機器。這是一種解決方案,不過你可能需要更加靈活的解決方案,更加快速的啟動乙個開發環境,更加自由的組合和擴充套件開發時候依賴的服務元件,那好,it comes to docker。
dock github:
安裝步驟:
1.首先確保我們安裝了docker engine,然後接下來就是安裝dock,當然如果在mac系統上,也可以通過虛擬化的解決方案boot2docker來安裝docker,這樣整個開發環境就可以都在mac機器上。
2.**clone下來,然後執行以下命令以及初始化工作,可以把dock放到環境變數中
chmod +x /path/to/dock # make dock executabledock -u # initialise dock
之後你就可以執行以下命令快速的啟動需要的元件了,dock這個專案比較簡單,很快就可以把**看完,因為就是在docker之上封裝了一層sh指令碼,在formula裡頭可以根據專案需求,自行新增服務元件
$ dock redis jenkins mongodb rabbitmq
這樣在開發機上就已經有如下服務了
root@docker-stable-ubuntu:~# docker pscontainer id image command ports names
63142f5e4ad2 tutum/rabbitmq /run.sh 0.0.0.0:5672->5672/tcp, 0.0.0.0:15672->15672/tcp rabbitmq
29c3a381ba55 dockerfile/mongodb:latest mongod 28017/tcp, 0.0.0.0:27017->27017/tcp mongodb
0b356f508ed6 jenkins:latest /usr/local/bin/jenki 50000/tcp, 0.0.0.0:8472->8080/tcp jenkins
2cf88d0aea8f dockerfile/redis:latest redis-server /etc/re 0.0.0.0:6379->6379/tcp redis
接下來,開發者就可以根據ip+port等資訊,使用剛剛所啟動的服務元件了
擴充套件:也許我們可以提供這樣的服務
1.開發者需要乙個redis例項,mongodb例項等等
2.我們可以做乙個這樣的服務,搭建乙個docker集群,然後寫乙個網頁,接收使用者的請求,請求到後台docker集群執行起來乙個例項,成功後返回ip+port+admin+password
3.開發者通過網頁就可以管理申請例項的生命週期
4.管理員在平台中方便的新增新的服務,只要package所需服務的docker image
加上服務發現和管理,這樣就是乙個簡單私有雲的服務分發平台了
Docker 開發者常用操作命令
下面可能是我用得最多的命令 docker ps 檢視當前 docker 服務列表 docker restart name 重啟指定 docker 服務 docker logs name t f 檢視指定服務執行時日誌 docker inspect name 檢視指定服務 docker 資訊建立 do...
優秀的開發者 vs 糟糕的開發者
優秀的開發者是乙個藝術家,乙個享受創作過程的工匠。糟糕的開發者只將自己當作負責產生 的碼農。優秀的開發者了解客戶的問題。糟糕的開發者只了解手頭的技術問題。優秀的開發者會不斷努力去理解 為什麼 然後去實現,同時能夠把握大局。糟糕的開發者專注於構建類 方法和配置檔案,而不理會大局。糟糕優秀的開發者了解產...
優秀的開發者 vs 差的開發者
如果你認為使用 優秀 和 差 來區分開發者不妥的話,也可以將這些看作是初級開發者和資深開發者之間的區別。但無論如何,多看看其他的優秀開發者 或資深開發者 是如何做的,對於自身技能 工作方式的提公升有很大的幫助。優秀的開發者是乙個藝術家,乙個享受創作過程的工匠。差的開發者只將自己當作負責產生 的碼農。...