Docker搭建便捷的開發者環境

2021-09-06 17:49:43 字數 1846 閱讀 3745

你可能遇到這樣的場景:開發軟體時,需要像資料庫(mysql,mongodb)、訊息系統(rabbitmq)、快取服務(redis)等其它依賴服務。當然我們可以找台機器,一步步安裝依賴,然後把所有依賴的服務都安裝好,這就是一台測試機。

為了避免重複的勞動,vm層面的解決方案就是把這個測試機做成映象,以後申請的時候,就可以用之前測試機的映象作為模板,啟動一台虛擬機器。這是一種解決方案,不過你可能需要更加靈活的解決方案,更加快速的啟動乙個開發環境,更加自由的組合和擴充套件開發時候依賴的服務元件,那好,it comes to docker。

dock基於docker實現了快速搭建開發環境,是乙個更加靈活便利的可行性方案,可以短時間內啟動所有開發環境所需要的服務。

dock github:

安裝步驟:

1.首先確保我們安裝了docker engine,然後接下來就是安裝dock,當然如果在mac系統上,也可以通過虛擬化的解決方案boot2docker來安裝docker,這樣整個開發環境就可以都在mac機器上

2.**clone下來,然後執行以下命令以及初始化工作,可以把dock放到環境變數中

chmod +x /path/to/dock   # make dock executable

dock -u # initialise dock

之後你就可以執行以下命令快速的啟動需要的元件了,dock這個專案比較簡單,很快就可以把**看完,因為就是在docker之上封裝了一層sh指令碼,在formula裡頭可以根據專案需求,自行新增服務元件

$ dock redis jenkins mongodb rabbitmq

這樣在開發機上就已經有如下服務了

root@docker-stable-ubuntu:~# docker ps

container 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 差的開發者

如果你認為使用 優秀 和 差 來區分開發者不妥的話,也可以將這些看作是初級開發者和資深開發者之間的區別。但無論如何,多看看其他的優秀開發者 或資深開發者 是如何做的,對於自身技能 工作方式的提公升有很大的幫助。優秀的開發者是乙個藝術家,乙個享受創作過程的工匠。差的開發者只將自己當作負責產生 的碼農。...