"names generator" が コンテナにランダムなデフォルト名を与えていそう。
忙しい人のために
Github Gistにバイナリをアップしてあるので、こちらで動作確認可能。
$ git clone https://gist.github.com/YumaInaura/0c8de43e3342db53059584661d0b491e names-generator
$ ./names-generator/names-generator
affectionate_matsumoto
$ ./names-generator/names-generator
recursing_vaughan
( ref moby/LICENSE at master · moby/moby )
「ランダムなデフォルト名」とは
次のように自動で付与される名前のこと。
- quizzical_payne
- sharp_pike
- optimistic_kepler
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dbd46a366aa3 alpine "sleep 100" 2 seconds ago Up 1 second optimistic_kepler
454ee02db352 alpine "sleep 100" 3 seconds ago Up 2 seconds sharp_pike
1d19cef9660b alpine "sleep 100" 4 seconds ago Up 3 seconds quizzical_payne
"names generator" はGo言語製
docker 自体、ほとんどGoで作られているらしいので、それと同じく。
Dockerコードベースの90%以上を占めるGo言語の概要と特徴 | tracpath:Works
よく見るとコードジョークも入っている。
...
// GetRandomName generates a random name from the list of adjectives and surnames in this package
// formatted as "adjective_surname". For example 'focused_turing'. If retry is non-zero, a random
// integer between 0 and 10 will be added to the end of the name, e.g `focused_turing3`
func GetRandomName(retry int) string {
begin:
name := fmt.Sprintf("%s_%s", left[rand.Intn(len(left))], right[rand.Intn(len(right))])
if name == "boring_wozniak" /* Steve Wozniak is not boring */ {
goto begin
}
if retry > 0 {
name = fmt.Sprintf("%s%d", name, rand.Intn(10))
}
return name
}
- moby/names-generator.go at master · moby/moby
- moby/names-generator.go at 1fd7e4c28d3a4a21c3540f03a045f96a4190b527 · moby/moby
利用例
インストール
docker/docker
レポジトリが巨大なのでわりと時間がかかる。
$ go get -v github.com/docker/docker/
github.com/docker/docker (download)
ディレクトリを移動
$ cd $(go env GOPATH)/src/github.com/docker/docker/pkg/namesgenerator/
実行
$ go run cmd/names-generator/main.go
hungry_mccarthy
$ go run cmd/names-generator/main.go
mystifying_bhaskara
ビルドして実行
$ go build -o ~/tmp/names-generator cmd/names-generator/main.go
$ ~/tmp/names-generator
quirky_lederberg
$ ~/tmp/names-generator
zen_torvalds
Versions
- Docker version 18.06.0-ce, build 0ffa825
- go version go1.10.3 darwin/amd64
Ref
- How does Docker generate default container names? • my2cents
- alco/gostart: A getting started guide for Go newcomers
- Go言語 — GOPATHを表示するコマンド ( $ go env GOPATH ) - Qiita
Links
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。