


docker exec -it 컨테이너아이디 /bin/bashdocker network create mynetworkdocker network lsdocker nework rm mynetworkdocker volume create myvolmedocker volume lsdocker volume rm myvolume# /User/username/Dev/database 폴더 생성
mkdir -p ~/Dev/database
cd ~/Dev/database
docker run -d --name postgres-sample \
-p 5433:5432 \ # 호스트5433 + 컨테이너5432
-e POSTGRES_USER=admin1 \
-e POSTGRES_PASSWORD=admin2 \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v /Users/t2024-m0206/Dev/database/sample1:/var/lib/postgresql/data:z \
postgres
# Users/t2024-m0206/Dev/database/sample1 - 로컬 바인딩 폴더
# sample1 생성
🤔 똑같은 컨테이너 이름으로 컨테이너를 실행 한다면?
Conflict. The container name "/postgres-sample" is already in use by container~
포트 할당 안 된 상태로 이름에 1 붙여서 일단 만들어짐
ls -al
cd sample1
ls # pgdata
cd pgdata/
ls

docker exec -it 95e /bin/bash
ls
cd /var/lib/postgresql/data/pgdata
ls

같은 파일~!
도커 컨테이너가 같은 네트워크에 있으면 도커 컨테이너의 이름으로 호출할 수 있음
ex) service-a에서 service-b 호출
#service-a application.properties
service.b.url=http://service-b:8080
# 1. 네트워크 생성
docker network create my-network
# 2. 프로젝트 빌드 (Gradle 빌드 도구를 사용하여 프로젝트 정리 후, JAR 파일 생성)
./gradlew clean bootJar
# 3. 이미지 생성 (각 디렉토리에서)
docker build -t img-service-a .
docker build -t img-service-b .
# 4. 컨테이너 생성
docker run -d --name service-a \
--network my-network \
-p 18080:8080 \
img-service-a
docker run -d --name service-b \
--network my-network \
-p 18081:8080 \
img-service-b
http://localhost:18080/hi
접속해서 service-a가 service-b를 호출하는지 확인
# 1. 기존 컨테이너 모두 중지 후 삭제
docker stop 컨테이너아이디
docker rm 컨테이너아이디
# 중지를 안하고 바로 삭제 - 위험
docker rm -f 컨테이너아이디
# 2. docker-compose.yml파일 생성
vi docker-compose.yml
# 3. Docker Compose 실행
docker compose up -d
http://localhost:18080/hi
접속해서 service-a가 service-b를 호출하는지 확인
💡 Docker Compose를 사용하여 서비스를 실행하면, Docker Compose는 기본적으로 새 브릿지네트워크를 생성함
네트워크 이름: directoryname_default