Docker は、コンテナ内でアプリケーションを実行することにより、アプリケーションのデプロイと管理を簡素化するオープンソースのコンテナ化プラットフォームです。ただし、Docker を使用する場合、ユーザーはコンテナー内の時間がホスト システムの時間と一致していないことに気づくことが多く、これにより一部のアプリケーションが正しく実行されなくなる可能性があります。したがって、Docker 時間をどのように変更するかが非常に重要になります。
この記事では、Docker コンテナーの時刻を変更する方法を紹介します。
1. Docker コンテナ内の時刻を確認する
Docker コンテナ内の時刻を変更する前に、まずコンテナ内の時刻がホスト システムの時刻と一致しているかどうかを確認する必要があります。 。ターミナルで次のコマンドを実行すると、コンテナの時間を表示できます:
docker exec <container_id> date
ここで、container_id
はクエリ対象のコンテナの ID です。たとえば、my_container
という名前のコンテナの時間をクエリする場合は、次のコマンドを実行できます。
docker exec my_container date
コマンドの実行後、ターミナルはコンテナ内の時間を出力します。 。ホスト システムの時刻と一致しない場合は、コンテナ内の時刻を変更する必要があります。
2. Docker コンテナの時刻を変更する
Docker コンテナの時刻はホスト システムの時計から同期されます。したがって、コンテナーの時刻を変更するには、まず次のコマンドを使用してホスト システムの時刻を変更する必要があります。
date -s "<yyyy>-<mm>-<dd> <hh>:<mm>:<ss>"
このうち、yyyy
は年を表し、 mm
は月、dd
は日、hh
は時、mm
は分、ss
はそれぞれを表します二番目。たとえば、ホスト システムの時刻を 2022 年 1 月 1 日の 0:00:00 に変更する場合は、次のコマンドを実行できます。
date -s "2022-01-01 00:00:00"
次に、ホスト システムの時刻を同期する必要があります。ホスト システムから Docker のクロックへの接続:
docker run --rm --privileged alpine hwclock -s
このコマンドは、Alpine Linux コンテナを起動し、コンテナ内で hw Clock -s
コマンドを実行して、コンテナ内のクロックをホスト システムのクロックと同期させます。ホストシステム。このコマンドを実行すると、コンテナ内の時刻も更新されます。
最後に、次のコマンドを使用してコンテナ内の時間を再度確認します。
docker exec <container_id> date
コンテナ内の時間がホスト システムの時間と一致していれば、タスクは完了です。
3. Dockerコンテナの時刻を自動同期する
上記の方法でもDockerコンテナの時刻を変更できますが、時刻が合わない場合はその都度手動で操作する必要があり非常に面倒です。 。そのため、スクリプトを書くことでDockerコンテナの時刻を自動的に同期させることができます。
以下は、ホスト システムの時刻を Docker コンテナーに同期するための単純な Bash スクリプトです。
#!/bin/bash # 修改主机系统的时间 date -s "<yyyy>-<mm>-<dd> <hh>:<mm>:<ss>" # 获取所有正在运行的容器的 ID containers=$(docker ps -q) # 同步容器内的时间 for container in $containers do docker exec $container hwclock -s done
上記のコードを .sh
ファイルとして保存します。たとえば、sync_time.sh
と入力し、次のコマンドを実行します。
chmod +x sync_time.sh ./sync_time.sh
このスクリプトを実行すると、ホスト システムの時刻が変更され、実行中のすべての Docker コンテナと自動的に同期されます。
4. 概要
この記事では、手動時刻同期や自動時刻同期など、Docker コンテナ内の時刻を変更する方法を紹介します。 Docker の使用時に時刻の不一致の問題が発生した場合は、上記の方法を試して解決できます。
以上がDocker時間を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。