DevOps/Docker 4

MSA 도커 localhost 안될때 호스트머신 주소 접근방법, host.docker.internal

Docker 컨테이너 간 통신 및 localhost 사용 문제 해결 문제 상황Docker 컨테이너에서 localhost 또는 **127.0.0.1**을 사용할 경우, 이는 컨테이너 내부를 참조합니다.따라서 다른 컨테이너나 호스트 머신에 접근하려고 할 때 연결되지 않는 문제가 발생할 수 있습니다.해결 방법방법 1. 컨테이너 이름으로 접근Docker는 같은 네트워크에 있는 컨테이너 간에 컨테이너 이름을 도메인 이름처럼 사용할 수 있도록 지원합니다.예를 들어, **post-service**라는 이름의 컨테이너에 접근하려면 **http://post-service:포트번호**로 요청할 수 있습니다. 1. 컨테이너를 같은 네트워크로 설정기본적으로 Docker 컨테이너는 서로 다른 네트워크로 분리되어 있습니다. 따라..

DevOps/Docker 2025.02.05

Dockerfile에서 WORKDIR과 COPY . .의 역할과 필요성

Dockerfile을 작성할 때 `WORKDIR`과 `COPY . .`을 자주 사용하지만, **정말 필요할까? 없이도 실행이 가능할까? 이 글에서는 `WORKDIR`과 `COPY . .`의 필요성과 역할을 명확하게 정리해보겠습니다.## ✅ WORKDIR과 COPY . . 없이도 실행이 가능할까?### 1️⃣ `WORKDIR` 없이 `COPY . .`만 사용하는 경우FROM node:18COPY . .RUN npm installCMD ["node", "index.js"]✅ 실행 가능하지만 모든 파일이 루트(/) 디렉터리에 복사됩니다.❌ 루트 디렉터리는 시스템 파일과 섞일 위험이 있어 관리하기 어렵습니다. 2️⃣ COPY . . 없이 WORKDIR만 설정한 경우FROM node:18WORKDIR /appRU..

DevOps/Docker 2025.02.04

IntelliJ에서 Spring boot 프로젝트 Docker 사용해보기 (기본예제)

1. intelliJ Docker Plugin 설치 ( ctrl + alt+ s ) 2. bootJar 빌드하기 3. 루트 폴더에 Dockerfile 생성 2. Dockerfile 작성 ## 이 부분은 사용할 Java 버전을 지정합니다. 여기서는 Alpine Linux 기반의 OpenJDK 17 이미지를 사용하고 있습니다. FROM openjdk:17-alpine ## Docker 빌드 중에 사용될 변수를 정의합니다. ARG JAR_FILE=/build/libs/*.jar ## 앞에서 정의한 ${JAR_FILE} 변수에 해당하는 JAR 파일을 컨테이너 내부의 /app.jar 경로에 복사합니다. 이를 통해 애플리케이션 JAR 파일을 컨테이너 내부로 가져옵니다. COPY ${JAR_FILE} app.jar ..

DevOps/Docker 2023.09.02

docker mysql 설치하고 heidisql 연결하기

docker이 설치가 되어있지 않다면 먼저 설치를 해주고 아래 명령어를 치도록 하자 1. mysql 이미지 다운로드 명령어 docker pull mysql 2. docker 실행 명령어 docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=사용할암호 --name mysql-container mysql password에는 사용할 비밀번호를 넣어주도록 하자. 이후 heidisql에서 호스트는 localhost를 적어주고 사용자와 암호는 root, 설정한 암호를 넣어준다. port는 설정한대로 3306을 적어주고 만약 3307:3306으로 설정한 경우 3307을 적어주면 된다. 만약 접속이 안된다면? 내 컴퓨터에 이미 3306번이 사용중이기 때문에 접속이 안되는것일 수 있으..

DevOps/Docker 2023.08.28