मैं macOS पर डॉकर का उपयोग शुरू कर रहा हूं, और आरंभ करें मार्गदर्शिका का भाग 4. मैंने दो अतिरिक्त वर्चुअल मशीनें (myvm1 और myvm2) बनाई हैं, myvm1 को झुंड प्रबंधक के रूप में और myvm2 को एक कार्यकर्ता के रूप में सेट किया है। फिर मैंने ट्यूटोरियल के भाग 3 से docker-compose.yml का उपयोग करते हुए 5 फ्लास्क वेब सर्वर के साथ एक स्टैक तैनात किया है। प्रक्रियाएं ठीक शुरू होती हैं, और दो मशीनों के बीच वितरित की जाती हैं, लेकिन मैं ब्राउज़र का उपयोग करके होस्ट से उन तक पहुंचने में सक्षम नहीं हूं।

डॉकर कंटेनर चलाने वाली वर्चुअल मशीनों के मेजबान से झुंड में वेब सर्वर तक पहुंचने में सक्षम होने के लिए मुझे पोर्ट फ़ॉरवर्डिंग/नेटवर्क को कैसे कॉन्फ़िगर करना चाहिए?

निम्नलिखित आदेशों की एक सूची है जिसे मैंने चलाया है, कुछ परिणामी आउटपुट के साथ।

$ docker-machine create --driver virtualbox myvm1
$ docker-machine create --driver virtualbox myvm2

$ docker-machine ls
NAME    ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER     ERRORS
myvm1   -        virtualbox   Running   tcp://192.168.99.100:2376           v18.09.0
myvm2   -        virtualbox   Running   tcp://192.168.99.101:2376           v18.09.0

$ docker-machine ssh myvm1 "docker swarm init --advertise-addr 192.168.99.100"
$ docker-machine ssh myvm2 "docker swarm join --token <my-token-inserted-here> 192.168.99.100:2377"

$ eval $(docker-machine env myvm1)
$ docker-machine ls
NAME    ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER     ERRORS
myvm1   *        virtualbox   Running   tcp://192.168.99.100:2376           v18.09.0
myvm2   -        virtualbox   Running   tcp://192.168.99.101:2376           v18.09.0

$ docker stack deploy -c docker-compose.yml getstartedlab

$ docker stack ps getstartedlab
ID                  NAME                  IMAGE                            NODE                DESIRED STATE       CURRENT STATE              ERROR               PORTS
it9asz4zpdmi        getstartedlab_web.1   mochr/test_repo:friendly_hello   myvm2               Running             Preparing 18 seconds ago
645gvtnde7zz        getstartedlab_web.2   mochr/test_repo:friendly_hello   myvm1               Running             Preparing 18 seconds ago
fpq6cvcf3e0e        getstartedlab_web.3   mochr/test_repo:friendly_hello   myvm2               Running             Preparing 18 seconds ago
plkpximnpobf        getstartedlab_web.4   mochr/test_repo:friendly_hello   myvm1               Running             Preparing 18 seconds ago
gr2p8a0asatb        getstartedlab_web.5   mochr/test_repo:friendly_hello   myvm2               Running             Preparing 18 seconds ago

docker-compose.yml:

version: "3"
services:
  web:
    image: mochr/test_repo:friendly_hello
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "4000:80"
    networks:
      - webnet
networks:
  webnet:
1
mochr 18 नवम्बर 2018, 02:31

1 उत्तर

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

ऐसा लगता है कि यह boot2docker के वर्तमान संस्करण के साथ एक ज्ञात समस्या है: https://github.com /डॉकर/मशीन/मुद्दों/4608

वर्कअराउंड या तो उन मशीनों पर आधारित झुंड का उपयोग करना है, जिन्हें boot2docker (जैसे AWS, DigitalOcean, आदि) की आवश्यकता नहीं है, तब तक प्रतीक्षा करें जब तक कि boot2docker का नया संस्करण जारी न हो जाए, या उस लिंक में बताए अनुसार boot2docker के पुराने संस्करण का उपयोग करें। पुराने संस्करण का उपयोग करने के लिए:

export VIRTUALBOX_BOOT2DOCKER_URL=https://github.com/boot2docker/boot2docker/releases/download/v18.06.1-ce/boot2docker.iso

डॉकर-मशीन के साथ अपनी वर्चुअल मशीन बनाने से पहले। (पहले अपनी मौजूदा वर्चुअल मशीन निकालें, फिर उस निर्यात का उपयोग करें, फिर docker-machine create myvm1)

फिर, आपको अपना स्टैक लाने और अपने कंटेनरों को 192.168.99.100:4000 या 192.168.99.101:4000 पर एक्सेस करने में सक्षम होना चाहिए (या डॉक-मशीन एलएस द्वारा जो भी आईपी पते प्रकट किए गए हैं)

2
nachbar 19 नवम्बर 2018, 06:04