判断是否是Docker Host模式

5年以前  |  阅读数:688 次  |  编程语言:Golang 

Docker中的host模式指定是容器与主机享受相同的network namespace,在这种情况下,我们访问主机端口就能访问我们的容器。比如说我们运行tomcat容器并且用 -- network=host 来指定我们的网络模式为host。

package utils

import (
    "github.com/fsouza/go-dockerclient"
    "os"
)

func IsDockerHost() bool {
    endpoint := "unix:///var/run/docker.sock"
    _, err := docker.NewClient(endpoint)
    if err != nil {
        return false
    }
    return true
}

host模式设计出来就是为了性能,访问主机的端口就能访问到我们的容器,使容器直接暴露在公网下,但是这却对docker的隔离性造成了破坏,使得安全性大大降低。这种模式有利有弊,对于每个人来说看法都不一样,具体取舍看个人。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8