Sambungan kontena docker
Sebelum ini kami melaksanakan akses kepada perkhidmatan yang dijalankan dalam bekas docker melalui port rangkaian. Seterusnya, mari kita sambungkan ke bekas docker melalui port
Pemetaan port rangkaian
Kami mencipta bekas untuk aplikasi python.
php@php:~$ docker run -d -P training/webapp python app.py fce072cc88cee71b1cdceb57c2821d054a4a59f67da6b416fceb5593f059fc6d
Selain itu, kami boleh menentukan alamat rangkaian tempat kontena terikat, seperti mengikat 127.0.0.1.
Kami menggunakan parameter -P untuk mencipta bekas dan menggunakan docker ps untuk melihat port 5000 terikat kepada hos port 32768.
php@php:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fce072cc88ce training/webapp "python app.py" 4 minutes ago Up 4 minutes 0.0.0.0:32768->5000/tcp grave_hopper
Kami juga boleh menggunakan bendera -p untuk menentukan bahawa port kontena terikat pada port hos.
Perbezaan antara kedua-dua kaedah ialah:
-P: ialah port dalaman kontena yang dipetakan secara rawak ke port tinggi hos.
-p : ialah port dalaman kontena yang terikat pada port hos yang ditentukan.
php@php:~$ docker run -d -p 5000:5000 training/webapp python app.py 33e4523d30aaf0258915c368e66e03b49535de0ef20317d3f639d40222ba6bc0
php@php:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 33e4523d30aa training/webapp "python app.py" About a minute ago Up About a minute 0.0.0.0:5000->5000/tcp berserk_bartik fce072cc88ce training/webapp "python app.py" 8 minutes ago Up 8 minutes 0.0.0.0:32768->5000/tcp grave_hopper
Selain itu, kita boleh menentukan alamat rangkaian yang mana bekas itu terikat, seperti mengikat 127.0.0.1.
php@php:~$ docker run -d -p 127.0.0.1:5001:5002 training/webapp python app.py 95c6ceef88ca3e71eaf303c2833fd6701d8d1b2572b5613b5a932dfdfe8a857c php@php:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 95c6ceef88ca training/webapp "python app.py" 6 seconds ago Up 6 seconds 5000/tcp, 127.0.0.1:5001->5002/tcp adoring_stonebraker 33e4523d30aa training/webapp "python app.py" 3 minutes ago Up 3 minutes 0.0.0.0:5000->5000/tcp berserk_bartik fce072cc88ce training/webapp "python app.py" 10 minutes ago Up 10 minutes 0.0.0.0:32768->5000/tcp grave_hopper
Dengan cara ini kita boleh mengakses port 5002 kontena dengan mengakses 127.0.0.1:5001.
Dalam contoh di atas, port tcp diikat secara lalai Jika anda ingin mengikat port UPD, anda boleh menambah /udp selepas port. Perintah
php@php:~$ docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py 6779686f06f6204579c1d655dd8b2b31e8e809b245a97b2d3a8e35abe9dcd22a php@php:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6779686f06f6 training/webapp "python app.py" 4 seconds ago Up 2 seconds 5000/tcp, 127.0.0.1:5000->5000/udp drunk_visvesvaraya 95c6ceef88ca training/webapp "python app.py" 2 minutes ago Up 2 minutes 5000/tcp, 127.0.0.1:5001->5002/tcp adoring_stonebraker 33e4523d30aa training/webapp "python app.py" 5 minutes ago Up 5 minutes 0.0.0.0:5000->5000/tcp berserk_bartik fce072cc88ce training/webapp "python app.py" 12 minutes ago Up 12 minutes 0.0.0.0:32768->5000/tcp grave_hopper
docker port membolehkan kami menyemak status pengikatan port dengan cepat.
php@php:~$ docker port adoring_stonebraker 5002 127.0.0.1:5001
Sambungan Kontena Docker
Pemetaan port bukan satu-satunya cara untuk menyambungkan docker ke bekas lain.
Docker mempunyai sistem sambungan yang membenarkan berbilang bekas disambungkan bersama dan berkongsi maklumat sambungan.
Sambungan Docker akan mewujudkan hubungan ibu bapa-anak, di mana bekas induk boleh melihat maklumat bekas anak.
Penamaan bekas
Apabila kami mencipta bekas, docker akan menamakannya secara automatik. Selain itu, kita juga boleh menggunakan bendera --name untuk menamakan bekas, contohnya:
php@php:~$ docker run -d -P --name php training/webapp python app.py 43780a6eabaaf14e590b6e849235c75f3012995403f97749775e38436db9a441
Kita boleh menggunakan perintah docker ps untuk melihat nama kontena.
php@php:~$ docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 43780a6eabaa training/webapp "python app.py" 3 minutes ago Up 3 minutes 0.0.0.0:32769->5000/tcp php