docker - 使用 netcat 连接到运行 golang 服务器的 docker 容器
问题描述
我是码头工人的新手。尝试从用 golang 编写的简单服务器创建图像。服务器侦听端口 8000 并每秒将当前时间写入客户端一次。
package main
import (
"fmt"
"io"
"net"
"time"
)
func main() {
listener, err := net.Listen("tcp", "localhost:8000")
if err != nil {
panic(err)
}
for {
conn, err := listener.Accept()
fmt.Println("Received connection")
if err != nil {
fmt.Println(err)
continue
}
go handleConnection(conn)
}
}
func handleConnection(conn net.Conn) {
defer conn.Close()
for {
_, err := io.WriteString(conn, time.Now().Format("15:04:05\n"))
if err != nil {
return
}
time.Sleep(1 * time.Second)
}
}
我的 Dockerfile
FROM golang
WORKDIR $GOPATH/src/
RUN mkdir -p sandbox/clock1
WORKDIR $GOPATH/src/sandbox/clock1
COPY . .
RUN go get -d -v ./...
RUN go install -v ./...
EXPOSE 8000
ENTRYPOINT /go/bin/clock1
我用命令启动 docker 容器
docker run -p 8000:8000 -it --name clock1 clock1
然后我尝试使用 docker IP 地址连接到服务器
nc 192.168.1.3 8000
netcat 无法连接并立即存在。你能否指出我做错了什么。
解决方案
推荐阅读
- scala - 我可以在我的 sbt 项目中使用 powermock 吗?
- php - 雄辩的一对一关系,在哪个模型中应该是hasOne?
- android - 如何在 android studio 中为介绍滑块绘制带边框的点?
- c++ - 为什么我在 C++ 映射类成员中的值被擦除了?
- php - 当我在插件 wp-estore 中访问时,Wordpress 会话变量存在但不起作用
- osmdroid - 卫星轨道的折线问题
- c - sizeof unsigned int is 8
- javascript - babel compiler with cucumber.js version 4
- arduino - 是否可以在 Google Assistant 设备中检测到 esp8266?
- python - 在 Python 中解析 JSON 味精