問題
docker-in-dockerを行っており、Ubuntuコンテナを起動した後に、中でPythonコンテナをdocker-compose.ymlで起動するのですが、なぜかファイルがバインドされません。
Docker Desktop for Windowsを利用して以下のようなファイルで行っています。
root/ ┣ Dockerfile (Ubuntu) ┣ docker-compose.yml (Ubuntu) ┣ opt ┣ Dockerfile (Python) ┣ docker-compose.yml (Python) ┣ opt ┣ test.txt
Dockerfile
(Ubuntu)
Dockerfile
1FROM docker:20.10 as docker 2FROM ubuntu:20.04 3 4RUN apt-get -y update && \ 5 apt-get -y upgrade 6 7RUN apt-get install -y \ 8 docker-compose 9 10# ホストのdocker daemon共有 11COPY --from=docker /usr/local/bin/docker /usr/local/bin/
docker-compose.yml
(Ubuntu)
docker
1 version: '3' 2services: 3 python3: 4 restart: always 5 build: . 6 container_name: 'ubuntu' 7 working_dir: '/root/opt' 8 tty: true 9 volumes: 10 - ./opt:/root/opt 11 - /var/run/docker.sock:/var/run/docker.sock
Dockerfile
(Python)
Dockerfile
1FROM python:3 2USER root 3 4RUN apt-get update 5RUN apt-get -y install locales && \ 6 localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 7ENV LANG ja_JP.UTF-8 8ENV LANGUAGE ja_JP:ja 9ENV LC_ALL ja_JP.UTF-8 10ENV TZ JST-9 11ENV TERM xterm 12 13RUN apt-get install -y vim less 14RUN pip install --upgrade pip 15RUN pip install --upgrade setuptools
docker-compose.yml
(Python)
docker
1version: '3' 2services: 3 python3: 4 restart: always 5 build: . 6 container_name: 'python3' 7 working_dir: '/root/opt' 8 tty: true 9 volumes: 10 - ./opt/:/root/opt
test.txt
test.txt
1hello world
UbuntuコンテナはDocker Desktopのソケットを共有してDockerを利用しています。
まずUbuntuコンテナに入ります。
$ docker-compose up -d $ docker exec -it ubuntu bash
そのあと、docker-in-dockerでPythonコンテナを立ち上げます。
$ docker-compose up -d $ docker exec -it python3 bash $ ls # test.txtがない
そして、入った中で本来であればopt/
をボリュームで設定しているので、test.txt
が共有されるはずなのですがされていません。
Ubuntuコンテナではボリュームの設定は反映されています。
なぜかコンテナの中ではボリュームを設定してもフォルダだけは共有されますが、中のファイルがありません。
以前やったときにはうまく共有されていたきがします。
共有が確認された後に行ったのが、minicondのインストールでした。
これでpathを環境変数に追加したりしたのですが、影響はありますか?
どうして共有されないのでしょうか。教えていただきたいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/29 03:24
2021/08/29 03:33
2021/08/29 03:36
2021/08/29 03:36
2021/08/29 03:40
2021/08/29 04:04