Docker - 네트워크와 Compose로 컨테이너 연결하기
·
Docker
네트워크와 Compose로 컨테이너 연결하기Docker에서는 컨테이너 간 통신을 위해 네트워크를 구성합니다.특히 사용자 정의 브리지 네트워크를 활용하면 컨테이너 이름으로 통신이 가능하고,Docker Compose를 사용하면 여러 컨테이너 서비스를 효율적으로 관리할 수 있습니다.도커 네트워크 my-network라는 사용자 정의 브리지 네트워크를 생성합니다.docker network ls 명령어로 네트워크 목록을 확인할 수 있습니다.사용자 정의 네트워크는 컨테이너 이름 기반 통신을 지원합니다.컨테이너 간 통신 container-b에서 container-a로 이름 기반 ping 테스트를 수행합니다.container-a, container-b를 동일 네트워크(my-network)에 연결해 실행합니다.ping ..
Docker - 데이터 관리(Volume, Bind Mount)
·
Docker
Docker - 데이터 관리 (Volume, Bind Mount, 파일 공유, 읽기 전용)Docker에서 컨테이너는 기본적으로 휘발성 환경입니다. 컨테이너가 삭제되면 데이터도 함께 사라집니다.이를 해결하기 위해 Docker는 다음과 같은 데이터 관리 기능을 제공합니다.Volume 볼륨을 사용하는 컨테이너 실행docker container run -it --name myvolumecontainer -v myvolume:/temp ubuntu컨테이너 내부에서 파일 생성echo hello, volume >> /temp/hello_volumels /tempctrl + p + q로 detach 모드로 빠져나오기동일한 볼륨을 사용하는 새 컨테이너 실행내부에서 동일한 파일 확인컨테이너가 달라도 동일한 볼륨을 사용하면..
Docker - RUN, CMD, ENTRYPOINT, EXPOSE 명령어 차이
·
Docker
RUN, CMD, ENTRYPOINT, EXPOSERUN: 이미지 빌드 시 명령 실행Dockerfile실행 흐름docker build -t test-run -f Dockerfile-RUN .docker run test-run결과RUN 명령은 이미지 빌드 도중 실행되고 그 결과가 이미지 안에 저장됩니다.cat /msg.txt를 실행하니, 아까 RUN 명령으로 생성한 파일이 그대로 존재.CMD: 컨테이너 실행 시 기본 명령Dockerfile실행 흐름docker build -t test-cmd -f Dockerfile-CMD .docker run test-cmd결과CMD는 컨테이너 실행 시 기본 명령으로 동작합니다.docker run 뒤에 아무 인자 안 주면 CMD가 실행됩니다.하지만 docker run te..
Docker - 애플리케이션과 Apache 서버 이미지 만들기
·
Docker
FastAPI 애플리케이션을 Docker 이미지로 만들기우분투 베이스 이미지 사용Dockerfile실행 명령어docker build -t fastapi-ubuntu -f Dockerfile-Ubuntu .docker run -d -p 8000:8000 fastapi-ubuntu파이썬 베이스 이미지 사용Dockerfile실행 명령어docker build -t fastapi-python -f Dockerfile-Python .docker run -d -p 8001:8000 fastapi-python 아파치 웹 서버 컨테이너 구축Dockerfile실행 명령어docker build -t apache-web -f Dockerfile-Apache .docker run -d -p 8080:80 apache-web h..
Docker -i, -t, -d 옵션
·
Docker
-i, -t, -d 옵션-i : 호스트의 표준 입력을 컨테이너와 연결 (interactive)-t : TTY 할당 (호스트의 쉘을 컨테이너에 연결)-d : 컨테이너를 detach 모드로 실행 쉘을 실행하는 컨테이너 (예: ubuntu)-i / -t 옵션 없이 Ubuntu 컨테이너 실행기본 실행 명령어: /bin/bash/bin/bash는 터미널(TTY)이 없으면 자동 종료됨따라서 컨테이너는 바로 종료됨 (쉘 실행 실패)그래서 아무 일도 안 일어난 것처럼 보이고, 윈도우 프롬프트가 바로 돌아옴 -i : 입력을 컨테이너와 연결-t : 가상 터미널(TTY)을 할당 => bash 실행 가능Ubuntu 컨테이너 안으로 들어옴 (bash 실행됨) 윈도우 프롬프트로 변경bash 종료 → 컨테이너도 종료됨윈도우 프롬..
Docker - Dockerfile을 이용한 도커이미지 빌드
·
Docker
Dockerfile을 이용한 도커 이미지 빌드Dockerfile 도커 이미지를 빌드하는데 필요한 명령어를 순서대로 기술한 텍스트 파일https://docs.docker.com/reference/dockerfile/ 지시어(Instruction)의미FROM베이스 이미지 지정RUN베이스 이미지에 새로운 레이어를 추가해 커맨드를 실행하고, 결과를 빌드 이미지에 반영CMD컨테이너를 시작할 때 실행할 커맨드를 설정LABEL이미지에 레이블을 설정EXPOSE컨테이너에서 공개하는 포트 번호 설정ENV환경 변수 설정ADD이미지에 파일 복사 (압축 파일의 경우 압축을 해제한 후 복사)COPY이미지에 파일 복사ENTRYPOINT컨테이너를 시작할 때 실행할 커맨드 설정VOLUME볼륨이 마운트될 위치를 설정USER커맨드를 실행..