반응형
도커 ufw를 호스트 시스템에 연결
UFW에서 도커를 시험해 봤는데 이걸 많이 읽었어요.
도커 이미지에서 호스트 머신의 mariadb 데이터베이스에 접속하는 것이 목표였습니다.
Host (running ufw) -> docker container 1 - mediawiki -> Database (onHost)
-> docker container 2 - phpwebserver -> Database (onHost)
-> docker container 3 - nextcloud -> Database (onHost)
-> .......
I
기본적으로는 도커는 비활성화할 수 있는 iptables를 사용합니다.
/etc/docker/daemon.json
{
"iptables": false
}
그 후 설정
/etc/default/ufw
DEFAULT_FORWARD_POLICY to ACCEPT
마지막으로 이 행을 after.filename 파일에 추가합니다.
/etc/ufw/after.rules
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING ! -o docker0 -s 172.17.0.0/16 -j MASQUERADE
COMMIT
도커로 돌아가기:이제 localhost:port 매핑과 데이터베이스 호스트를 docker-compose.yml 파일에 추가합니다.
ports:
- "127.0.0.1:8080:8080"
MEDIAWIKI_DB_HOST: 172.17.0.1 <- this was the docker0 interface
도커 ps에서는 도커가 localhost로서 동작하고 있는 것을 알 수 있습니다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cffb491c84b2 db_mediawiki "/docker-entrypoint.…" 22 minutes ago Up 22 minutes 127.0.0.1:8080->8080/tcp, 9000/tcp mediawiki_wiki
이제 호스트 시스템의 리버스 nginx를 사용하여 이 도커 이미지에 연결할 수 있습니다.또는 단순히 curl localhost 사용 : 8080/wiki/Main_Page
UFW를 사용하지 않으면 모두 동작하는 것처럼 보이지만 UFW를 활성화하면 브리지에서 도커0 인터페이스로의 모든 접속이 차단됩니다.
[UFW BLOCK] IN=br-9da71acf3f9f OUT= MAC=02:42:f2:7b:35:7b:02:42:ac:12:00:02:08:00 SRC=172.18.0.2 DST=172.17.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=53146 DF PROTO=TCP SPT=36126 DPT=3306 WINDOW=29200 RES=0x00 SYN URGP=0
이 단계를 수행하기 위해 도움을 줄 수 있는 사람이 있습니까?
대단히 고맙습니다,
데이빗
안 바꿔도 돼/etc/ufw/after.rules
.
다음 규칙을 ufw에 추가합니다.
sudo ufw allow in on docker0 from 172.17.0.0/16 to 172.17.0.0/16
이것에 의해, 172.17.0.0 네트워크를 가지는 docker0 인터페이스상의 모든 패킷이 허가됩니다.
언급URL : https://stackoverflow.com/questions/50768002/docker-ufw-connect-to-host-machine
반응형
'source' 카테고리의 다른 글
ReactJS 컴포넌트에 여러 클래스를 추가하는 방법 (0) | 2022.11.26 |
---|---|
Java에서 파일 크기를 가져오는 방법 (0) | 2022.11.26 |
camel Case 변환Text to Title 대문자 텍스트 (0) | 2022.11.26 |
PHP의 ==는 대소문자를 구분하는 문자열 비교입니까? (0) | 2022.11.26 |
플라스크 마개: 어떻게 작동하는지 이해할 수 없습니다. (0) | 2022.11.26 |