សម្រាប់ container ធម្មតាក្នុងបណ្ដាញ bridge អាសយដ្ឋាន 127.0.0.1 ជា loopback របស់ container ផ្ទាល់។ ប្រូកស៊ីដែលស្ដាប់លើ localhost របស់កុំព្យូទ័រយួរដៃ មិនស្ដាប់ដោយស្វ័យប្រវត្តិនៅក្នុង container ទាំងអស់ទេ។

នេះពន្យល់ពីភាពខុសគ្នាដែលជួបញឹកញាប់៖ URL ប្រូកស៊ីដូចគ្នាដំណើរការក្នុង terminal របស់ម៉ាស៊ីនមេ ប៉ុន្តែការតភ្ជាប់ត្រូវបានបដិសេធក្នុង container។ អាសយដ្ឋាននេះសម្គាល់ចំណុចបណ្ដាញខុសគ្នានៅកន្លែងនីមួយៗ។

អាចប្រើប្រូកស៊ីសាធារណៈដោយផ្ទាល់

ប្រសិនបើចំណុចដែលជ្រើសពីសេវា ឬ បញ្ជីប្រូកស៊ី HTTP ពិតជាអាសយដ្ឋាន IP សាធារណៈដែលអាចទៅដល់ សូមផ្ដល់អាសយដ្ឋាននោះទៅកម្មវិធី ជំនួសឱ្យការប្ដូរទៅ localhost៖

docker run --rm \
  -e HTTP_PROXY=http://203.0.113.10:8080 \
  -e HTTPS_PROXY=http://203.0.113.10:8080 \
  your-image

ជំនួសអាសយដ្ឋានឧទាហរណ៍ក្នុងឯកសារ និង image។ កម្មវិធីក្នុង image នៅតែត្រូវគាំទ្រអថេរបរិស្ថានទាំងនេះ។ Docker មិនប្ដូរ socket ទាំងអស់ទៅជាសំណើតាមប្រូកស៊ី ដោយគ្រាន់តែមានអថេរទាំងនេះទេ។

បើប្រូកស៊ីដំណើរការលើម៉ាស៊ីន Docker

Docker Desktop ផ្ដល់ host.docker.internal ដើម្បីចូលទៅអាសយដ្ឋានខាងក្នុងរបស់ម៉ាស៊ីនមេ។ ក្នុងការកំណត់ Engine ដើមដែលគាំទ្រ ការផ្គូផ្គងម៉ាស៊ីនមេអាចផ្ដល់ឈ្មោះធម្មតានេះ៖

docker run --rm \
  --add-host host.docker.internal=host-gateway \
  -e HTTP_PROXY=http://host.docker.internal:8080 \
  -e HTTPS_PROXY=http://host.docker.internal:8080 \
  your-image

វាប្ដូរការដោះស្រាយឈ្មោះ មិនមែនជាបញ្ជាបញ្ជូនច្រកទេ។ លើ Linux ដើម សេវាដែលចងតែទៅ loopback របស់ម៉ាស៊ីនមេ អាចនៅតែមិនអាចទៅដល់តាមអាសយដ្ឋាន bridge របស់ម៉ាស៊ីនមេ។ អ្នកស្ដាប់ ជញ្ជាំងភ្លើង និងផ្លូវរបស់ container ត្រូវអនុញ្ញាតការតភ្ជាប់នេះ។ បើកែអ្នកស្ដាប់ សូមកំណត់ឱ្យតែ client ដែលត្រូវការចូលប្រើ ជំនួសឱ្យ ការបង្កើតប្រូកស៊ីបើកចំហគ្មានការផ្ទៀងផ្ទាត់អត្តសញ្ញាណ។

សាកល្បងពីកន្លែងដូចគ្នានឹងកម្មវិធី

លទ្ធផល curl លើម៉ាស៊ីនមេ សាកល្បងតែផ្លូវរបស់ម៉ាស៊ីនមេប៉ុណ្ណោះ។ សូមធ្វើសំណើពាក់ព័ន្ធពីបរិស្ថាន container ហើយពិនិត្យថាវាទៅដល់ចំណុចដែលចង់បានឬអត់។

ពាក្យ «host» ក៏មានន័យថាម៉ាស៊ីនដែលដំណើរការ Docker Engine ដែរ។ ជាមួយ Engine ពីចម្ងាយ វាមិនចាំបាច់ជាកុំព្យូទ័រយួរដៃរបស់អ្នកទេ។ ដូច្នេះ IP loopback ដែលចម្លងពីកម្មវិធី desktop ក្នុងម៉ាស៊ីនផ្ទាល់ មានឱកាសតិចជាពិសេសក្នុងការដំណើរការដោយមិនកែនៅលើ builder ឬ server ពីចម្ងាយ។

សូមបែងចែកបញ្ហាទាញយក image ដាច់ដោយឡែក៖ daemon ទាញយក image មុនពេលកម្មវិធីអាចប្រើបរិស្ថានខាងលើ។

អត្ថបទពាក់ព័ន្ធ