web-dev-qa-db-ja.com

docker bashターミナル内でnetcatコマンドを実行できませんか?

私はドッカーの初心者です。
ubuntu 18.04マシンにコマンドを使用してdocker-ceをインストールしました
Sudo apt install docker-ce
チュートリアルの一部として、以下の一連のコマンドを実行してコンテナ間の接続を確立しようとしています。

以下のコマンドは、ポート1234/4321をオンにして、使用するコンテナーの内側/外側のトラフィックをリッスンします。

root@ghost-SVE9999CNS:/home/ghost# docker run --rm -ti -p 1234:1234 -p 4321:4321 --name echo-server ubuntu:18.04 bash

今、私はdocker bashターミナル内でnetcatコマンドを実行したいと思いました。

root@xxxyyyyzzzz12:/# nc -lp 1234 | nc -lp 4321

端末から上記のコマンドをiovkeすると、そのエラーが発生します "nc:command not found"

bash: nc: command not found
bash: nc: command not found

その後、私は十分な調査を行いましたが、この問題に対する公式のドッカーソリューションは見つかりませんでした。

Docker-ce内にnetcatをインストールする手伝いをしてください。
以下のようなコマンドを試しました。

apt-get install netstat
apt-get install nc

しかし、運はありません。

10
Nandan S V

ncは、デフォルトではubuntu:18.04イメージにインストールされていないため、インストールする必要があります。

apt-get update && apt-get install -y netcat

apt-get updateは、最初にパッケージのリストを更新するために必要です(コンテナーが開始されたとき、このリストは空です)。完了したら、コンテナからnc -lp 1234を実行できます。

期待どおりにすべての作品をテストするには、次のようにします。

  • シェルから(ホスト上で)telnet container_ip 1234またはtelnet localhost 1234のようなものから実行します(ポートが転送されているため)
  • 何かを入力
  • コンテナーの出力を見て、ホストシェルに入力した内容を確認します
17
norbjd