はじめに
dockerのコンテナからファイルをローカルに持ってきたい場面があった。そこで調査したことをメモとして残しておく。
手順
- docker psコマンドを使用し、ファイルをコピーしたいdockerコンテナを調べる
- docker cpコマンドを使用し、コンテナからホストにファイルをコピーする
実際にhttpdコンテナの設定ファイルであるhttpd.confをコンテナからローカル(ホスト)にコピーする手順を例として示す。
1.ファイルをコピーしたいdockerコンテナを調べる。
以下のコマンドを実行し、コンテナIDを調べる。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1c8caa876b98 httpd:2-alpine "httpd-foreground" 24 hours ago Up 24 hours 0.0.0.0:8080->80/tcp fluentd_docker_httpd_1
上記コマンドより、コンテナIDが1c8caa876b98
とわかった。
2. コンテナからホストにファイルをコピーする
以下のコマンドを実行し、ファイルをコピー
//docker cp [コンテナID]:[コピーしたいファイルパス] [ローカルにコピーしたいパス]
$ docker cp 1c8caa876b98:/usr/local/apache2/conf/httpd.conf conf/
$ ls conf/
./ ../ httpd.conf
コピーできた!
まとめ
- dockerコンテナからホストにコピーする
- docker cpコマンドを使用する
docker cp [コンテナID]:[コピーしたいファイルパス] [ローカルにコピーしたいパス]