
Apache tomcat은 자바 기반의 웹 애플리케이션을 실행하기 위한 오픈소스 웹 애플리케이션 서버(WAS, Web Application Server)이다.
필요없는 컨테이너들은 지우고 시작한다.
docker container stop $(docker ps -q)
docker container rm $(docker ps -aq)
# 설치
docker pull tomcat
톰캣은 단순히 파일을 전달하는 웹 서버(Web Server)와 달리, 동적인 처리를 담당합니다
서블릿 컨테이너(Servlet Container): 사용자의 요청을 받아 자바 서블릿을 실행하고, 그 결과를 웹 브라우저로 전달합니다.
동적 페이지 생성: 데이터베이스와 통신하거나 복잡한 비즈니스 로직을 처리하여 실시간으로 변하는 HTML 페이지를 만들어냅니다.
HTTP 웹 서버 기능 포함: 자체적으로 정적 파일(HTML, CSS 등)을 처리하는 기능도 갖추고 있어 별도의 웹 서버 없이도 구동이 가능합니다.
# tomcat 컨테이너 실행
docker container run --name tc -itd tomcat:latest
# nginx 컨테이너 실행
docker container run --name ng -itd -p 80:80 nginx:latest


# network 조회
docker network inspect
#tomcat
172.0.0.2

# exec
docker container exec -it ng /bin/bash

docker volume ls

# 볼륨 생성
docker container run --name web_01 -d -p 80:80 -v v_01:/v_01 nginx:latest
# exec로 접속
docker container exec -it web_01 /bin/bash
# 볼륨 확인
cd /v_01
# 파일 생성
touch 1.txt
# 컨테이너에서 나온다.
exit
# Volume 정보
docker volume inspect v_01
#호스트에서 MountPoint 확인
[
{
"CreatedAt": "2026-02-10T14:16:04+09:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/v_01/_data",
"Name": "v_01",
"Options": null,
"Scope": "local"
}
]


# 새로운 컨테이너 생성해서 접속 확인
docker container run --name web_02 -d -p 8080:80 -v v_01:/v_01 nginx:latest
docker container exec -it web_02 /bin/bash
# 파일 확인
ls /v_01/

# Volume
docker volume create v_02
docker volume ls
# 테스트할 파일 생성
echo "Volume test" > /var/lib/docker/volumes/v_02/_data/2.txt
# 볼륨 설정해서 컨테이너 생성
docker container run --name web_03 -d -p 8081:80 -v v_02:/v_02
# 설정
docker container exec -it web_03 /bin/bash
# 파일 내용 확인
cat /v_02/2.txt

-최상위 아래 mountpoint 폴더 생성하고, /root/mountpoint를 볼륨으로 사용할 수 있게 만들기
-v_04까지 갔으면 다시 나와서 volume ls를 확인해보면, v_04s는 별도로 경로를 만들었기 때문에 docker volume ls에는 등록되지 않았다.
# 마운트할 폴더 생성
mkdir mountpoint
# 테스트할 파일 하나 생성
echo "Hi" > mountpoint/3.txt
# 컨테이너 run
docker container run --name web_04 -d -v /root/mountpoint:/v_04 nginx:latest
# 확인
ls
# cat 확인
cat /v_04/3.txt
#나와서 볼륨 리스트 확인
Ctrl + p + q
docker volume ls

FROM ubuntu:latest
RUN apt update && apt install -y -q nginx
VOLUME ["/vol"]
COPY index.html /val/www/html
CMD ["nginx", "-g", "daemon off;"]

# 도커 이미지를 빌드(경로 설정을 잘보고 -f 옵션은 Dockerfile이 아닌 이름을 사용할 경우)
docker image build -t v_test:1.0 -f docker/volume_test docker/
# 80번 포트
docker container run --name web_01 -d -p 80:80 v_test:1.0
# 로컬호스트
curl localhost
# exec
docker container exec -it web_01 /bin/bash
# 볼륨설정
docker volume ls
# web_01에 연결된 것 확인 "Mount"의 "Source" 부분으로 들어가야한다.
docker container inspect web_01
# 접속하여 /bin/bash 실행
docker container exec -it web_01 /bin/bash
#안으로 들어가서 확인
ls /vol/