docker-07-golang微服務打包成映象
阿新 • • 發佈:2021-08-30
編寫golang程式
main.go
程式碼
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
// 初始化gin框架路由
r := gin.Default()
// 建立路由
r.GET("/hello", func(c *gin.Context) {
c.String(http.StatusOK, "hello Alnk!")
})
// 監聽埠
r.Run(":8080")
}
編譯程式碼
# 安裝程式碼依賴 lichengguo@MacBook-Pro hello % go mod init lichengguo@MacBook-Pro hello % go mod tidy # 編譯成linux包 lichengguo@MacBook-Pro hello % CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o hello-linux lichengguo@MacBook-Pro hello % ls -lh total 39672 -rw-r--r-- 1 lichengguo staff 63B Aug 27 14:56 go.mod -rw-r--r-- 1 lichengguo staff 4.9K Aug 27 14:56 go.sum -rwxr-xr-x 1 lichengguo staff 9.7M Aug 27 14:57 hello-linux -rw-r--r-- 1 lichengguo staff 268B Aug 27 14:56 main.go
編寫Dockerfile檔案
FROM centos
MAINTAINER alnk<[email protected]>
COPY hello-linux /hello-linux
EXPOSE 8080
# centos官方映象預設的工作目錄是根目錄,所以這裡不需要設定工作目錄,直接執行即可
CMD ["./hello-linux"]
上傳程式和dockerfile檔案到伺服器
[root@alnk hello]# pwd /root/hello [root@alnk hello]# ll -rw-r--r-- 1 root root 79 8月 27 15:11 Dockerfile -rwxrwxrwx 1 root root 10150772 8月 27 14:57 hello-linux
打包映象
[root@alnk hello]# docker build -t alnk_app . Sending build context to Docker daemon 10.15MB Step 1/4 : FROM centos .... Successfully built 9181f20cdbfd Successfully tagged alnk_app:latest [root@alnk hello]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE alnk_app latest 9181f20cdbfd 2 minutes ago 219MB
啟動容器
[root@alnk hello]# docker run -d -p 8080:8080 --name alnk_hello_01 alnk_app
ecd4d7e6686b9e464ffa043b9e8d96752eed53a5e52b74266d18a7f4257bb38f
[root@alnk hello]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ecd4d7e6686b alnk_app "./hello-linux" 3 seconds ago Up 3 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp alnk_hello_01
測試
# 進入容器測試檢視
[root@alnk hello]# docker exec -it alnk_hello_01 /bin/bash
[root@ecd4d7e6686b /]# ls -l
total 9964
lrwxrwxrwx 1 root root 7 Nov 3 2020 bin -> usr/bin
drwxr-xr-x 5 root root 340 Aug 27 07:19 dev
drwxr-xr-x 1 root root 4096 Aug 27 07:19 etc
-rwxrwxrwx 1 root root 10150772 Aug 27 06:57 hello-linux
......
[root@ecd4d7e6686b /]# ps -ef|grep hello-linux
root 1 0 0 07:19 ? 00:00:00 ./hello-linux
root 49 32 0 08:41 pts/0 00:00:00 grep --color=auto hello-linux
# 宿主機curl一下
[root@alnk hello]# curl localhost:8080/hello
hello Alnk!
# web介面
#IP:8080/hello
測試成功,以後可以直接打包docker映象使用
轉載請註明出處喲~ https://www.cnblogs.com/lichengguo