小编Sam*_*han的帖子

Docker:/ etc / hosts在源容器重启时不会自动更新

假设我有:

web容器中,我可以pg_db通过/etc/hosts名称解析访问。

# cat /etc/hosts
...
172.17.0.17    db
Run Code Online (Sandbox Code Playgroud)

但是,如果我重新启动pg_db容器,它将有一个新的IP地址,并且文档链接的容器应具有/etc/hosts自动更新其文件的文件,但这不是我的情况。

$ docker restart pg_db
$ docker inspect --format '{{.NetworkSettings.IPAddress}}' pg_db
172.17.0.21
Run Code Online (Sandbox Code Playgroud)

并在仍在运行的web容器中:

# cat /etc/hosts
...
172.17.0.17    db        <-- No change!!!
Run Code Online (Sandbox Code Playgroud)
  • 虫子吗?
  • 还是新的Docker行为,因此文档在这一点上已经过时了?

$ docker info …
Run Code Online (Sandbox Code Playgroud)

docker

5
推荐指数
1
解决办法
592
查看次数

防止 flag.Parse() 吞下“--”?

是否有可能防止flag.Parse()从“吞”(拆除)--flag.Args()

例子

package main

import (
    "flag"
    "fmt"
)

func main() {
    flag.Parse()
    fmt.Println(flag.Args())
}
Run Code Online (Sandbox Code Playgroud)

我无法区分这两个调用:

$ go run . hello
[hello]

$ go run . -- hello
[hello]
Run Code Online (Sandbox Code Playgroud)

为什么我要区分这两个调用?

我正在编写一个封装另一个子程序的 Go 程序。

我的程序有一些可选的位置参数

myprog [options] [ARG1 ARG2 ...] [-- SUBARG1 SUBARG2...]
Run Code Online (Sandbox Code Playgroud)

调用示例:

myprog [options] [ARG1 ARG2 ...] [-- SUBARG1 SUBARG2...]
Run Code Online (Sandbox Code Playgroud)

我知道我可以---用作分隔符或任何其他组合,但我只是想知道这个--论点。

接受答案后编辑

来源:

$ myprog -flag1 val1

$ myprog -flag1 val1 foo
# foo is …
Run Code Online (Sandbox Code Playgroud)

go

1
推荐指数
1
解决办法
61
查看次数

标签 统计

docker ×1

go ×1