Cum repar un port expus in Docker container chiar daca am firewall..

Cum reparam portul expus intr-un docker container in acest caz mysql/mariadb pe standard 3306

Docker asta e un animal ciudat, ideea e ca trece de firewall, eu spre exemplu am csf-ul, dar docker ca sa mearga face “fowarding” la porturi pt containerele sale ca acestea sa poata
comunica intre ele.
Ideea e sa nu rulati docker asa:
docker run -p 3306:3306 blabla/blabla-mariadb
ar trebui rulat asa:
docker run -p 127.0.0.1:3306:3306 blabla/blabla-mariadb
lafel si pt yml file nu o ardeti asa:
ports:
– “3306:3306”
ardeti-o asa:
ports:
– “127.0.0.1:3306:3306”

Acum sa ne corectam greselile:
Daca ai un container activ ar trebui sa:
1. docker stop mariadb (sau ce nume aveti voi acolo)
2. docker commit mariadb mariadb1
3. docker run -p 127.0.0.1:3306:3306 -td mariadb1

Daca ai nevoie de aceasi imagine o poti rezolva astfel:
1. docker ps

Docker PS ca sa vedeti containerele active
Docker PS ca sa vedeti containerele active

Tineti minte container id in cazul acesta: b7b7ad5f1314
2. docker inspect b7b7ad5f1314
docker inspect
docker inspect

Tineti Minte ID
In cazul nostru: b7b7ad5f13145f1446c112bab9b40370620d3a163032b833d87edf996f36ae56
3. cd /var/lib/docker/containers/b7b7ad5f13145f1446c112d3a163032b833d87edf996f36ae56
cd in container id de mai sus
4. docker stop b7b7ad5f1314
stop container
5. nano hostconfig.json
in port bindings o sa ai ceva similar cu
“PortBindings”:{“3306/tcp”:[{“HostIp”:””,”HostPort”:”3306″}]}
6. pune 127.0.0.1 la HostIp
ar trebui sa arate ceva de genu:
port binding
port binding

7. sudo systemctl restart docker
8. docker start b7b7ad5f1314

Il puteti testa cu telnetu’ avem un tutorial Testare port expus Docker Container

Ultima Modificare: 28 august, 2017