質問: dockerにローカルディレクトリに書き込むにはどうすればよいですか? dockerを使用してセキレイ(django拡張機能、 http://wagtail.io/ )サイト)をセットアップしようとしていますが、機能しているようですが、しかし、私が知る限り、dockerの腸のどこかにサイトが隠れており、実際に作業することはできません。私のディレクトリは次のように設定されています。dir |- docker-compose.yml |- web |- dockerfile |- requirements.txt 私のdocker-compose.ymlversion: '2' services: db: restart: always image: postgres web: build: ./web command: python3 manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - "8000:8000" depends_on: - db restart: always 私のdockerfile:from python:3.5 maintainer run apt-get update -y env pythonbuffered 1 run mkdir /code workdir /code add requirements.txt /code/ run pip3 install -r requirements.txt add . /code/ そして私がそれを実行すると...$docker-compose run web wagtail start site . building web step 1 : from python:3.5 ---> 64869b3b2083 step 2 : maintainer ---> using cache ---> 2a539247021e step 3 : run apt-get update -y ---> using cache ---> 6d1094098071 step 4 : env pythonbuffered 1 ---> using cache ---> 12a153c417cd step 5 : run mkdir /code ---> using cache ---> 4cc21041c1c8 step 6 : workdir /code ---> using cache ---> eaca96927442 step 7 : add requirements.txt /code/ ---> using cache ---> 2f1977d72542 step 8 : run pip3 install -r requirements.txt ---> using cache ---> a73e7640aa35 step 9 : add . /code/ ---> 31bd3c0432cd removing intermediate container 66e4fa5b074f successfully built 31bd3c0432cd creating a wagtail project called site commanderror: /code/requirements.txt already exists, overlaying a project or app into an existing directory won't replace conflicting files (初めて実行したときは、完全に「機能」しました。)作成されたこれらの神秘的なファイルはどこにあり、それらをクリアして、実際に表示/編集できるディレクトリで機能させるにはどうすればよいですか?編集:このアプローチは、dockerのドキュメントのdjangoの例( https://docs.docker.com/compose/django/ ))に基づいています。その例(ファイルを逐語的に使用)と私は同じ問題を抱えています:$ docker-compose run web django-admin.py startproject composeexample . creating network "dockerdjangotest_default" with the default driver creating dockerdjangotest_db_1 building web step 1 : from python:2.7 2.7: pulling from library/python efd26ecc9548: already exists a3ed95caeb02: pull complete d1784d73276e: already exists 72e581645fc3: already exists 9709ddcc4d24: already exists 2d600f0ec235: already exists de1491f1bbd4: pull complete 4becc568d2ff: pull complete digest: sha256:ee46fc8b96ed0d1f1af71d0859ce6ba5f9be3b587f5a608193599b48d0a157c2 status: downloaded newer image for python:2.7 ---> a3b29970a425 step 2 : env pythonunbuffered 1 ---> running in 35a6721182b3 ---> d8424740fce4 removing intermediate container 35a6721182b3 step 3 : run mkdir /code ---> running in d1c7e92821ab ---> 1c0b1da9e9d3 removing intermediate container d1c7e92821ab step 4 : workdir /code ---> running in 120bb2d0e5dd ---> 72725e994f0e removing intermediate container 120bb2d0e5dd step 5 : add requirements.txt /code/ ---> ef891d60690b removing intermediate container 862a5e314f2f step 6 : run pip install -r requirements.txt ---> running in f51b2bc2ca48 collecting django (from -r requirements.txt (line 1)) downloading django-1.9.5-py2.py3-none-any.whl (6.6mb) collecting psycopg2 (from -r requirements.txt (line 2)) downloading psycopg2-2.6.1.tar.gz (371kb) building wheels for collected packages: psycopg2 running setup.py bdist_wheel for psycopg2: started running setup.py bdist_wheel for psycopg2: finished with status 'done' stored in directory: /root/.cache/pip/wheels/e2/9a/5e/7b620848bbc7cfb9084aafea077be11618c2b5067bd532f329 successfully built psycopg2 installing collected packages: django, psycopg2 successfully installed django-1.9.5 psycopg2-2.6.1 ---> 349d20d9823e removing intermediate container f51b2bc2ca48 step 7 : add . /code/ ---> 38190d0f4c65 removing intermediate container 0da1169b5cfa successfully built 38190d0f4c65 ただし、composeexampleディレクトリは作成されていません(ドキュメントによると、このディレクトリは現在どのように表示されるかとは異なります)。$ ls -l total 24 -rw-r--r-- 1 user wheel 146 apr 17 17:50 dockerfile -rw-r--r-- 1 user wheel 209 apr 17 17:51 docker-compose.yml -rw-r--r-- 1 user wheel 16 apr 17 17:50 requirements.txt しかし、dockerはまだすべてがうまくいったと確信しているようです。だからそれらのファイルは...どこかにありますか?$ docker-compose run web django-admin.py startproject composeexample . commanderror: /code/manage.py already exists, overlaying a project or app into an existing directory won't replace conflicting files
回答: これらのファイルにアクセスするには、次のいずれかが必要です。 ホストを介してファイルにアクセスできるように、ボリュームのあるコンテナーを起動します。現時点でadd命令を使用したdockerfileは、ローカルファイルのみをコンテナにプッシュします https://docs.docker.com/engine/reference/builder/#add ただし、コンテナファイルホストには表示されません。 docker-compose.ymlファイルにvolumeオプションを追加します https://docs.docker.com/compose/compose-file/#volumes-volume-driver コンテナにインタラクティブに接続し、永続的に必要ない場合はそこでファイルを参照します。 docker exec -it <containeridorname> bash