Docker のタイムゾーンの問題とデータ移行の問題

Docker のタイムゾーンの問題とデータ移行の問題

最新のソリューション:

-v /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone -v /etc/localtime:/etc/localtime:ro

docker run --name tomcat-service-0 -d -p 8080:8080 -v /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone -v /etc/localtime:/etc/localtime:ro -v /home/zjy/logs/tomcat-service-0:/usr/local/tomcat/logs -v /home/zjy/code/ligu/target:/usr/local/tomcat/webapps tomcat

質問1

Docker を使用してプロジェクトをデプロイしたところ、Docker コンテナ内のタイムゾーンがサーバーの時間と 8 時間異なることが判明しました。
-v /etc/localtime:/etc/localtime を使用してサーバーの時間とコンテナの時間が同期されていますが、コンテナ内の Tomcat のタイムゾーンは依然として 8 時間異なります。

例示する

-v /etc/localtime:/etc/localtime

起動時にこのコマンドを使用すると、サーバーとコンテナのシステム時刻のみがマウントされます。コンテナに入り、「date」コマンドを実行すると、コンテナ内の時刻は確かに変更されますが、コンテナ内で Tomcat が実行される環境の日付は実際には変更されません。
Tomcat イメージをプルすると Tomcat コンテナのタイムゾーンが固定されるため、唯一の解決策は、Tomcat イメージをコンパイルするときにローカル サーバーの時間をイメージにバインドすることです。

解決策(超簡単)

dockerFile を使用してイメージをコンパイルします。 Dockerfileは次の通りです

# ベースイメージをプルする 
tomcat:latest から 
ENV TZ=アジア/上海
実行 ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

次のコマンドを実行します

コマンド形式:
$docker build -t イメージ名 Dockerfileパス
docker build を実行します。

その後、コンテナを起動するときに、コンパイルされたTomcatを使用します。

図のように

ここに画像の説明を挿入

Dockerコンテナの移行

例示する

Docker によってデプロイされたサーバー (データベースなど) が変更され、新しいアドレスにデプロイする場合、このデータを移行する方法は多数あります。

データベースの場合:

1 MySQLのマスタースレーブレプリケーションバックアップを使用します。プロジェクト運用中は、MySQLサーバーを複数のアドレスにバックアップします。詳細については、次のアドレスを参照してください:https://zhangjy520.github.io/

2 MySQL を起動するときに、-v を使用してローカル パスとコンテナ パスをマウントし、移行時にローカル パスを新しいサーバーにコピーします。
-v /home/mysql/master/data/db-conf:/etc/mysql/ -v /home/mysql/master/data/db-data:/var/lib/mysql

3 MySQLデータベースをエクスポートし、比較的低い新しいアドレスにインポートします。

4 Docker コンテナ移行を使用します。このブログは主にdockerについてです。ここでは主にdocker migrationの使い方についてお話します。

ソリューション(超簡単)コンテナ移行

export / import

ソースサーバーで実行

docker export 83271b648212 >time.tar // コンテナをエクスポートします。ここでの数字はコンテナ ID です。tarball が取得されます。

説明: この圧縮パッケージを開くと、実際には Linux サーバーのディレクトリ構造であることがわかります。このコマンドは、コンテナーとコンテナーが実行される環境をパッケージ化します。

宛先サーバーで実行

cat time.tar | sudo docker import - time:v2 //コンテナをインポートしてイメージを取得します。コマンド/bin/bashでdocker runを使用します。
ファイルを含む以前のコンテナを取得できます

画像を開始

sudo docker run -itd --name import_test -p 8087:8080 time:v2 /bin/bash 

ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入

保存/読み込み

sudo docker 保存 web > web.tar
sudo docker load < web.tar

これで、docker のタイムゾーンの問題とデータ移行の問題に関するこの記事は終了です。docker のタイムゾーンの問題とデータ移行の問題の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerコンテナのタイムゾーン調整操作
  • Docker でタイムゾーンの問題に対処する方法
  • 作成されたDockerコンテナの時刻表示エラー/日付エラー/タイムゾーンエラー
  • docker タイムゾーンの変更と一般的な docker コマンドの詳細な説明
  • Dockerコンテナのタイムゾーンと時刻同期の問題を解決する方法
  • Docker イメージを作成してコンテナを起動する 2 つの方法の違い (要約)
  • Docker コンテナのタイムゾーン エラーの問題

<<:  Mysqlがデータベースに接続するときのホストとユーザーのマッチングルールについての簡単な説明

>>:  JavaScript の手ぶれ補正とスロットリングの詳細な説明

推薦する

nginx を使用して正規表現で指定された URL リクエストを傍受する方法

nginx サーバーnginx は、静的ファイルの処理に非常に効率的な優れた Web サーバーです。...

10 種類のモダンなレイアウトを実現するための CSS コード

序文日曜日に自宅で web.dev の 2020 3 日間ライブを視聴したところ、興味深い点がたくさ...

jsネイティブカルーセルプラグインの制作

この記事では、jsネイティブカルーセルプラグインの具体的なコードを参考までに共有します。具体的な内容...

mysql8.0.0 winx64.zip 解凍バージョンのインストールと設定のチュートリアル

この記事はmysql8.0.0 winx64.zip解凍版のインストールチュートリアルを記録していま...

MySQL共通インデックスとユニークインデックスの選択に関する詳細な分析

各人が固有の携帯電話番号で登録し、ビジネス コードによって重複する携帯電話番号が 2 つ書き込まれな...

CSS3 アドバンス LESS で星空アニメーションを実装するサンプルコード

この記事では、星空アニメーションを実現するための高度な CSS3 LESS のサンプルコードを次のよ...

Win10の明るさ調整効果を模倣するHTML+CSS+JSサンプルコード

HTML+CSS+JS で Win10 の明るさ調整効果を模倣コード <!doctypehtm...

jsはシングルクリックでテーブルを変更することを実装します

Pure jsは、参照用にワンクリックで編集可能なテーブル(トランスクリプトに似たもの)を実装してい...

React+TS を使用したシンプルな Jira プロジェクトを実装するためのベスト プラクティス

トレーニングのための一連のプロジェクト反応+ts内容は少ないですが、フックのカプセル化、ts ジェネ...

MySQL 起動エラーを解決する: エラー 2003 (HY000): 'localhost' の MySQL サーバーに接続できません (10061)

このエラーは初心者によく発生します。この記事では主に、エラー 2003 (HY000): '...

開発者とオペレーターが注目すべき Linux デバッグ ツール [推奨]

システム パフォーマンスの専門家である Brendan D. Gregg 氏は、LinuxCon N...

フラッシュプラグインを使用してPCのカメラを呼び出し、TMLページに埋め込む方法

序文この記事を書いた主な理由は、チームリーダーが、ブラウザを使用してコンピューターのカメラを呼び出し...

画像拡大鏡効果のJSバージョン

この記事では、画像拡大鏡効果を実現するためのJSの具体的なコードを参考までに紹介します。具体的な内容...

jQueryはすべてのショッピングカート機能を実装します

目次1. すべて選択2. 商品の数量を増やすか減らす3. 商品の小計を変更する4. 合計と合計額を計...

CSS の複数行テキストがオーバーフローする場合の省略記号の例

複数行のテキストがオーバーフローすると省略記号が表示されますこの記事では 2 つの方法を推奨します。...