如何让docker以daemon方式运行/bin/bash
怪我咯
怪我咯 2017-04-21 10:55:35
0
5
853

请教各位达人一个关于docker的问题哈。我想在docker run的时候,用-d参数运行/bin/bash,然后让这个bash一直跑着,我要用的时候就docker attach上去。但是我一跑docker run -d .... /bin/bash,这个容器就运行结束停下来了。这是为毛啊,有啥解决方案没。。。

怪我咯
怪我咯

走同样的路,发现不同的人生

全員に返信 (5)
PHPzhong

私自身もこの問題に遭遇しました。しかし、別の状況では、docker の実行時にコンテナーが常にバックグラウンドで実行され、リモートでログインして操作できるようになることを望みます。

記事をコピーしました: コンテナへの SSH リモート ログイン

---コンテンツの始まり-----

コンテナを起動した後、一部の操作を実行するために ssh を使用してログインする必要がある場合があります。この目標を達成するには、次の 2 つの点を確保する必要があります:

  • コンテナが実行されている必要があります。
  • opensshサーバーが起動します。
リーリー

まずイメージにopenssh-serverサービス

がインストールされていることを確認してください リーリー

次に、画像を送信します:

リーリー

最後に、イメージを実行し、生成されたコンテナをバックグラウンドで実行させます:

リーリー

これで、ssh 経由でコンテナにログインできるようになります。

リーリー
いいねを押す+0
    左手右手慢动作

    docker run指定されたコマンドがハングしているコマンド (topを実行し、常にechoを実行している場合など) ではない場合、コマンドは自動的に終了します。 。公式ドキュメントによると、-dコマンドは detach を true に設定します。これは、このコマンドがバックグラウンドで実行されることを意味しますが、常に実行されるわけではありません (/bin を実行します)。通常の Linux ターミナル /bashは一度実行すると終了します。応答を待ってハングアップすることはないため、実際には/bin/bashをデーモン モードで実行する方法はありません。 。docker run指定的命令如果不是那些一直挂起的命令(比如运行top,不断echo),就是会自动退出的。-d命令是设置detach为true,根据官方的文档,意思是让这个命令在后台运行,但并不是一直运行(我们在一个正常的Linux Terminal中运行/bin/bash,运行完了也就完了,不会一直挂着等待响应的,所以确实没办法用daemon方式来跑/bin/bash)。

    这个地方官方早期和现在的文档也确实有些前后不一致,现在是detach,早期的文档说指定-d以daemon方式来运行容器,可能存在一定的误解。

    另外,如果你需要跑容器里的bash,直接运行docker run -i -t CONTAINER_NAME /bin/bash就可以了,如果觉得参数比docker attach多,可以设置一个别名(alias)来解决:

    alias dockerbash='docker run -i -t CONTAINER_ID /bin/bash'

    设置好别名后,直接运行dockerbash

    確かに、初期の公式ドキュメントと現在の公式ドキュメントの間にはいくつかの矛盾があります。初期のドキュメントでは、デーモンモードでコンテナを実行するために -d が指定されていると書かれています。 さらに、コンテナ内で bash を実行する必要がある場合は、 docker run -i -t CONTAINER_NAME /bin/bashを実行するだけです。dockerattach よりも多くのパラメータがあると思われる場合は、解決する別名 (alias ): リーリー エイリアスを設定した後、 dockerbashを直接実行してコンテナーの bash に入ります。
    いいねを押す+0
      PHPzhong

      これはスーパーバイザーを使用して実現できます。また、複数のサービスを同時に開始することもできます。
      まず、yum -y install supervisor を使用してソフトウェア パッケージをインストールし、設定ファイル /etc/supervisord.conf を変更します
      sshd など、開始するサービスを追加します。

      具体的な情報については、次の記事を参照してください: http://openstack.blog.163.com/blog/static/236387267201491734019283/

      いいねを押す+0
        Peter_Zhu

        docker run --attach=stdin -d image bash、-d パラメータはデフォルトで stdin をオフにします。

        いいねを押す+0
          刘奇

          イメージを構築するための Dockerfile ファイルに次の文を追加することをお勧めします:
          CMD tail -f
          他のコマンドがある場合
          CMD その他のコマンド && tail -f
          お役に立てば幸いです

          いいねを押す+0
            最新のダウンロード
            詳細>
            ウェブエフェクト
            公式サイト
            サイト素材
            フロントエンドテンプレート
            私たちについて 免責事項 Sitemap
            PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!