1. ホーム
  2. docker

[解決済み] Dockerコンテナにシェルでアクセスした後、ファイルを編集するにはどうすればよいですか?

2022-03-14 18:22:30

質問

を使ってDockerコンテナにshellすることに成功しました。

docker exec -i -t 69f1711a205e bash

さて、私はファイルを編集する必要がありますが、内部にはエディタがありません。

root@69f1711a205e:/# nano
bash: nano: command not found
root@69f1711a205e:/# pico
bash: pico: command not found
root@69f1711a205e:/# vi
bash: vi: command not found
root@69f1711a205e:/# vim
bash: vim: command not found
root@69f1711a205e:/# emacs
bash: emacs: command not found
root@69f1711a205e:/#

ファイルを編集するには?

解決するには?

コメントのように、デフォルトのエディタが設定されていない - 不思議ですね。 $EDITOR 環境変数は空です。でコンテナにログインできます。

docker exec -it <container> bash

そして実行。

apt-get update
apt-get install vim

または、以下のDockerfileを使用します。

FROM  confluent/postgres-bw:0.1

RUN ["apt-get", "update"]
RUN ["apt-get", "install", "-y", "vim"]

Dockerイメージは必要最低限に切り詰められて配信されるため、出荷時のコンテナにはエディタがインストールされていません。そのため、手動でインストールする必要があるのです。

EDIT

また、私の ポスト を紹介しました。