본문 바로가기

CLOUD/CUBE

도커(Docker) 명령어 - 네트워크(network)

반응형

 

 

DNS 지정하기

 

docker run -d --dns 8.8.8.8 httpd:2.4

docker ps

docker exec -it friendly_ritchie cat /etc/resolv.conf

 

 

브리지(bridge) 타입으로 mybridge라는 이름의 네트워크를 생성합니다

 

docker network ls

docker network create --driver bridge mybridge

docker network ls

 

 

 

mybridge에 centos와 httpd를 생성합니다

 

docker run -d --network=mybridge centos /bin/sleep 3600s

docker run -d --name=myhttpd --network=mybridge httpd:2.4

docker ps

 

 

 

네트워크 정보를 확인할 수 있습니다.

 

docker network inspect mybridge

 

 

 

네트워크를 지정 안 하고 centos를 만들 경우 myhttpd에 접근이 되지 않는 것을 볼 수 있습니다.

같은 네트워크에 있는 centos는 접근이 됩니다. 네트워크에서 격리가 필요한 경우 활용할 수 있습니다.

 

curl 172.18.0.3

docker run -d centos /bin/sleep 3600s

docker ps

docker exec -it nifty_jepsen /bin/bash

curl 172.18.0.3

exit

docker exec -it practical_franklin /bin/bash

curl 172.18.0.3

 

 

DB를 만들어 격리할 수도 있습니다.

env 환경 변수로 mysql의 패스워드를 설정해야 접근이 가능합니다.

docker run -d --name=mydb2 --network=mybridge --env MYSQL_ROOT_PASSWORD=mysql mysql:5.5

 

 

같은 네트워크에 있는 centos로 접속합니다.

docker exec -it practical_franklin /bin/bash

 

 

mysql 설치 후 접속합니다

yum -y install mysql
mysql -u root -pmysql -h 172.18.0.4

show databases;

 

 

 

 

 

도커 네트워크 목록을 보면 bridge 외에도 host와 none이 있습니다.

docker network ls

 

docker run -d --network host centos /bin/sleep 3600s

docker ps

 

 

 

 

HOST의 경우 docker 컨테이너가 host의 네트워크 정보를 같이 쓰는 것입니다.

 

docker exec -it happy_wilbur /bin/bash

ip addr

 

 

 

none 같은 경우는 네트워크를 사용하지 않습니다.

docker run -d --network none centos /bin/sleep 3600s

docker exec -it pedantic_lehmann /bin/bash

ip addr

 

 

 

DHCP처럼 IP를 지정할 수도 있습니다.

 

docker network create --driver bridge --subnet 172.20.0.0/16 --ip-range 172.20.0.0/24 --gateway 172.20.0.1 new

docker network ls

 

 

IP가 172.20.0.0/24 대로 분배된 것을 볼 수 있습니다.

docker run --network new -it centos /bin/bash

ip addr

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형