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

推薦する

CSS3を使って歌詞進行テキストカラー塗りつぶし変更の動的効果を実装するアイデアの詳細な説明

音楽を再生すると、曲が進むにつれて歌詞が徐々に色づきます。色は単語ごとに変わるのではなく、左から右へ...

Vue.js の watch メソッドと computed メソッドの違いの詳細な例

目次序文導入1. 作用機序2. 自然から3. 時計と計算の比較4. メソッドはデータロジックの関係を...

vue3 コンポーネントでの v-model の使用と詳細な説明

目次v-model 入力で双方向バインディングデータを使用するコンポーネント内の v-model他の...

MySQL 8.0.25 解凍版のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0.25解凍版のインストールチュートリアル、参考までに具体的な内容は以下のとおりです...

純粋な CSS で DIV サスペンションを実装するサンプル コード (固定位置)

DIV フローティング効果 (固定位置) は CSS のみで実装されており、IE8、360、Fir...

JavaScript クロージャの詳細

目次1. クロージャとは何ですか? 2. 閉鎖の役割序文: JavaScript部分ではクロージャが...

MySQL の挿入ステートメントの使用実体験

目次1. 挿入のいくつかの構文1-1. 通常の挿入文1-2. 挿入または更新1-3. 挿入または交換...

Docker JVM メモリ使用量の表示

1. Docker コンテナのホスト マシンに入り、指定されたイメージを実行しているコンテナ ID ...

MySQL マスタースレーブの原理と構成の詳細

MySQLのマスタースレーブ構成と原理、参考までに具体的な内容は以下のとおりです。 1. 環境の選択...

FlashFXP FTP クライアント ソフトウェア登録クラッキング方法

FlashFXPのダウンロードアドレスは、https://www.jb51.net/softs/95...

CSS マルチレベルメニュー実装コード

これは、Web ページを Windows のスタート メニューなどのデスクトップ プログラムのように...

Ubuntu 18.04 Server バージョンのインストールと使用方法 (画像とテキスト)

1 システムのインストール手順OSバージョン:1804イメージのダウンロード: http://cd...

overflow:hidden の役割の詳細な説明 (オーバーフローの非表示、フロートのクリア、マージンの崩壊の解決)

1. オーバーフロー:非表示 オーバーフロー非表示要素に overflow:hidden が設定さ...

ウェブデザインのためのロイヤルブルーのカラーマッチング入門

古典的な色の組み合わせは力と権威を伝え、強いロイヤルブルーはあらゆる古典的な色の組み合わせの中心的な...