【Docker】dockerのコンテナからホストにファイルをコピーする


はじめに

dockerのコンテナからファイルをローカルに持ってきたい場面があった。そこで調査したことをメモとして残しておく。

手順

  1. docker psコマンドを使用し、ファイルをコピーしたいdockerコンテナを調べる
  2. 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]:[コピーしたいファイルパス] [ローカルにコピーしたいパス]