docker image11 [Docker] Docker Compose [2] (테스트 영상) 도커로 springBoot API 서버, mysql 서버를 같은 네트워크로 묶어서 띄운 후 호스트 PC에서 호출하는 예제테스트 프로젝트springBoot server Dockerfile 😄FROM openjdk:11-jdk-slimWORKDIR /app#현재 경로의 모든 파일 복사COPY . .# 개행문자 오류 해결 [unix와 window 시스템 차이], 이건 예제 소스 그대로 가져옴RUN sed -i 's/\r$//' gradlew# gradlew파일 파일 실행 권한 부여RUN chmod +x ./gradlew# gradlew 빌드 실행RUN ./gradlew clean build#환경변수 세팅ENV JAR_PATH=/app/build/libs#파일명 변경RUN mv ${JAR_PATH}/*.jar.. IT/Live Coding 2023. 11. 5. [Docker] Docker Compose [1] (테스트 영상) 목차Docker Compose 이용해서 mysql 컨테이너 실행 후 볼륨 관련 테스트 하는 간단한 예제docker-compose.yml 😃yml 형식이라 들여쓰기 주의services:# db라는 이름은 내맘대로 그 안의 image, restart 등은 수정 불가 db: image: mysql restart: always volumes: # 호스트 볼륨 연결 - ./mysql-data:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=1234 - MYSQL_DATABASE=rootdb ports: - "3309:3306"# 위에서 설정한 볼륨 연결volumes: mysql-compose-vo.. IT/Live Coding 2023. 11. 5. [Docker] Docker File [6] (테스트 영상) 목차Dockerfile 🙂FROM mariadb#환경변수 세팅ENV MYSQL_USER=sonENV MYSQL_PASSWORD=1234ENV MYSQL_ROOT_PASSWORD=1234ENV MYSQL_DATABASE=sondb#캐릭터셋 세팅CMD [ "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci" ]Docker Command 😎#빌드docker build -t mysql-image .#그냥 볼륨 이용해서 컨테이너 실행(mysql에서 자동으로 볼륨 생성)#3306 ~ 3308까지 포트 사용중이라 3309로 포트포워딩 함docker run -d -p 3309:3306 --name mysql-container mysql-.. IT/Live Coding 2023. 11. 5. [Docker] Docker File [5] (테스트 영상) 목차nginx의 프록시를 이용해 요청에 따라 서버 2개로 분배하는 예제lb Dockerfile(메인서버) 🤗예제에서는 lb가 메인서버를 뜻함클라이언트 요청을 제일 먼저 받는 서버FROM nginx#vim은 편의상 설치했음, 선택사항임RUN apt-get updateRUN apt install -y vim# COPY index.html /usr/share/nginx/html#(메인서버 호출 시 index.html 없어서 404 페이지 보여서 만들었음)COPY index.html /etc/nginx/html/index.htmlCOPY conf/nginx.conf /etc/nginx/conf.d/default.confENTRYPOINT [ "nginx", "-g", "daemon off;"]lb nginx... IT/Live Coding 2023. 11. 4. [Docker] Docker File [4] (테스트 영상) Dockerfile로 nginx 설정파일 복사 후 기동Dockerfile을 이용해서 nginx 이미지를 만들되 내가 만든 설정파일을 복사해서 실행하는 예제Dockerfile 😄#DockerfileFROM nginx#docker build 실행 경로: C:\Users\사용자명\DOCKER_LAB\ex03#이 경로 하단에 webapp폴더, conf폴더 COPY webapp /usr/share/nginx/htmlCOPY conf/nginx.conf /etc/nginx/conf.d/default.conf ENTRYPOINT [ "nginx", "-g", "daemon off;"]#Dockerfile로 이미지 만들 때 nginx index html파일과 .conf 설정 파일 복사 해서 #내가 설정한 htm.. IT/Live Coding 2023. 11. 4. [Docker] Docker File [3] (테스트 영상) Dockerfile의 RUN을 이용해서 이미지를 만들 때 nginx를 설치해서 만들되 COPY를 이용해서index.html을 내가 만든 html로 적용해보는 예제Dockerfile 😄FROM ubuntu#RUN을 이용해서 기존의 우분투에 apt update 후 nginx 설치RUN apt-get update# -y 옵션 안 붙이면 빌드 시 에러 발생함RUN apt-get install -y nginxWORKDIR /var/www/html COPY ./webapp ./ENTRYPOINT [ "nginx", "-g", "daemon off;"]개인 스터디 기록을 메모하는 공간이라 틀린점이 있을 수 있습니다.틀린 점 있을 경우 댓글 부탁드립니다.reference: https://www.youtube.c.. IT/Live Coding 2023. 11. 4. [Docker] Docker File [2] (테스트 영상) 목차Docker Entrypoint & Workdir 😄Entrypoint: Dockerfile로 만든 이미지를 컨테이너화 할 때 기본 명령어Workdir: Dockerfile로 만든 이미지를 컨테이너화 할 때 기본 디렉토리Dockerfile로 jar 실행 😎jdk 11버전으로 만든 springBoot 애플리케이션을 실행하기 위해 Dockerfile로 openjdk 11버전 이미지를 다운받아서 Entrypoint, WORKDIR, COPY 등을 이용해서 실행하는 예제Dockerfile 🙄#가져올 이미지FROM openjdk:11-jdk-slim#컨테이너화 될 때 명령이 실행되는 디렉토리WORKDIR /app#좌측 경로의 jar파일을 WORKDIR의 application.jar이라는 파일명으로 복사C.. IT/Live Coding 2023. 11. 2. [Docker] Docker File [1] (테스트 영상) 목차호스트 PC의 mount폴더의 index.html의 내용이 컨테이너의 htdocs 경로에 복사도 제대로 됨Docker 파일 내용 예시 😃#apache webserver에서 이미지를 가져와서 현재 경로 하위의 mount폴더의 내용을 /usr/local/apache2/htdocs로 복사#컨테이너 실행 시 명령어는 httpd-foreground로 설정FROM httpdCOPY ./mount /usr/local/apache2/htdocsCMD ["httpd-foreground"]파일명을 Dockerfile(확장자 X)로 저장mount경로에 html파일 생성 🙂 Hello WorldDocker파일 이미지화 🥰#webserver는 내가 설정할 이미지명, 그 뒤에는 현재 경로 하위 지정docker build.. IT/Live Coding 2023. 11. 1. [Docker] Docker image commit/push(테스트 영상) Docker commit 😄컨테이너를 이미지로 스냅샷Docker commit {container ID} {NameSpace}/{repositoryName}:{tag}Docker push 🤗이미지를 repository에 반영Docker push {NameSpace}/{Repository}:{tag}동영상 내용 정리 😄깡통 ubuntu 이미지를 내려 받은 후 vim 설치, 테스트 파일 생성 후 Docker Hub에 commit/push 한 다음기존 이미지, 컨테이너 삭제, push한 이미지를 내려 받았을 때 vim과 테스트 파일이 그대로 있는지 확인하는 과정개인 스터디 기록을 메모하는 공간이라 틀린점이 있을 수 있습니다.틀린 점 있을 경우 댓글 부탁드립니다.reference: https://www.yo.. IT/Live Coding 2023. 10. 29. [Docker] 모든 image 삭제(feat. windows) 도커에서 이미지 단건을 삭제하려면 아래 명령어로 삭제하면 된다. docker rmi httpd #(이미지명) 그러나 실행중인 컨테이너의 이미지는 삭제할 수 없다. 이럴 땐 실행중인 컨테이너를 종료 시키고 삭제한 다음 이미지를 삭제해야 한다. 역시나 귀찮다.. 한방에 아래명령어를 복붙해서 컨테이너 종료, 삭제, 이미지 삭제를 할 수 있다. windows의 경우 Power Shell에서 가능 docker stop $(docker ps -q)#실행중인 모든 컨테이너 종료 docker rm $(docker ps -a -q)#종료된 모든 컨테이너 삭제 docker rmi if $(docker images -q)#모든 이미지 삭제 결과 테스트니까 위 명령어로 이미지 전체를 삭제 했지만 실제 운영단계에서는 각별히 주.. IT/DevOps 2023. 10. 26. 이전 1 2 다음