Dockerコンテナのタイムゾーン調整操作

Dockerコンテナのタイムゾーン調整操作

Docker コンテナのタイムゾーンがホストマシンと一致しているかどうかを確認するにはどうすればよいですか?

1. ホストマシンに入り、次のコマンドを実行します。

# ホスト時間を確認する

[root@localhost ~]# 日付

2018年6月27日水曜日 22:42:44 CST

2. コンテナに入り、次のコマンドを実行します。

# コンテナ時間を表示

root@lksjoid909090:/#日付

2018年7月27日水曜日 14:43:31 UTC

CST は (中国上海時間、東部標準時ゾーン 8) を参照します。

UTCは(協定世界時、標準時)を指します。

8 時間離れており、ホストマシンと Docker コンテナのタイムゾーンが一致していないことがわかります。

解決:

1. [イメージが生成される前に] ベースイメージは Dockerfile でタイムゾーンを設定します。

ENV TZ=アジア/上海

実行 ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

2. [イメージが生成された後 && コンテナは作成されていません] コンテナを作成して起動するとき:

# 共有ホスティング時間

docker run --name <名前> -v /etc/localtime:/etc/localtime:ro ...

3. [イメージが生成されてコンテナが起動した後] コンテナの外で、ホストマシンで変更します。

docker cp /etc/localtime [コンテナIDまたは名前]:/etc/localtime

4. [イメージが生成されコンテナが起動した後] コンテナ内で

apk tzdata を追加

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime echo "Asia/Shanghai" > /etc/timezone

追加情報:接続中に Docker コマンド エラーが発生しています: http://2F2F.2Fpipe2Fdocker_engine/v1.36/containers/json を取得: open//。

docker psを実行するとエラーが報告される

接続中にエラーが発生しました: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.36/containers/json: open //./pipe/docker_engine: 指定されたファイルが見つかりません。Windows のデフォルトのデーモン構成では、接続するには Docker クライアントを管理者特権で実行する必要があります。このエラーは、Docker デーモンが実行されていないことを示している可能性もあります。

エラーメッセージは次のとおりです。

回避策

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

docker-machine 環境デフォルト

2. 方法1:

表示されたコマンドをコピーして実行します

実行後、docker psなどのコマンドを実行すると通常通り使用できます

3. 方法2:

最後の一文だけ

REM @FOR /f "tokens=*" %i IN ('docker-machine env default') DO @%i

コマンドから REM を削除して実行します。

@FOR /f "tokens=*" %i IN ('docker-machine env default') DO @%i

実行後は、docker コマンドを通常通り使用できます。新しい cmd ウィンドウを開くたびに、最初に環境変数を設定する必要があります。

注意:方法 2 を bat スクリプトで使用する場合、FOR ステートメントを bat スクリプトに直接挿入するとエラーが発生します。コマンドの %i を %%i に変更してください。

以上がDockerコンテナのタイムゾーン調整操作の全てです。エディターが皆さんにシェアする内容です。参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。

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

<<:  JS で if 判定をスムーズに行う方法

>>:  MySQLは現在の日付と時刻を取得する関数の例の詳細な説明

推薦する

MySQL ベースのシーケンス実装方法

チームは新しいフレームを交換しました。すべての新しいビジネスでは、新しいフレームワークと新しいデータ...

権限の問題によりMySQLの設定ファイルmy.cnfを起動できない問題の解決方法

この記事では、権限の問題により MySQL 構成ファイル my.cnf を起動できない場合の関連する...

Windows Server 2016 に Oracle をインストールする方法

1. Oracle をインストールします。インターネット上には Oracle のインストール手順が多...

VMware仮想マシンにdeepin20をインストールする最も完全で詳細なプロセス

仮想マシンソフトウェア: VMware Workstationイメージ: deepin-deskto...

CSS を使用して複数の方法で等高レイアウトを実装するサンプル コード

この記事で説明する等高レイアウトでは、純粋な CSS を使用して、要素の高さを手動で設定することなく...

aタグのhref属性とonclickイベントの比較

まず、href 属性と onclick イベントの実行順序について説明します。マウスが a タグをク...

Vue2/vue3 ルーティング権限管理方法の例

1. Vueルーティングの権限制御には一般的に2つの方法がありますa. ルーティングメタ情報(メタ)...

preタグを自動的に折り返すためのサンプルコード

pre 要素は、フォーマット済みのテキストを定義します。 pre 要素で囲まれたテキストでは、通常、...

SeataがMySQL 8バージョンを使用できない問題を解決する方法

考えられる理由: Seata が MySQL 8 をサポートしない主な理由は、接続ドライバーがバージ...

JavaScriptとTypeScriptの関係

目次1. JavaScript とは何ですか? 2. JavaScript は何に使用されますか? ...

Linux での MySQL のインストールに関する詳細なチュートリアル

1. MySQLサービスをシャットダウンする# service mysqld stop 2. rpm...

DockerコンテナのライフサイクルアーキテクチャとVMとの違いについて詳しく説明します。

コンテナのライフサイクルコンテナランタイムのライフサイクルコンテナは、分離特性を持つプロセスのセット...

VScode設定のリモートデバッグLinuxプログラムの問題を解決する

VScode リモートデバッグ Linux プログラムの問題について見てみましょう。具体的な内容は以...

MySQL ビューの原理と基本操作例

この記事では、例を使用して、MySQL ビューの原理と基本操作を説明します。ご参考までに、詳細は以下...

PHP+nginx サービス 500 502 エラーのトラブルシューティングのアイデアの詳細な説明

概要オンラインサービスへのアクセス中に 500 または 502 エラーが発生した場合、緊急処理とトラ...