跟寫Go的時候比起來,真的是遇到不少挫折XD
1.Install
到 Docker ( http://www.docker.com/ ) 找到OSX的版本下載安裝就完成了
2.Run
這裡我什麼都不會,所以我直接使用Google提供的Image\
google / golang ( https://registry.hub.docker.com/u/google/golang/ )
先在Go的專案資料夾底下建立一個叫做Dockerfile的檔案
裡面鍵入
FROM google/golang WORKDIR /gopath/src/app ADD . /gopath/src/app/ RUN go get app CMD [] ENTRYPOINT ["/gopath/bin/app"]在終端機中移到專案資料夾下執行
docker build -t my/app .這樣就成功產生了一個image
接著把剛剛產生的image建立起來
docker run -t -p 8080:8080 my/app理論上,這樣應該就大功告成了
But,有這麼單純就好了,嘗試連接localhost:8080會發現沒辦法連到程式
這裡我弄了好久,最後發現在OSX上Docker是跑在VM上的
我們只有在run的時候把Docker跟程式的Port接上
但是在OSX下還有一層VM,接下來要做的就是把VM的Port接上
先停止boot2docker的運作
boot2docker stop接著執行
VBoxManage modifyvm "boot2docker-vm" --natpf1 "guestnginx,tcp,,8080,,8080"在運作boot2docker
boot2docker start再度嘗試連結到localhost:8080,應該就可以正常的與程式連線了
PS.
如果出現以下類似的訊息,代表你沒有export DOCKER_HOST
Get http:///var/run/docker.sock/v1.12/containers/json: dial unix /var/run/docker.sock: no such file or directory往上翻翻啟動boot2docker的時候,應該有出現像是export DOCKER_HOST=tcp://:2375的字串,輸入他就可以正常運作了
參考資料:
DOCKER ON OSX: PORT FORWARDING ( http://fogstack.wordpress.com/2014/02/09/docker-on-osx-port-forwarding/ )