我对 Docker 的理解正确吗?
docker run -it --rm --name verdaccio -p 4873:4873 -d verdaccio/verdaccio 如果我的服务器上尚不存在 verdaccio,则获取 verdaccio 并在特定端口上运行它。-d 将其分离,以便我可以离开终端并保持其运行,对吗?
docker exec -it --user root verdaccio /bin/sh 让我 ssh 进入正在运行的容器。但是,如果我再次运行容器,我添加的任何 apk 包rm以及任何编辑的文件都会丢失。那么这个有什么用呢?我可以保留图像中的更改吗?
/verdaccio/conf/config.yaml由于我需要编辑(容器中)中存在的 config.yaml ,因此保留此更改的唯一选择是从正在运行的实例中分离数据?还有别的办法吗?
V_PATH=/path/on/my/server/verdaccio; docker run -it --rm --name
verdaccio -p 4873:4873 \
-v $V_PATH/conf:/verdaccio/conf \
-v $V_PATH/storage:/verdaccio/storage \
-v $V_PATH/plugins:/verdaccio/plugins \
verdaccio/verdaccio
Run Code Online (Sandbox Code Playgroud)然而这个命令会抛出
fatal--- cannot open config file /verdaccio/conf/config.yaml: ENOENT: no such file or directory, open '/verdaccio/conf/config.yaml'
Run Code Online (Sandbox Code Playgroud) 我不太确定如何解决这个问题,请随意编辑。
通过下面的第一个代码块,我可以检查结构体的所有字段是否为零。
但实际上,注入到结构中的值作为args.Review接收(请参见下面的第二个代码块)。
在第二个代码块中,如何检查 args.Review 中的所有字段是否为零?
package main
import (
"fmt"
"reflect"
)
type review struct {
Stars *int32 `json:"stars" bson:"stars,omitempty" `
Commentary *string `json:"commentary" bson:"commentary,omitempty"`
}
func main() {
newReview := &review{
Stars: nil,
// Stars: func(i int32) *int32 { return &i }(5),
Commentary: nil,
// Commentary: func(i string) *string { return &i }("Great"),
}
if reflect.DeepEqual(review{}, *newReview) {
fmt.Println("Nothing")
} else {
fmt.Println("Hello")
}
}
Run Code Online (Sandbox Code Playgroud)
在 Golang Playground 上尝试第二个代码 下面的代码出现两个错误:
prog.go:32:14:类型 args …