ドッキングウィンドウコンテナとホスト血管の時間
ドッキングウィンドウコンテナホスト同期時間
デフォルトの時間とUTC時間は、コンテナは、ホスト8時間の間の差であります
容器の中に解決します
export TZ=Asia/Shanghai #修改时区
- あなたは自動的にコンテナファイルのlocaltimeをマウントするために、起動パラメータを指定されたコンテナを作成するとき
docker run --name <name> -v /etc/localtime:/etc/localtime:ro ....
- 設定した時間帯がDockerfileに追加されます
# CentOS
RUN echo "Asia/shanghai" > /etc/timezone;
# Ubuntu
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
コンテナの時間を変更します
ための特別なシーンで、学生のテスト、私のサービス時間対応コンテナ変更したい
起動パラメータが参加し --cap-add SYS_TIME
、公式ドキュメントを参照してくださいhttps://docs.docker.com/engine/reference/run/
docker run -it --cap-add SYS_TIME --name centos centos:7 /bin/bash
あなたは、コンテナの時間を変更することができますが、ホストコンテナ時間の時間を変更したときに変更されます
、時間のテスト環境で道のホストを変更することができ、これは冗談ではないにもかかわらず、
ホスト時間に影響を与えることなく、時間だけのドッキングウィンドウコンテナを変更します
ドッキングウィンドウコンテナは、同じLinuxカーネルを共有し、軽量で、かつ時間&日付がkelnelの関数であり、すべての変更は、時間のコンテナをドッキングウィンドウホスト時間が変更されるようになります
githubの上libfaketimeプロジェクトがあり、我々はこのプロジェクトは、アプリケーションを「だます」に接続されたライブラリをコンパイルされた日付にLD_PRELOAD環境変数を使用することができ、ドッキングウィンドウコンテナの時間を変更することを目的として、具体的な実践:
1.pullアイテム:
mkdir libfaketime && cd libfaketime && git init
git pull https://github.com/wolfcw/libfaketime.git
2 SRCの下でコードをコンパイルするためにmakeコマンドを使用して、DLLファイルを取得:/usr/local/lib/faketime/libfaketime.so.1を
3ファイル名を指定して実行]ドッキングウィンドウのexec -it <Containter_id | containter_name>。/ binに/ bashの容器に
4実行時リンカーを変更するには、次のコマンドを使用して、前2日間に設定されました。
export LD_PRELOAD=/usr/local/lib/faketime/libfaketime.so.1 FAKETIME="-2d"
#取消的话, 环境变量设置空
# 时间设置 libfaketime
#!/usr/bin/env bash
export LD_PRELOAD=/usr/local/lib/faketime/libfaketime.so.1
#export FAKETIME="2020-12-24 20:30:00" #该时间会一直保持不变
export FAKETIME="@2020-12-24 20:30:00" #时间会从这里往后递增
変更されたコンテナは、ファイルは、対応するコンテナlibfaketime.so.1の中にコピーされている
ドッキングウィンドウのcp /usr/local/lib/faketime/libfaketime.so.1 9a5150123100:は/ usr / local / libの/ faketime /
5日前に
輸出LD_PRELOAD =は/ usr / local / lib / faketime / libfaketime.so.1 fAKETIME = " - 5D"
#从硬件时间获取
hwclock
#硬件时间设置到系统上来
hwclock -s