假设我有:
一个pg_db容器
docker run -d --name pg_db postgres
Run Code Online (Sandbox Code Playgroud)一个web容器,链接到该pg_db容器
docker run -d --name web --link pg_db:db my-web-app
Run Code Online (Sandbox Code Playgroud)在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 info …Run Code Online (Sandbox Code Playgroud) 是否有可能防止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)