2017-02-20 65 views

回答

2

我解決它通過簡單的pipeing標準輸入到泊塢窗連接,例如:

$ docker run -i busybox sh -c "while true; do cat /dev/stdin; sleep 1; done;" test

,並在另一個術語

$ echo test | docker attach <containerId>

1

是作爲一個例子見

https://github.com/chilcano/docker-netcat

你需要打開一個端口,從以前的鏈接提取

$ docker run -d -t --name=netcat-jessie -p 8182:8182 -p 9192:9192/udp chilcano/netcat:jessie 

,現在,你必須使用這些端口 通信的一些例子發送跟蹤打開TCP端口

$ ping 8.8.4.4 | nc -v 192.168.99.100 8182 

或發送跡線到UDP端口

$ ping 8.8.8.8 | nc -vu 192.168.99.100 9192 

或發送跡線到UDP端口,而不netcat的

$ ping 8.8.4.4 > /dev/udp/192.168.99.100/9192 

$ tail -f /opt/wiremock/wiremock.log | nc -vu 192.168.99.100 9192 

或發送跡線到TCP端口,而不netcat

$ tail -f /opt/wso2esb01a/repository/logs/wso2carbon.log > /dev/tcp/192.168.99.100/8182 

或發送痕跡的UDP端口,而netcat

$ tail -f /opt/wso2am02a/repository/logs/wso2carbon.log > /dev/udp/192.168.99.100/9192 
+0

所以這是不可能做到像'-X 'screen'中的參數?例如,'$ screen -S -X ' – Papkie

+0

如果你想在一個容器中使用shell,請參閱docker exec https://docs.docker.com/engine/reference/commandline/exec/如果你想在容器中使用X,要安裝一些東西,請參閱http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/ – user2915097

+0

那不,我不想在容器內裝殼。我想發送一個字符串到'CMD' Dockerfile屬性中定義的運行進程中。 – Papkie

2

可以通過管道將容器的過程中stdin如果你開始-i容器。例如;

echo "foobar" | docker run -i --rm alpine cat 

請記住,這樣做的時候開始容器。你的問題提到cat,這不是一個漫長的過程,所以容器將在cat完成後實際退出。

+0

我知道'-i'參數,我正在尋找類似於運行容器的東西。 'cat'只是接受輸入的例子 – Papkie

相關問題