वॉल्यूम पर डॉकर दस्तावेज़ पढ़ने के बाद और docker-compose, मेरा मानना ​​था कि यह न्यूनतम उदाहरण स्थानीय निर्देशिका को माउंट करने के लिए काम करेगा एक मात्रा:

docky/Dockerfile

FROM alpine
ENTRYPOINT ["ash"]

docky/docker-compose.yml

version: '3'
services:
  server:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ./bindme:/bound

लेकिन वॉल्यूम माउंट नहीं है:

$ docker-compose build
Building server
Step 1/2 : FROM alpine
 ---> b14afc6dfb98
Step 2/2 : ENTRYPOINT ["ash"]
 ---> Using cache
 ---> 68fcd94074c9
Successfully built 68fcd94074c9
Successfully tagged docky_server:latest

$ docker run -it 68fcd94074c9
/ # ls /bound
ls: /bound: No such file or directory

$ docker inspect 68fcd94074c9 | grep -e Volumes -e Binds -e Mounts
            "Volumes": null,
            "Volumes": null,

निर्देशिका ./bindme मौजूद है और इसमें एक फ़ाइल है। मैं क्या खो रहा/गलत कर रहा हूँ?

  • डॉकर संस्करण 20.10.0, 7287ab3 . का निर्माण करें
  • डॉकर-कंपोज़ संस्करण 1.25.0
0
scry 12 पद 2020, 19:33

2 जवाब

सबसे बढ़िया उत्तर

शुरुआती गलती: मैं स्टडीन को TTY के रूप में खुला रखने के विकल्पों के साथ कंपोज़ नहीं चला रहा था, इसलिए कंटेनर तुरंत बाहर निकल रहा था, और जो हो रहा था उसे मैंने गलत तरीके से पढ़ा। समाधान सिर्फ जोड़ना था:

  server:
    stdin_open: true
    tty: true
0
scry 13 पद 2020, 19:19

आपने अपनी छवि बनाने के लिए डॉकर कंपोज़ का उपयोग किया है, लेकिन आप इसे डॉकर कमांड के साथ चलाते हैं, इसलिए आपके कंटेनर कॉन्फ़िगरेशन का उपयोग रनटाइम के लिए बिल्कुल नहीं किया जाता है।

अपने डॉकर कंपोज़ कॉन्फ़िगरेशन का उपयोग करके अपने कंटेनर लॉन्च करने के लिए docker-compose up -d का उपयोग करें। तब आपके पास वॉल्यूम ठीक से माउंट होंगे :)!

0
Kern 12 पद 2020, 19:49