ホームページ  >  記事  >  運用・保守  >  Docker は起動せずに自動的に起動します

Docker は起動せずに自動的に起動します

PHPz
PHPzオリジナル
2023-05-13 13:05:07680ブラウズ

Docker は現在最も人気のあるコンテナ化ソフトウェアの 1 つであり、開発者がアプリケーションをより簡単に作成および実行できるようにします。しかし、場合によっては、コンピューターを起動した後、Docker が自動的に起動しないという問題が発生することがあります。 Docker を自動的に起動したい場合の設定方法を見てみましょう。

  1. 前提条件

セットアップする前に、まず Docker に systemd および daemon.json ファイルがインストールされているかどうかを確認する必要があります。起動時に Docker が自動的に起動するのに役立つため、両方のファイルが必要です。

これらがシステムにインストールされていない場合は、次のコマンドを使用してインストールできます:

sudo apt-get update
sudo apt-get install systemd
  1. daemon.json ファイルを編集します

Docker を有効にする システムでは、/etc/docker/daemon.json ファイルを編集する必要があります。ファイルが存在しない場合は、次のコマンドを使用してファイルを作成できます。

sudo nano /etc/docker/daemon.json

次に、次のコードをファイルに追加します。

{
    "default-address-pools":
    [
        {"base":"172.0.0.0/8","size":16},
        {"base":"192.168.0.0/16","size":24}
    ],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "10m",
        "max-file": "3"
    }
}

このコード スニペットには、Docker 構成情報が含まれています。また、Docker コンテナに IP アドレスを割り当てるために使用されるデフォルトのアドレス プールも含まれています。必要に応じて変更できます。

  1. systemd ファイルの追加

次に、docker.service という名前の systemd ファイルを作成し、/etc/systemd/system/ ディレクトリの中央に追加する必要があります。

次のコマンドを使用して新しいファイルを作成します:

sudo nano /etc/systemd/system/docker.service

次のコードをファイルに追加します:

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target sshd.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
EnvironmentFile=-/run/flannel/docker
Restart=always
RestartSec=3
LimitNOFILE=1048576
LimitNPROC=infinity
LimitCORE=infinity

[Install]
WantedBy=multi-user.target

このファイルは、systemd に Docker の起動方法といくつかのオプションの構成方法を指示します。

  • 説明: サービスの名前
  • Documentation: Docker の公式ドキュメントへのリンク
  • After: 必要なその他のサービスのリストサービスの開始時に開始される
  • Wants: リストされたいくつかのサービスが読み込まれた後、一定の遅延の後にサービスが開始されます
  • Type: サービスの種類
  • ExecStart: サービス起動コマンド
  • ExecReload: サービスの再読み込みコマンド
  • EnvironmentFile: 環境変数ファイルの読み込みパス
  • Restart: サービスの再起動方法
  • RestartSec: サービスの再起動間隔サービスの再起動
  • LimitNOFILE: プロセスが開くことができるファイル記述子の数の上限
  • #LimitNPROC: プロセスが作成できるスレッド数の上限
  • LimitCORE: プロセスが使用できる最大メモリ制限
    Reload systemd
systemd ファイルを /etc/systemd/system/ に追加した後ディレクトリにある場合、構成を有効にするには systemd プロセスをリロードする必要があります。次のコマンドを使用して systemd をリロードできます。

sudo systemctl daemon-reload

    systemd を有効にする
次の手順では、Docker サービスが自動的に開始されるようにします。次のコマンドを使用して systemd を有効にできます。

sudo systemctl enable docker.service

このコマンドは、起動時に Docker を自動的に起動します。

最後に

これで、システムの起動時にDockerサービスを自動的に開始する方法を学びました。その他の Docker の問題が発生した場合は、Docker の公式ドキュメントを参照するか、コミュニティで助けを求めることができます。

以上がDocker は起動せずに自動的に起動しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。