前提・実現したいこと
Dockerイメージを元にDockerのコンテナを作成し、作成したコンテナを以下のサイトを参考にしてホストマシンのディレクトリと同期させました。
Dockerのデータ永続化関連について - Qiita
同期させるディレクトリをC:\Users(ユーザー名)\Desktop
に置き、cd Desktop
してから以下のコマンドで同期させました。同期させるディレクトリの名前はtestです。
Shell
1docker run -v /test (イメージID)
特にエラーメッセージのようなものも表示されなかったので、成功だと思い、testの中に「a.txt」を作成し、docker exec -it (コンテナID) bin/bash
でコンテナのシェルに入ってから、「a.txt」が入っているかどうか確かめるため、lsコマンドを実行しました。
Shell
1root@:(コンテナID)/# ls 2> bin dev docker-entrypoint.sh game lib media opt root sbin sys tmp var 3boot docker-entrypoint.d etc home lib64 mnt proc run srv test usr
以上のように/testディレクトリができているようなので、同期に成功していると思ったのですが、cd test
でtestディレクトリに入ってからlsコマンドを実行すると
Shell
1root@(コンテナID):/# cd test 2root@(コンテナID):/test# ls 3root@(コンテナID):/test#
のように、testフォルダ内の「a.txt」が入っていませんでした。
どうすればコンテナのシェルからtestフォルダ内の「a.txt」にアクセスすることができるでしょうか?
発生している問題・エラーメッセージ
- Dockerイメージを元にDockerのコンテナを作成し、作成したコンテナに同期させるディレクトリを
C:\Users(ユーザー名)\Desktop
に置き、cd Desktop
してから以下のコマンドで同期させた。同期させるディレクトリの名前はtestである。
Shell
1docker run -v /test (イメージID)
- testの中に「a.txt」を作成し、
docker exec -it (コンテナID) bin/bash
でコンテナのシェルに入ってから、「a.txt」が入っているかどうか確かめるため、lsコマンドを実行。
Shell
1root@:(コンテナID)/# ls 2> bin dev docker-entrypoint.sh game lib media opt root sbin sys tmp var 3boot docker-entrypoint.d etc home lib64 mnt proc run srv test usr
- 以上のように/testディレクトリができているようなので、同期に成功していると思い、
cd test
でtestディレクトリに入ってからlsコマンドを実行すると
Shell
1root@(コンテナID):/# cd test 2root@(コンテナID):/test# ls 3root@(コンテナID):/test#
のように、testフォルダ内の「a.txt」が入っていない。
- コンテナのシェルからtestフォルダ内の「a.txt」のように、コンテナと同期させたホストマシンのディレクトリに入っているファイルを、コンテナ内の他のファイルと同じように扱えるようにしたい。「コンテナ内の他のファイルと同じように扱えるようにしたい」とは、コンテナ内の他のファイルと同様にコンテナのシェルからファイル名の確認、変更、コピー、移動、削除、同期させたホストマシンのディレクトリ内にファイルを追加ができるようにしたいということである。
補足情報(FW/ツールのバージョンなど)
OS:Windows 10 Home(バージョン20H2、OSビルド19042.804)
Dockerのバージョン:Docker Desktop バージョン20.10.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/02 08:02