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 ソース コード分析
著者とテクノロジーや仕事生活について交流することを歓迎します