docker 옵션에 --net=host를 사용하여 컨테이너를 접속하였는데
호스트서버와 컨테이너가 같은 IP가 되버려 추후에 문제가 있을것 같아
--net 옵션없이 컨테이너 (172.17.0.x)으로 접속하는 방법을 찾아보았다.

##개인 노트북 route 172.17.0.0/16을 호스트서버(docker 설치서버)로 route 설정

$ route add [container IP대역] mask [container mask] [docker 서버 IP]

$ route add 172.17.0.0 mask 255.255.0.0 192.168.16.250

$ tracert 172.17.0.2
최대 30홉 이상의 172.17.0.2(으)로 가는 경로 추적
  1   111 ms    13 ms    41 ms  192.168.16.250
  2     *        *        *     요청 시간이 만료되었습니다.


## 도커가 설치되어 있는 서버까지만 도달되고 연결이 안됨
## 방화벽이나 iptables 확인 필요
 
## iptables -L 확인해서 FORWARD 가 DROT인데 ACCEPT로 변경. 명령어는 알아서 찾아보자

## 테스트이기에 ACCEPT로 통으로 변경, 추후 사용 대역이나 특정 IP만으로 변경 필요

## 컨테이너로 ping 확인 됨
$ ping 172.17.0.2

## ping은 가는데 컨테이너 접속이 되지 않는다면
## docker run -p 22 식으로 컨테이너가 22포트를 사용하도록 설정
## ssh가 되는지 확인

$ service start sshd 또는 /etc/init.d/sshd start
$ netstat -an | grep 22


## 연결 확인

##### 결론
현재 192.168.16.250서버에 도커를 설치하여 컨테이너를 실행하면 172.17대역으로 생성되고
192.168.16 대역에서 172.17대역으로 접속을 하려니 가는 길이 없으니 외부네트워크로 빠져나가버린다
172.17 대역으로 접속할려면 192.168.16.250으로 가라는 route 설정하고
250 서버에서는 docker로 외부접속이 가능하도록 설정을 해야한다

## 내 컴퓨터의 route를 172.17 추가설정했으니 다른 192.168.16대역에서는 불가함

## 공유기 설정을 하던지 해야할듯...


## 안되는게 아니고 내가 설정을 못하는 거였네 ㅎㅎㅎㅎ;;;;



블로그 이미지

§§

내 주머니속 작은 수첩

,