我有一個非常簡單的應用程序。下面是代碼:無法在Docker-machine(虛擬Box)上運行Docker鏡像的Go(lang)應用程序
package main
import (
"fmt"
"math/rand"
"time"
"net/http"
"encoding/base64"
"encoding/json"
)
type Message struct {
Text string `json:"text"`
}
var cookieQuotes = []string{
// Skipped all the stuff
}
const COOKIE_NAME = "your_cookie"
func main() {
http.HandleFunc("/set_cookie", setCookie)
http.HandleFunc("/get_cookie", getCookie)
http.Handle("/favicon.ico", http.NotFoundHandler())
http.ListenAndServe(":8080", nil)
}
func setCookie(w http.ResponseWriter, r *http.Request) {
quote := getRandomCookieQuote()
encQuote := base64.StdEncoding.EncodeToString([]byte(quote))
http.SetCookie(w, &http.Cookie{
Name: COOKIE_NAME,
Value: encQuote,
})
}
func getCookie(w http.ResponseWriter, r *http.Request) {
cookie, err := r.Cookie(COOKIE_NAME)
if err != nil {
fmt.Fprintln(w, "Cannot get the cookie")
}
message, _ := base64.StdEncoding.DecodeString(cookie.Value)
msg := Message{Text:string(message)}
fmt.Println(msg.Text)
respBody, err := json.Marshal(msg)
fmt.Println(string(respBody))
if err != nil {
fmt.Println("Cannot marshall JSON")
}
w.Header().Set("Content-Type", "application/json")
fmt.Fprintln(w, string(respBody))
}
func getRandomCookieQuote() string {
source := rand.NewSource(time.Now().UnixNano())
random := rand.New(source)
i := random.Intn(len(cookieQuotes))
return cookieQuotes[i]
}
據本地測試,並且,還我試着在我的機器(Ubuntu的)上運行它泊塢窗容器,它是完美的工作。但我想在虛擬機上運行它(我使用Oracle Virtual Box)。
所以,我已經安裝了泊塢窗機:
泊塢窗機版本0.12.2,構建9371605
在那之後,我已經切換到它,就像是在推薦official documentation這樣的:
的eval 「$(泊塢窗機ENV默認)」
所以我現在可以從該機器的角度來做。
而且我試圖運行從文檔例如ngnix:
搬運工運行-d -p 8000:80 nginx的
捲曲$(泊塢窗機IP默認):8000
而我得到的結果,我可以通過訪問可以通過命令來訪問我的泊塢窗機的ip地址去ngnix歡迎頁面:
泊塢窗機IP默認
但是當我嘗試運行我自己的碼頭工人的形象,我不能這樣做。當我試圖訪問它,我得到:
捲曲$(泊塢窗機IP默認):8080
捲曲:(7)無法連接到192.168.99.100端口8080:連接被拒絕
此外,我試圖跳過一個端口,添加協議(http,甚至https爲了運氣) - 沒有任何工作。
也許,我的Dockerfile有問題?
# Go experiments with cookies
FROM golang:1.8-onbuild
MAINTAINER [email protected]
請問您能幫我嗎?
什麼是'Dockerfile'是什麼樣子?這兩條線都在裏面嗎? – Carpetsmoker
是的,先生!這一切,它在我的本地環境中完美運行 – SanchelliosProg
你的docker run命令是怎麼樣的?您是否正確映射端口? – tanyehzheng