【Docker】Dockerでファイルを変更する方法

1. Docker でファイルを変更する方法

おそらく、インストールした Docker コンテナには vi や vim などの編集コマンドが含まれていない可能性があります。もちろんインストールすることはできませんが、新しいコンテナを作成したり、編集要件が必要になったりするたびにインストールするのは非常に面倒です。一般的な方法は 3 つあります。

  • エコーコマンドモード

  • docker cpファイルを前後にコピーする方法を使用する

  • ホストとコンテナをマウントする方法

各方式にはそれぞれ利点があり、echo コマンドはシンプルで便利、docker cp 方式は汎用性が高く、マウント方式は永続化が容易です。

方法1、echoコマンドによる方法

利点: 1. 各コンテナにそれが備わっている 2. 他の方法と比較して、十分に簡単で便利です。

ステップ:

  • コンテナに入る
docker exec -it lpg-promtail-1 /bin/bash
  • cat を使用してソース コンテンツを表示する
cat /etc/promtail/config.yml
  • 新しいコンテンツをコピー編集する
  • 新しいコンテンツをエコーし​​て上書きする
# 把编辑后的内容输出了...处开始覆写
echo '...' > /etc/promtail/config.yml

方法 2、ファイルを前後にコピーする

  • コンテナ内のファイルをホストにコピーする
# docker cp 源 目标
docker cp elasticsearch_8.7.1:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch.yml
  • ホスト上のファイルを変更する

  • ホスト上のファイルをコンテナにコピーして戻し、コンテナ内の元のファイルを上書きします。

# 只要把docker cp 的源和目标反过来就行了
docker cp elasticsearch.yml elasticsearch_8.7.1:/usr/share/elasticsearch/config/elasticsearch.yml
  • ファイルを変更した後にコンテナを再起動する必要がある場合は、必ずコンテナを再起動してください。

方法3、取り付け方法

コマンドを使用してホスト上のファイルをコンテナにマウントし-v 、コンテナの起動時にそれらを指定できます。次に例を示します。

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root  \
-d mysql:5.7

上記は、ホストの/mydata/mysql/conf フォルダーをコンテナーvar/log/mysqlディレクトリにマウントします。

この方法の最大の利点は、コンテナーを削除した後もファイルがホストにまだ存在することです。次回新しいコンテナーを起動するときに、環境を再構成してデータを復元することなく、引き続きコンテナーを使用できる可能性があります。これは特に重要です。 mysql などの永続性を必要とするコンテナに適していますDocker における MySQL の永続性、Docker がデータを永続化する方法

2. 参考文献

私の記事: 「Docker image.md のバージョンを確認する方法」

私の記事:「Dockerが国内イメージソース.mdを設定する」

私の記事: 「Docker クイック スタート実践チュートリアル.md」

私の記事: 「Docker は MySQL、Redis、RabbitMQ、Elasticsearch、Nacos およびその他の共通サービスをインストールします。md」

私の記事: 「Docker が Nacos service.md をインストールする」

私の記事: 「Docker でファイル .md を変更する方法」

私の記事:「Dockerコンテナ間の接続または通信方法.md」

私の記事: 「Docker.md によってインストールされた MySQL でデータベース データを永続化する方法」

私の記事: 「Docker プライベート リポジトリ.md の作成」

私の記事: 「docker-maven-plugin プラグインを使用してプッシュ イメージを構築し、プライベート ウェアハウス.md に公開する」

私の記事: 「Elasticsearch.md のインストール後に Docker がポート 9200 にアクセスできない問題を解決する」


ポータル: Nanny スタイルの Spring5 ソース コード分析

著者とテクノロジーや仕事生活について交流することを歓迎します

著者に連絡する

おすすめ

転載: blog.csdn.net/yuchangyuan5237/article/details/131799778