डॉकर स्टैक के रूप में बनाई गई वर्डप्रेस साइट तक पहुंचने में असमर्थ

मैं निम्नलिखित सेवाओं से बना एक डॉकर स्टैक के अंदर एक वर्डप्रेस साइट बनाने की कोशिश कर रहा हूं:

  • wordpress - Wordpress साइट ही
  • db - MySQL कंटेनर

मेरे पास निम्नलिखित हैं stack.yml फ़ाइल:

version: '3.1'networks:  abtehnic:services:  db:    image: mysql:latest    restart: always    networks:      - abtehnic    environment:      MYSQL_ROOT_PASSWORD: XXXXX      MYSQL_DATABASE: wordpress      MYSQL_USER: wordpress      MYSQL_PASSWORD: barbu123  wordpress:    image: abtehnic-wordpress    depends_on:      - db    restart: always    ports:      - 80    environment:      WORDPRESS_DB_HOST: db:3306      WORDPRESS_DB_USER: wordpress      WORDPRESS_DB_PASSWORD: wordpress      WORDPRESS_DB_PASSWORD: barbu123    networks:      - abtehnic    volumes:      - ./source:/var/www/html

मैं निम्नलिखित कमांड के साथ स्टैक को तैनात करता हूं:

$ डॉकर स्टैक तैनाती-सी स्टैक।yml abtehnic

docker ps आदेश outputs के निम्नलिखित:

CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS               NAMES256e65fe2c4c        mysql:latest        "docker-entrypoint..."   About a minute ago   Up About a minute   3306/tcp            abtehnic_db.1.mo0xp17adt2jocu9yivkzg19g26481d8bab95        wordpress:4.8       "docker-entrypoint..."   About a minute ago   Up About a minute   80/tcp              abtehnic_wordpress.1.tiikrjwm1kcmxjg7v74vrcquw

मैं मैप किए गए पोर्ट को खोजने की कोशिश कर रहा हूं:

$ docker port <container_id for wordpress>

और इसका आउटपुट खाली है । इसके अलावा जब मैं चल रहा हूँ docker logs <container_id_for_wordpress> मुझे निम्नलिखित मिलता है:

Warning: mysqli::mysqli(): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 22Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 22MySQL Connection Error: (2002) php_network_getaddresses: getaddrinfo failed: Name or service not knownWarning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 22MySQL Connection Error: (2002) Connection refusedWarning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 22MySQL Connection Error: (2002) Connection refusedMySQL Connection Error: (2002) Connection refusedWarning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 22AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 10.0.1.3. Set the 'ServerName' directive globally to suppress this messageAH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 10.0.1.3. Set the 'ServerName' directive globally to suppress this message[Sat Oct 28 16:05:32.189285 2017] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.10 (Debian) PHP/5.6.31 configured -- resuming normal operations[Sat Oct 28 16:05:32.189321 2017] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

यहाँ मेरे प्रश्न हैं:

  1. क्यों नहीं कर सकते wordpress कंटेनर का उपयोग db कंटेनर?
  2. ऐसा कोई पोर्ट क्यों नहीं है जिसका उपयोग मैं अपने होस्ट से वर्डप्रेस साइट तक पहुंचने के लिए कर सकता हूं?
depends_on:  - db

यह सिर्फ यह सुनिश्चित करता है कि डेटाबेस कंटेनर वर्डप्रेस कंटेनर से पहले पूरी तरह से लोड हो गया है । आपको डॉकर को लिंक करने के लिए बताना होगा db से कंटेनर wordpress नाम से इसे संदर्भित करने के लिए कंटेनर ।

हुड के तहत डॉकर-कंपोज़ क्या करता है आईपी डॉकर देता है db कंटेनर और एक जोड़ें /etc/hosts के लिए प्रवेश wordpress कंटेनर ताकि आप इसे नाम से संदर्भित कर सकें ।

इसलिए इसे वर्डप्रेस सेक्शन में जोड़ने का प्रयास करें

links:  - db

मुझे लगता है कि आप कुछ ऐसा कर रहे हैं docker port 26481d8bab95, आपके प्रश्न के अनुसार आपने पोर्ट 80 को परिभाषित किया है, इसलिए आपका उत्तर पोर्ट 80 है:

# docker run -d -p 80:80 wordpressdc9e4aab1015eb5d82cf489e2943d76084faceaf3093bc3238964d6cfa81ab1c# docker port dc9e4aab1015eb5d82cf489e2943d76084faceaf3093bc3238964d6cfa81ab1c80/tcp -> 0.0.0.0:80# 

ढेर या नहीं, आप अभी भी उपयोग करने में सक्षम होना चाहिए docker port

  1. mysqld तुलना शुरू करने में अधिक समय लगता है httpd (वर्डप्रेस), इसलिए आप त्रुटियां देख रहे हैं
  2. डॉकर वार, यह सही ढंग से कॉन्फ़िगर किया गया है और वास्तविक कारण है कि आप इसे एक्सेस क्यों नहीं कर सकते हैं, यह कई, फ़ायरवॉल और व्हाट्सएप हो सकता है ।

यह सुनिश्चित करने के लिए डीबी सेवा के लिए लॉग की जांच करें: डॉकर लॉग एबटेनिक_डीबी.1.मो0एक्सपी 17एडीटी 2 जेओसीयू 9 वाईवीकेजीजी 1 9 जी