ເຂົ້າຫາພຣັອກຊີຂອງ host ຈາກ Docker bridge container
ເລືອກທີ່ຢູ່ພຣັອກຊີທີ່ container ເຂົ້າເຖິງໄດ້ ແລະແຍກຈຸດປາຍສາທາລະນະອອກຈາກພຣັອກຊີໃນ Docker host.
ໃນ container ທົ່ວໄປທີ່ໃຊ້ເຄືອຂ່າຍ bridge, 127.0.0.1 ແມ່ນທີ່ຢູ່ loopback ຂອງ container ເອງ. ພຣັອກຊີທີ່ຟັງຢູ່ localhost ຂອງແລັບທັອບ ບໍ່ໄດ້ຟັງຢູ່ພາຍໃນທຸກ container ໂດຍອັດຕະໂນມັດ.
ນີ້ອະທິບາຍຄວາມແຕກຕ່າງທີ່ພົບເລື້ອຍ: URL ພຣັອກຊີດຽວກັນໃຊ້ໄດ້ໃນ terminal ຂອງ host ແຕ່ການເຊື່ອມຕໍ່ຖືກປະຕິເສດໃນ 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 host
Docker Desktop ມີ host.docker.internal ເພື່ອເຂົ້າຫາທີ່ຢູ່ພາຍໃນຂອງ host. ໃນການຕັ້ງຄ່າ Engine ແບບ native ທີ່ຮອງຮັບ, ການແມັບ host ສາມາດໃຫ້ຊື່ທີ່ໃຊ້ກັນນີ້ໄດ້:
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 ແບບ native, ບໍລິການທີ່ຜູກກັບ loopback ຂອງ host ເທົ່ານັ້ນ ອາດຍັງເຂົ້າບໍ່ໄດ້ຜ່ານທີ່ຢູ່ bridge ຂອງ host. ຕົວຟັງ, firewall ແລະເສັ້ນທາງຂອງ container ຕ້ອງອະນຸຍາດການເຊື່ອມຕໍ່. ຖ້າປ່ຽນຕົວຟັງ, ໃຫ້ຈຳກັດສະເພາະ client ທີ່ຕ້ອງການເຂົ້າໃຊ້ ແທນ ການສ້າງພຣັອກຊີເປີດທີ່ບໍ່ມີການຢືນຢັນຕົວຕົນ.
ທົດສອບຈາກບ່ອນດຽວກັບແອັບ
ຜົນ curl ໃນ host ທົດສອບແຕ່ເສັ້ນທາງຂອງ host. ສົ່ງຄຳຮ້ອງຂໍທີ່ກ່ຽວຂ້ອງຈາກສະພາບແວດລ້ອມຂອງ container ແລະກວດວ່າຮອດຈຸດປາຍທີ່ຕັ້ງໃຈຫຼືບໍ່.
‘Host’ ຍັງໝາຍເຖິງເຄື່ອງທີ່ເຮັດວຽກ Docker Engine. ຖ້າໃຊ້ Engine ທາງໄກ, ນັ້ນບໍ່ຈຳເປັນຕ້ອງເປັນແລັບທັອບຂອງທ່ານ. ດັ່ງນັ້ນ loopback IP ທີ່ຄັດລອກຈາກແອັບ desktop ໃນເຄື່ອງ ຈຶ່ງມີໂອກາດໜ້ອຍເປັນພິເສດທີ່ຈະໃຊ້ໄດ້ໂດຍບໍ່ປ່ຽນໃນ builder ຫຼື server ທາງໄກ.
ແຍກບັນຫາດາວໂຫຼດ image ອອກຕ່າງຫາກ: daemon ດາວໂຫຼດ image ກ່ອນທີ່ແອັບຈະໃຊ້ສະພາບແວດລ້ອມຂ້າງເທິງໄດ້.