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 の手ぶれ補正とスロットリングの詳細な説明

推薦する

JavaScript における clientWidth、offsetWidth、scrollWidth の違い

1. コンセプトこれらはすべて Element の属性であり、要素の幅を示します。 Element....

MySQLでテーブルを接続するいくつかの方法

MySQL テーブルでの接続方法は実は非常に簡単なので、ここではその特徴を簡単にリストします。テーブ...

Vue3+el-tableは行と列の変換を実現します

目次行と列の変換トランスクリプトの構成を分析するvue3 + el-table で作成されたトランス...

CentOS 6.5 インストール mysql5.7 チュートリアル

1. 新機能MySQL 5.7 はエキサイティングなマイルストーンです。デフォルトの InnoDB ...

MySQL でトリガーを無効化および有効化するチュートリアル [推奨]

MYSQL を使用する場合、トリガーがよく使用されますが、不適切な使用によって問題が発生する場合が...

Dockerの急速な拡張の高度な方法

1. コマンド方式作成された Swarm クラスターで nginx サービスを実行し、--repli...

CSS に基づいて MaterialUI ボタン​​クリックアニメーションを実装し、それを React コンポーネントにカプセル化します。

序文フロントエンドフレームワークのヘビーユーザーとして、私はテクノロジーを選択する際にそのエコロジー...

Nginx Rewriteモジュールを使用するいくつかのシナリオ

アプリケーションシナリオ1: ドメイン名ベースのリダイレクト会社の古いドメイン名は www.accp...

vue3 タイムスタンプ変換 (フィルターを使用せずに)

vue2 では、タイムスタンプを変換するときに、通常はフィルターを使用します。vue3 以降では、...

JavaScriptはブラウザがIEかどうかを判定します

フロントエンド開発者としては、IEの落とし穴は避けて通れません。他のブラウザはいいのにIEは壊れてい...

CSSインジェクションの知識の要約

最近のブラウザでは、CSS 内で JavaScript を実行することはできなくなりました。以前は、...

MySQL 接続数を設定する方法 (接続数が多すぎる)

mysql使用中に接続数が超過していることが判明しました~~~~ [root@linux-node...

Docker で Docker0 ブリッジのデフォルトのネットワーク セグメントを変更する方法

1. 背景Docker サービスが開始されると、デフォルトで docker0 ブリッジが作成され (...

MySQLがサブクエリと結合の使用を推奨しない理由

ページ分割されたクエリを実行するには: 1. MySQL の場合、サブクエリと結合の使用は推奨されま...

Linux で Tomcat を実行するいくつかの方法の説明

Linux での Tomcat の起動とシャットダウンLinux システムでは、コマンド操作を使用し...