Is it possible to send string into running process inside docker container?

For example i have running docker container with cat (or other process using stdin) defined in CMD Dockerfile option.

I’m trying to send string test\n into running cat (or other process).

  • docker compose mount host directory on osx with xhyve
  • logspout write: connection refused
  • Mac Crashes Every Time I Try to Run Boot2Docker
  • In Docker, can I use the JSON format for entrypoint from the command line?
  • Application has different appearance when running through docker
  • Running Docker container randomly disappears on AWS EC2 Ubuntu
  • Is it possible to do this, or I need to find workaround?

    Sum up:
    I’m looking for something like
    echo 'test' | docker run -i --rm alpine command
    for running container.

  • How Wordpress should be runned on Docker
  • How to check if a process is running inside docker container
  • Cadvisor support ELK stack
  • using a docker container to build another docker image
  • Concourse CI: leverage docker image cache
  • Container spawning for interactive tutorial
  • 3 Solutions collect form web for “Is it possible to send string into running process inside docker container?”

    You can pipe to stdin of the container’s process if you start the container with -i. For example;

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

    Keep in mind, that this is done when starting the container. Your question mentioned cat, which is not a long running process, so the container will actually exit after cat completes.

    I solved it by simply pipeing stdin to docker attach, for example:

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

    and in another term

    $ echo test | docker attach <containerId>

    Yes as an example see

    you need to open a port, extract from the previous link

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

    and now, you have some examples of communication using those ports
    send traces to open a TCP port

    $ ping | nc -v 8182

    or send traces to an UDP port

    $ ping | nc -vu 9192

    or send traces to an UDP port without netcat

    $ ping > /dev/udp/


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

    or send traces to a TCP port without netcat

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

    or send traces to an UDP port without netcat

    $ tail -f /opt/wso2am02a/repository/logs/wso2carbon.log > /dev/udp/
    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.