wonder

정보보안 스터디 - 10주차 1일 - Docker 네트워크 구성 본문

Security/리눅스

정보보안 스터디 - 10주차 1일 - Docker 네트워크 구성

wonder12 2022. 12. 16. 03:32

 

 

☞ docker 네트워크 구성

docker network create testnet
기본값은 브릿지로 생성합니다.
docker network inspect testnet
자세한 정보
docker network rm testnet
삭제
docker network ls -f driver=bridge
필터 검색
docker network create -d bridge testnet
브릿지로 생성하게 되면 다른 네트워크 대역이 생성됩니다.
17.0.1 > 18.0.1
docker network create -d host testnet
현제 리눅스의 대역(172.17.0.1)을 그대로 사용합니다.
docker network create -d none testnet
인터페이스 없이 사용합니다.
docker network create -d bridge --subnet 172.20.0.0/16 --gateway 172.20.0.1 testnet
임의의 네트워크 대역을 정하여 생성합니다.

 

 

 

 컨테이너 네트워크 설정

docker container run --name mynginx -d -it nginx 
네트워크 기본값은 브릿지로 생성되서 17번대입니다.
docker container inspect mynginx
17번대 네트워크를 확인합니다.
docker network inspect bridge
연결된 컨테이너를 확인합니다.
docker container run --name mynginx -d -it --network=testnet nginx
docker container run --name mynginx -d -it --net=testnet nginx
testnet네트워크를 사용합니다.

docker container run --name mynginx -d -it --network=testnet --ip 172.20.0.100 nginx
순서대로가 아니라 ip를 정해서 사용가능합니다.

 

docker container run -d --dns 8.8.8.8 nginx
DNS 서버 지정
docker container run -it --mac-address="00:0C:29:CE:A2:68" centos
mac주소 지정(설정안해도 자동 생성)
docker container run -it --hostname shell1 centos
hostname지정
docker container run -it --add-host www.test.com:192.168.2.10 centos
가상호스트 지정

 

쉘에 들어가

ip addr

route -n

cat /etc/resolv.conf

로 네트워크 정보를 확인합니다.

 

쉘로 들어가기는 방법이 2가지 있습니다.

 

docker attach mynginx

exit으로 나올 경우 서비스가 중단되기 때문에 다시들어갔을 때 데이터가 날라갑니다.

ctrl + P+ Q를 동시에 눌러 안전하게 나옵니다.

 

docker exec -it mynginx /bin/bash

exit으로 나와도 쉘을 빠져나오는 것이기 때문에 괜찮습니다.

 

 

 

docker container run -it --name alpine4 --network=bridge alpine ash
docker network connect testnet alpine4
네트워크를 연결하여 더 추가할 수도있습니다.
이 경우에는 브릿지(17번대)도 연결되고 18번대도 연결됩니다.
docker network disconnect testnet alpine4
네트워크 연결을 끊습니다.

 

 

원래는 /etc/hosts에서 가상호스트를 설정해야 ping이 가능하지만

기본 브릿지가 아닌 새로운 대역을 생성한 네트워크끼리는

자동검색 서비스 때문에 alpine1 alpine2 ... 서로 이름으로 ping이 가능합니다.

ping -c 5 alpine1(18.0.2) <==> ping -c 5 alpine2(18.0.3)

 

 

 

 

 

 Wordpress 구축

docker run -d --name mysql -v /dbdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=wordpress -e MYSQL_PASSWORD=wordpress mysql:5.7
mysql 깔고 비밀번호 설정.
docker run -d --name wordpress --link mysql:mysql -e WORDPRESS_DB_PASSWORD=wordpress -p 80:80 wordpress:4
wordpress에 mysql연결

 

 

 

 

Comments