반응형
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은 뜨지 않음
반응형
'요즘공부' 카테고리의 다른 글
[도커&쿠버네티스] 교육 1일차_ 컨테이너 생성시 삭제되지 않도록 하는 법 (0) | 2025.02.21 |
---|---|
[도커&쿠버네티스] 교육 1일차_ centos9,mysql image 설치 (0) | 2025.02.20 |
[도커&쿠버네티스] 교육 1일차_ nginx, mariaDB image 설치 (0) | 2025.02.20 |
[도커&쿠버네티스] 교육 1일차_도커 설치 및 httpd 컨테이너 생성,삭제 (0) | 2025.02.16 |
[도커&쿠버네티스] 교육 1일차_사전준비 사항 (0) | 2025.02.15 |