質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

解決済

コンテナへファイルをコピーしてもdocker-compose up -dするとファイルが消えてしまう

skmt33
skmt33

総合スコア8

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

1回答

0評価

0クリップ

197閲覧

投稿2022/04/16 02:10

実現したいこと

docker-compose up -dを実行した際に、あるファイル(以下の例ではsamplefile.txt)をコンテナへコピーしたいです。
フォルダ構成は以下です。

[root@centos7 docker]# ls Dockerfile docker-compose.yml samplefile.txt

Dockerfileは以下のように作成しました。

FROM ubuntu:20.04 ENV TZ=Asia/Tokyo RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone RUN apt-get update && apt-get install -y \ python3.9 \ python3-pip ENV PATH /usr/bin/python3.9:$PATH RUN pip install --upgrade pip RUN pip install notebook COPY samplefile.txt /sampledir/ WORKDIR / CMD ["jupyter", "notebook", "--ip=0.0.0.0", "--allow-root"]

docker-compose.ymlファイルは以下のように作成しました。

version: '3' services: test01: build: context: ./ ports: - '8888:8888' volumes: - './samplevol:/sampledir' tty: true stdin_open: true

上記の環境でdocker-compose up -dを実行して環境を構築した後、ブラウザから<IPアドレス>:8888にアクセス※しました。

※docker psでコンテナIDを確認後、docker logs <コンテナID>を実行し、ログ情報の中からアクセストークンを取得してログイン。

発生している問題・エラーメッセージ

ブラウザから<IPアドレス>:8888へアクセスしまいたが、sampledirフォルダにはsamplefile.txtが存在しませんでした。
こちらの記事を読みますと、docker-compose.ymlの中で'./samplevol:/sampledir'としているために上書きされて見えなくなっているとのことでした。

今回のようにファイルをコンテナへコピーし、また、同時にvolumeもマウントさせたいという時はどのようにすればいいでしょうか。

補足情報(FW/ツールのバージョンなど)

[root@centos7 docker]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

[root@centos7 docker]# docker -v
Docker version 20.10.11, build dea9396

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

hoshi-takanori

2022/04/16 02:20

マウントされる samplevol に samplefile.txt を置けば良いのでは…。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです