docker - 为什么容器已经存在?
问题描述
我正在尝试通过https://pkg.go.dev/github.com/fsouza/go-dockerclient?tab=doc创建一个容器,如下所示:
path, err := os.Getwd()
NoError(t, err, err)
source := fmt.Sprintf("%s/gogs/data-backup", path)
dest := fmt.Sprintf("%s/gogs/data", path)
defer os.RemoveAll(dest)
err = copy.Copy(source, dest)
NoError(t, err, err)
client, err := docker.NewClientFromEnv()
NoError(t, err, err)
ctx := context.Background()
gogs, err := client.CreateContainer(docker.CreateContainerOptions{
Name: "gogs",
Config: &docker.Config{
Image: "gogs/gogs:0.11.91",
ExposedPorts: map[docker.Port]struct{}{
"3000/tcp": {}},
},
HostConfig: &docker.HostConfig{
PublishAllPorts: true,
AutoRemove: true,
Binds: []string{dest, "/data"},
PortBindings: map[docker.Port][]docker.PortBinding{
"3000/tcp": {{HostIP: "0.0.0.0", HostPort: "8888"}}},
},
Context: ctx,
})
NoError(t, err, err)
defer client.StopContainer(gogs.ID, 5)
当我跑步时,它抱怨:
=== RUN TestGitAutoTag
TestGitAutoTag: auto_tagger_test.go:55:
Error Trace: auto_tagger_test.go:55
Error: Received unexpected error:
container already exists
Test: TestGitAutoTag
Messages: container already exists
--- FAIL: TestGitAutoTag (0.02s)
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x9e1d06]
当我查看主机上正在运行的容器时:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c2c9155514ee drone/drone-runner-docker:1.2.1 "/bin/drone-runner-d…" 11 hours ago Up 5 hours 0.0.0.0:3000->3000/tcp drone-runner
6a7f43e6d541 drone/drone:1.6.5 "/bin/drone-server" 11 hours ago Up 5 hours 443/tcp, 0.0.0.0:8080->80/tcp drone
我看不到任何带有名称的容器gogs
。我想要实现的是:
docker run --rm -it -p 8888:3000 --name=gogs --mount type=bind,source=`pwd`/gogs/data,target=/data gogs/gogs
我究竟做错了什么?
解决方案
推荐阅读
- javascript - 使用 React 钩子的轮播在移动设备而非桌面设备上滑动不顺畅
- android - 如何在中心绘制一个透明矩形?
- python - 在 Jupyter 笔记本的循环中使用降价
- wordpress - 在 woocommerce 可预订产品的商店页面上显示下一个可用日期
- java - com.company.Main.this' 不能从静态上下文中引用
- javascript - 为什么我无法成功将我的表单连接到 mysql 数据库
- php - 如何通过 PSR-4 自动加载使供应商包类可扩展?
- javascript - forEach 数组实例的返回值
- android - android布局中ImageView和TextView之间的空间
- postgresql - GIN Index 大型数据集的问题