使用golang docker API模拟`docker run`

Ale*_*int 3 go docker

我怎样才能达到相当于

sudo docker run -it --rm --name my-python-container -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:2-slim python test.py
Run Code Online (Sandbox Code Playgroud)

使用Docker API for Golang?

无论是https://github.com/fsouza/go-dockerclienthttps://github.com/samalba/dockerclient是好的.

Jim*_*imB 8

使用时github.com/fsouza/go-dockerclient,您必须首先创建一个容器,使用CreateContainerOptions命令行添加相同的选项.

container, err := client.CreateContainer(createContainerOptions)
Run Code Online (Sandbox Code Playgroud)

一旦你有了容器,就可以启动它,并使用任何额外的选项或覆盖HostConfig

client.StartContainer(container.ID, hostConfig)
Run Code Online (Sandbox Code Playgroud)

要连接到容器的std io流,您需要使用client.AttachToContainer,并在其中分配适当的流AttachToContinerOptions.