web-dev-qa-db-ja.com

ログインする必要なしに起動時にDockerデーモン(Windowsサービス)を起動する方法は?

Windows Server 2016 DatacenterボックスにDocker for Windowsがインストールされています。

このボックスは、Dockerコンテナのビルドエージェントとして使用します。

デーモンを介してこのボックスに接続してコンテナを構築しようとすると、デーモンが実行されていないことを示すエラーメッセージが表示されます(投稿の最後)。

ただし、ADアカウントを使用してこのボックスにIloginすると、デーモンが起動、実行され、接続して必要なすべての操作を実行できます。

ユーザーがログインすることなく、起動時にデーモンを開始する方法はありますか?サービスは、ユーザーがログインしている場合にのみ実行されるようです。

エラーメッセージ:

error during connect: Post http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.37/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=[NameRemovedForPrivacy]&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&session=[keyRemovedForPrivacy]&shmsize=0&t=[serverNameRemovedForPrivacy]&target=&ulimits=null: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.

私が試したもの:

  • 検証済みDockerがWindowsサービスにリストされ、自動的に開始するように構成されました。
  • 特別な特権を使用してブート時にdocker executableおよびcom.service.dockerを実行するためのWindowsタスクスケジューラのエントリを作成しました。
9

eckes ' 上記のコメントを確認できます。何も機能しないようです。私は、昇格した特権などでSYSTEMユーザーの下で実行するようにタスクスケジューラをセットアップすることに非常に勤勉でしたが、それでも運はありませんでした。

サードパーティのソフトウェアを必要とするソリューションを見つけました。ソフトウェア AlwaysUp を使用すると、Dockerはログインすることなく起動時に実行できます。

指示に従いました 、実行する実行可能ファイルとしてDocker Toolsではなく、reference\dockerd.exe。サーバーを再起動し、リモートデーモンに接続できるようになりました。

このアプローチを最も簡単なソリューションとしてお勧めします。

1