본문 바로가기
요즘공부

[도커&쿠버네티스] 교육 2일차_ IP설정,docker네트워크 확인

by 게으른 피글렛 2025. 2. 23.
반응형

1. IP 설정하여 웹페이지에 내용 표출

<IP 설정>

기존에는 랜카드 1개로 사용했었는데 랜카드 2개를 사용하여 웹페이지가 열리는 것을 확인할 예정

 

현재 사용한 랜카드 -> 이걸로는 웹페이지 확인이 되지 않음

eth0(nat 타입)

127.0.0.1/ 2222

 

추가할 랜카드

eth1(hostonly - 내부 네트워크만 가능)

host -gest /guest - guest 통신

192.168.50.10/ 22

 

기존에 생성되었던 vagrantfile 수정하여 ip를 설정할 예정

 

 

powershell 접속

#우선 vagrant가 있는 위치로 이동
PS C:\WINDOWS\system32> cd C:\Users\weekend\docker\centos9s

#vagrant 종료
PS C:\Users\weekend\docker\centos9s> vagrant halt
#vagrant 시작
PS C:\Users\weekend\docker\centos9s> vagrant up
#vagrant 접속
PS C:\Users\weekend\docker\centos9s> vagrant ssh
Last login: Fri Feb 21 21:14:10 2025 from 10.0.2.2
#ip 확인
vagrant@ubuntu2204:~$ ip add

 

생성완료

 

변경한 ip로 접속

 

접속완료

 

도커 동작 확인

vagrant@ubuntu2204:~$ systemctl list-dependencies docker

 

잘 동작하지 않을 경우 도커 재시작

vagrant@ubuntu2204:~$ sudo systemctl restart docker

 

 

<웹페이지에 표출시키는 법>

#1번 랜카드를 사용할  경우 해당내용이 출력될 수 없음(172.0.0.1)
#2번 랜카드 사용할 경우 가능함(192.168.50.10)

#컨테이너 생성
#1안) docker run -d --name apache -p 80:80 httpd
#2안) docker run -d --name apache -p 8000:80 httpd

vagrant@ubuntu2204:~$ docker run -d --name apache -p 80:80 httpd
d6907b6b312e677f12b58b6062543edf33a6c45aa58186d65431cb08f7c77664

#컨테이너 접속
vagrant@ubuntu2204:~$ docker exec -it apache /bin/bash

#index.html 찾기
root@d6907b6b312e:/usr/local/apache2# find / -name index.html
/usr/local/apache2/htdocs/index.html
root@d6907b6b312e:/usr/local/apache2# cat /usr/local/apache2/htdocs/index.html
<html><body><h1>It works!</h1></body></html>

#파일위치로 이동
root@d6907b6b312e:/usr/local/apache2# cd /usr/local/apache2/htdocs
root@d6907b6b312e:/usr/local/apache2/htdocs#

#내용 입력
root@d6907b6b312e:/usr/local/apache2/htdocs# echo "welcome to <font color=red>apache container </font>" > index.html

#서버에서는 정상적으로 표출됨
vagrant@ubuntu2204:~$ curl 172.17.0.2
welcome to <font color=red>apache container </font>

 

인터넷에서 설정했던 IP를 입력함

#1안) docker run -d --name apache -p 80:80 httpd
#2안) docker run -d --name apache -p 8000:80 httpd

 

2안으로 만들었을 경우 192.168.50.10/8000 으로 접속해야함(80은 생략 가능)

 

 

2. 생성한 컨테이너의 IP 확인

우선 alpine 다운로드 (가벼운 os이므로 이걸로 테스트)

#alpine docker 다운로드
vagrant@ubuntu2204:~$ docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
f18232174bc9: Pull complete
Digest: sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest

#docker images
vagrant@ubuntu2204:~$ docker images
REPOSITORY              TAG       IMAGE ID       CREATED       SIZE
mariadb                 latest    a914eff5d2eb   8 days ago    336MB
alpine                  latest    aded1e1a5b37   9 days ago    7.83MB
quay.io/centos/centos   stream9   5ef0f9d95ba6   12 days ago   164MB
nginx                   latest    97662d24417b   2 weeks ago   192MB
httpd                   latest    4d98e80840bb   4 weeks ago   148MB
mysql                   latest    5568fddd4f66   4 weeks ago   797MB
hello-world             latest    74cc54e27dc4   4 weeks ago   10.1kB

 

#컨테이너 생성
vagrant@ubuntu2204:~$ docker run -d --name apache2 httpd
vagrant@ubuntu2204:~$ docker run -d --name alpine2 -it alpine
vagrant@ubuntu2204:~$ docker run -d --name alpine3 -it alpine

#현재 실행중인 컨테이너
vagrant@ubuntu2204:~$ docker ps
CONTAINER ID   IMAGE     COMMAND              CREATED          STATUS          PORTS                NAMES
22b398241645   alpine    "/bin/sh"            17 seconds ago   Up 15 seconds                        alpine3
7f2fff2fd3e9   alpine    "/bin/sh"            12 minutes ago   Up 12 minutes                        alpine2
77339f6534d9   httpd     "httpd-foreground"   13 minutes ago   Up 13 minutes   80/tcp               apache2
d6907b6b312e   httpd     "httpd-foreground"   40 minutes ago   Up 40 minutes   0.0.0.0:80->80/tcp   apache

#컨테이너 별 ip 할당 확인
# $docker container inspect [컨테이너 이름]

agrant@ubuntu2204:~$ docker container inspect apache2
 "IPAddress": "172.17.0.3",
vagrant@ubuntu2204:~$ docker container inspect alpine2
"IPAddress": "172.17.0.4",
vagrant@ubuntu2204:~$ docker container inspect alpine3
"IPAddress": "172.17.0.5",

 

 

 

3. docker 네트워크 확인

통신포트를 지정한 IP의 경우 방화벽에 나타남

vagrant@ubuntu2204:~$ docker run -d --name apache9 -p 8000:80 httpd
vagrant@ubuntu2204:~$ docker container inspect apache9
"IPAddress": "172.17.0.6"

#방화벽 확인
vagrant@ubuntu2204:~$ sudo iptables --table nat -L -n

기존에 지정했던 1건(80)과, 현재 지정한 1건(8000) 모두 뜨는 것을 확인 할 수 있음 

지정하지 않았던 172.17.0.3은 뜨지 않음

반응형