使用golang连接到具有ttyfunction的docker容器
以分离(背景)模式启动简单的Docker容器
docker run -d --name test ubuntu tail -f /dev/null
这里是我连接到运行容器的简单golang代码。 在目前的连接,我想获得functiontty。
package main import ( "fmt" "os/exec" "bufio" "io" "os" "github.com/kr/pty" ) func main() { cmd := exec.Command("docker", "exec", "-it", "test", "bin/bash") tty, err := pty.Start(cmd) if err != nil { fmt.Println("Error start cmd", err) } defer tty.Close() go func() { scanner := bufio.NewScanner(tty) for scanner.Scan() { fmt.Println(scanner.Text()) } }() go func() { io.Copy(tty, os.Stdin) }() err = cmd.Wait() if err != nil { fmt.Println("Error Waiting", err) } }
更less的工作,但有一对夫妇认为哪个不工作,因为我会从我的terminal运行docker命令。
- login后我没有看到提示符,像
root@ba351b44ca80:/#
只有在命中返回后才出现,但是我的发夹在新行里没有提示; -
也向上箭头以获得以前的命令不起作用只打印出来
root@ba351b44ca80:/# ^[[A^[[A^[[A
但在场景之后的前一个命令被选中,并且通过返回它被执行。
-
为光标执行命令后不显示提示,如
root@ba351b44ca80:/# ls bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr <Here my cursor>
- Golang连接到docker连接到我的SQLdockergetsockopt:连接被拒绝
- Golang http.Get在Container中显示错误EOF
- 构build并运行Go可执行文件的Docker镜像
- 获取stream错误:streamID 1; 在容器中使用Golang中的GooglesearchAPI时的PROTOCOL_ERROR
- 无法使用docker image在gitlab-ci中编译golang项目
- 在GAE的Dockerised Golang Web应用程序中的smtp sendmail不起作用
- 将数据从主机发送到docker集装箱池
- 在Go中不能安装docker pkg dependency
- 编译/安装libcontainer时由于自定义编译内核错误