docker run
を再作成する際にDockerチュートリアルを使用しようとしています。ここでは、オンラインチュートリアルGolang API(Dockerドキュメント)を使用した `docker run`
package main
import (
"io"
"os"
"github.com/docker/docker/client"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"golang.org/x/net/context"
)
func main() {
ctx := context.Background()
cli, err := client.NewEnvClient()
if err != nil {
panic(err)
}
_, err = cli.ImagePull(ctx, "alpine", types.ImagePullOptions{})
if err != nil {
panic(err)
}
resp, err := cli.ContainerCreate(ctx, &container.Config{
Image: "alpine",
Cmd: []string{"echo", "hello world"},
}, nil, nil, "")
if err != nil {
panic(err)
}
if err := cli.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{}); err != nil {
panic(err)
}
if _, err = cli.ContainerWait(ctx, resp.ID); err != nil {
panic(err)
}
out, err := cli.ContainerLogs(ctx, resp.ID, types.ContainerLogsOptions{ShowStdout: true})
if err != nil {
panic(err)
}
io.Copy(os.Stdout, out)
}
私は「高山」ドッキングウィンドウは、ローカルで利用できない場合、それは最新引っ張っていないされ、これに参照し、エラーを投げ終わる問題から次のコードがあります。 例えば XXXXX $行くgo_docker.go パニック実行:エラー:いいえ、そのようなイメージ:高山
goroutine 1 [running]:
panic(0x27ffa0, 0xc4202afa50)
/usr/local/go/src/runtime/panic.go:500 +0x1a1
main.main()
/Users/rvenkatesh/go_coding/raghu_test_code/go_docker.go:30 +0x592
exit status 2
をしかし、私はコマンドライン相当を実行したとき、私は私が行くクライアントを介して探してみました
XXXX$ docker run alpine echo hello world
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
627beaf3eaaf: Pull complete
Digest:sha256:58e1a1bb75db1b5a24a462dd5e2915277ea06438c3f105138f97eb53149673c4
Status: Downloaded newer image for alpine:latest
hello world
を見ます、私はImagePull関数で何かを調整する必要がありますか?ここのお手伝いをいただければ幸いです!ここで
は https://docs.docker.com/engine/api/getting-started/アップデートドキュメントへのリンクです:私は、Pythonのバージョンで同じチュートリアルをテストしていた、それがうまく働きました。私はGolangのページが更新を必要とするのだろうかと思います。
チュートリアルにリンクしますか? – johnharris85
私の悪い!これを追加したはずです!ドキュメントで私の質問を更新しました! – tw1stud