Docker ファイルの保存パス、コンテナの起動コマンド操作の取得

Docker ファイルの保存パス、コンテナの起動コマンド操作の取得

コンテナはすでに作成されていますが、その起動パラメータ(データがマウントされる場所)を知る方法

#コンテナが次のコマンドで起動されるとします docker run -d --name mysql\
-p 3306:3306\
-e MYSQL_ROOT_PASSWORD=123456\
--restart=常に\
mysql:5.5 --character-set-server=utf8

#コンテナ名 [root@jenkins ~] から起動パラメータを取得する方法# docker examine mysql_cdh
[
  {
    「ID」: 「fbc3fba81b57bc5b5871746098b5f1f7ef0ed7716a786584a5effbb88ba156e6」、
    「作成日」: 「2019-09-25T01:43:37.720505875Z」、
    「パス」: 「docker-entrypoint.sh」、
    「引数」: [
      "--文字セットサーバー=utf8"
    ]、

 "ホスト構成": {
      「バインド」: [
        「mysql-データ:/var/lib/mysql」
      ]、
      "コンテナIDファイル": "",
      「ログ構成」: {
        "タイプ": "json-file",
        「設定」: {}
      },
      "ネットワークモード": "デフォルト",
      「ポートバインディング」: {
        "3306/tcp": [{ "ホストIP": "", "ホストポート": "3306"}
        ]
      },
      「再起動ポリシー」: {
        「名前」: 「常に」
        「最大再試行回数」: 0
      },
  
「マウント」: [
      {
        「タイプ」:「ボリューム」、
        "名前": "mysql-data",
        「ソース」: 「/var/lib/docker/volumes/mysql-data/_data」、
        「宛先」: 「/var/lib/mysql」、
        "ドライバー": "ローカル",
        "モード": "z",
        「RW」:真、
        「伝播」: 「」
      }
    ]、

1. イメージレイヤー: ファイル保存パス

[root@master ~]# docker イメージの検査 nginx | ​​tail -n 22
    "グラフドライバー": {
      "データ": {
        "下位ディレクトリ": "/var/lib/docker/overlay2/bf20cf788cc053f00ff1467525d50e19bd1cf07a2167f72511bdfcb28918a472/diff:/var/lib/docker/overlay2/317d80bb7ae58ed288be9ebd84aeb5b4b3a1c06f3211f5d1f32d89b629d1876e/diff",
        "マージされたディレクトリ": "/var/lib/docker/overlay2/7782d0eb292fdc8bbd73bf9bae2d65468e8aba0bcd6baed55ac348618b80ae16/マージ済み",
        「上位ディレクトリ」: 「/var/lib/docker/overlay2/7782d0eb292fdc8bbd73bf9bae2d65468e8aba0bcd6baed55ac348618b80ae16/diff」、
        "作業ディレクトリ": "/var/lib/docker/overlay2/7782d0eb292fdc8bbd73bf9bae2d65468e8aba0bcd6baed55ac348618b80ae16/work"
      },
      「名前」: 「オーバーレイ2」
    },

2. コンテナ層: ファイル保存パス

#1、コンテナを起動します [root@master ~]# docker run -d --name nginx2 nginx
a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8

#2、コンテナIDを取得する
[root@master ~]# docker examine nginx2 | grep -i id 
[root@master ~]# docker examine nginx2 | grep -i id 
    「ID」: 「a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8」、
      「ピッド」: 2069,
    「ExecID」: null、
      "コンテナIDファイル": "",
  
#コンテナの一時ファイルを表示します - 作成されるたびにランダムに生成されるファイルです (コンテナ レイヤー)
[root@master ~]# docker examine nginx2 | grep -i パス
    "パス": "nginx",
    "ResolveConfPath": "/var/lib/docker/containers/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8/resolv.conf",
    "ホスト名パス": "/var/lib/docker/containers/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8/ホスト名",
    "ホストパス": "/var/lib/docker/containers/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8/hosts",
    "ログパス": "/var/lib/docker/containers/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8/a9c9f31cdccf13c3385f3de33443325d2e14d69458e6d679e54c8cf9e5ff24c8-json.log",
 
#コンテナIDを使用して、コンテナデータが保存されているディレクトリを見つけます: /var/lib/docker/overlay2/containerid
######
#上記の「イメージ レイヤー: ファイル ストレージ パス」と比較すると、コンテナーが LowerDir マウント方法を使用してイメージ レイヤー ファイルをマップしていることがわかります。######
[root@master ~]# docker examine nginx2 | grep -i dir
        "Lowerdir": "/var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b4555596cb921c8021fbf9571f330c0599b-init/diff:/lib/lib/docker/in docker/in overlay2/7882pdtedpd0fdtedpdtedpdtedpd0fdted BAE2D65468E8ABA0BA0BCD6BAED55AC348618B80AE16/diff:/var/lib/docker/overlay2/bf20cf788cc053f00ff1467525d50e19bd1cf07a2167f7272511bdffdff28918a18a /docker/overlay2/317d80bb7ae58ed288be9ebd84aeb5b4b3a1c06f3211f5d1f32d89b629d1876e/diff "、
        "マージされたディレクトリ": "/var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b/マージ済み",
        「上位ディレクトリ」: 「/var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b/diff」、
        "作業ディレクトリ": "/var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b/work"

明後日コンテナポートを変更する

コンテナレイヤーファイルから設定ファイルhostconfig.jsonを探し、コンテナによってマップされたポートを変更します。

[root@docker d93185e3a0....2e544ccfa]# pwd
/var/lib/docker/コンテナ/d93185e3a0....2e544ccfa
[root@docker d93185e3a0....2e544ccfa]# cat hostconfig.json 
{"Binds":["/dockersuperset:/home/superset"],"ContainerIDFile":"",
"LogConfig":{"Type":"json-file","Config":{}},"NetworkMode":"default",
"PortBindings":{"8088/tcp":[{"HostIp":"","HostPort":"8099"}]}......

3. ミラーコンテナのファイル保存ディレクトリに入り、設定ファイルを変更します。

# ミラーコンテナのファイル保存ディレクトリに入り、設定ファイルを変更します [root@master ~]# cd /var/lib/docker/overlay2/d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b
[ルート@マスター d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls
差分リンク 下部のマージされた作業

[root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls diff /run/
nginx.pid
[root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls diff /var/cache/nginx/
クライアント temp fastcgi_temp プロキシ temp scgi_temp uwsgi_temp

[root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls マージ済み/
bin/ dev/ etc/ lib/ media/ opt/ root/ sbin/ sys/ usr/    
ブート/ .dockerenv ホーム/ lib64/ mnt/ proc/ 実行/ srv/ tmp/ var/    

[root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ls merged/etc/nginx/
conf.d fastcgi_params koi-utf koi-win mime.types モジュール nginx.conf scgi_params uwsgi_params win-utf

[root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# ヘッドがマージされました/etc/nginx/nginx.conf 
ユーザー nginx;
ワーカープロセス 1;

#ここで設定ファイルを変更し、user nginx; worker_process 1; の2行のセミコロンを削除して、コンテナ内の設定が変更されたかどうかを確認します [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# head merged/etc/nginx/nginx.conf -n 3
ユーザー nginx
ワーカープロセス 1

#コンテナにログインして変更された構成を表示します。有効かどうかを確認します [root@master d37ff828e63081be6fcfefc73891e7b455596cb921c8021fbf9571f330c0599b]# docker exec -it nginx2 bash
root@a9c9f31cdccf:/# ヘッド /etc/nginx/nginx.conf -n 3
ユーザー nginx
ワーカープロセス 1

4. デフォルトのストレージパスを変更する

a、/var/lib/dockerディレクトリを再構築します。#新しいストレージパスにデータをバックアップします。service docker stop
mkdir /docker.bak
mv /var/lib/docker/* /docker.bak

#ソフトリンクを作成する mkdir /home/docker-data
mv /docker.bak/* /home/docker-data/ && rmdir /docker.bak
: := docker-data は、docker コマンドで定義されます。
b. 設定を変更する vi /usr/lib/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd --graph /新しいパス/docker 

#設定ファイルをリロード systemctl daemon-reload 
#Dockerを再起動 
systemctl docker.service を再起動します。

追加知識: Dockerはデータ保存ディレクトリを指定します

Docker はストレージ ディレクトリを指定します (元のパラメーター --graph は無効です)。

方法1

1. Docker設定ファイルで/etc/docker/daemon.jsonを設定します。

daemon.json ファイルに内容がない場合、次のコマンドが追加されます。コンテンツがある場合は、

cat << EOF >>/etc/docker/daemon.json
{
  「データルート」: 「/mnt/docker-data」
}
終了
systemctl dockerを再起動します

方法2

2. 起動パラメータを設定する

vim /usr/lib/systemd/system/docker.service

EXECStart の後に以下を追加します。

ExecStart=/usr/bin/dockerd --data-root='/home/docker'
systemctlデーモンリロード
systemctl dockerを再起動します

上記のdockerファイル保存パスとコンテナ起動コマンド操作の取得に関する記事は、エディターが皆さんと共有するすべての内容です。参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Dockerがコンテナを起動するたびに、IPとホストが指定した操作が実行されます。
  • シェルスクリプトによるDockerコンテナの起動順序の制御の詳細な説明
  • Dockerは起動されていないコンテナの設定情報を変更します
  • Dockerコンテナ内で2つのプロセスを開始するときのDockerfile実装コード
  • Dockerコンテナが起動直後に終了する問題を解決する
  • Docker はすべてのコンテナをバッチ起動して閉じます

<<:  XHTML と CSS の Web ページ作成の問題に対する解決策

>>:  MySQLのトランザクション特性とレベル原則の分析

推薦する

vue+elementuiは、共有箇条書きボックスの追加と変更の完全なコードを実装します。

目次1. 新しいII. 変更element-ui は、Ele.me のフロントエンド チームが開発者...

Vue.js スタイルレイアウト Flutter ビジネス開発共通スキル

シャドウスタイルにおけるフラッターとCSSの対応UIによって指定されたCSSスタイル 幅: 75px...

CSS3 を使用した背景ぼかし効果の 3 つの例

導入から始めず、いきなり本題に入りましょう。通常の背景ぼかし効果は次のとおりです。 プロパティを使用...

最新の超詳細な VMware 仮想マシンのダウンロードとインストールのグラフィック チュートリアル

目次1. 仮想マシンをダウンロードする2. 仮想マシンのインストールVMware のダウンロードとイ...

Centos7.x での Nginx のインストール、SSL 設定、一般的なコマンドの詳細な説明

1. インストールyumを使用してインストールする ##yum nginx を自動的にインストールす...

IE6かどうかを判定する最短JS(IEの書き方)

ブラウザが IE のどのバージョンであるかを検出するためによく使用される JavaScript コー...

Docker execは複数のコマンドを実行します

docker exec コマンドは、実行中のコンテナ内でコマンドを実行できます。 docker ex...

MySQL 8.0.24 バージョンのインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 8.0.24バージョンのインストールと設定方法を記録し、皆さんと共有しますM...

HTML およびプラグイン アプリケーションにおけるデータ カスタム属性の使用の概要

HTML にはデータ属性が含まれていることがよくあります。これらは HTML5 のカスタム属性です。...

Vue+Openlayer で select を使用して要素を選択する実装コード

効果画像: 実装コード: <テンプレート> <div id="map&q...

WeChat パブリック アカウントの録音ファイルを再生して保存します (amr ファイルを mp3 に変換)

目次オーディオトランスコーディングツール原理JAVE プロジェクトの問題このプロジェクトの特徴拡張機...

Doubanウェブサイトのウェブサイトコンテンツに小さな変更を加える方法

<br />読みやすさはウェブサイトにとって非常に重要な部分であり、ウェブサイトの核心と...

MySQL 5.7.18 無料インストールバージョンの設定チュートリアル

MySQL 5.7.18 無料インストール版のインストールチュートリアルMySQL は現在、世界で最...

React Native JSIはRNとネイティブ通信のサンプルコードを実装します

目次JSIとはJSIの違いiOS で JSI を使用するiOS 設定RN側の構成jsはパラメータ付き...

Navicat Premium が MySQL 8.0 に接続してエラー「1251」を報告する問題を解決する方法の分析

長い間何もしていなかった人は、努力をすると一生懸命働いていると思うようになります。 1. 問題Nav...