2017-12-23 3 views
0

ホスト起動時に自動的にDockerコンテナを起動する方法はありますか?以前は、ドッカーの実行時に '-restart always'パラメータを使用しましたが、Docker Engineが強制終了されない場合にのみ機能します。ホスト起動時にDockerコンテナが自動的に起動するようにする

+0

、この作業をする必要があります:私はこれを作っhttps://docs.docker.com/engine/admin/systemd/#start-automatically-at-system-boot –

+0

を私の参照が、私はサービスを開始しようとすると、それは常に失敗し、私は明確なエラーを取得しません。 http://container-solutions.com/running-docker-containers-with-systemd/ – jackeblagare

+0

なぜ '--restart always'を使いたくないのですか?このフラグを指定すると、コンテナはコンテナを削除する前にホストが起動するたびに自動的に開始されます。 – SangminKim

答えて

0

あなたのご意見として、私はあなたが約--restart alwaysについて誤解していると思います。

containerを明示的に停止しても、ホストが再起動されるたびにdocker run --restart always containerが実行されると、containerが再起動されます。

たとえば、

$ docker run --restart always --detach --name auto-start-redis redis 
d04dfbd73eb9d2ba5beac41363aa5c45c0e034e08173daa6146c3c704e0cd1da 
$ docker ps 
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS    NAMES 
d04dfbd73eb9  redis    "docker-entrypoint..." 4 seconds ago  Up 4 seconds  6379/tcp   auto-start-redis 
$ reboot  

# After reboot------------------------------- 

$ docker ps 
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS    NAMES 
d04dfbd73eb9  redis    "docker-entrypoint..." About a minute ago Up 21 seconds  6379/tcp   auto-start-redis 

$ docker stop auto-start-redis 
auto-start-redis 
$ docker ps 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES 
$ docker ps -a 
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS      PORTS    NAMES 
d04dfbd73eb9  redis    "docker-entrypoint..." 2 minutes ago  Exited (0) 30 seconds ago      auto-start-redis 
$ reboot 

# After reboot------------------------------- 

$ docker ps 
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS    NAMES 
d04dfbd73eb9  redis    "docker-entrypoint..." 3 minutes ago  Up 12 seconds  6379/tcp   auto-start-redis 

しかし、もちろん、それはdocker-hostが自動起動していることを前提に基づいています。ここでdocker-hostはプロセス自体を意味します。docker daemon通常docker-hostはデフォルトで自動起動しますが、そうでない場合は、自分で設定する必要があります。

使用しているOSがわかりませんが、Ubuntu16の場合は、systemctlコマンドで作成できます。あなたはRHELのバリアントを使用している場合

$ sudo systemctl enable docker 
# To tell systemd to start services automatically at boot, you must enable. 
+0

もう一度見ていきます。私は再起動のalwaysパラメータを使用しましたが、何らかの理由で起動しませんでしたが、問題が発生しませんでした。 – jackeblagare

関連する問題