Docker 작업 7

.Volume

도커 컨테이너는 Stateless 하게 설계되어야한다. 도커 컨테이너 사용 시의 가장 중요한 Topic 컨테이너의 정체성을 결정하는 데이터는 컨테이너에 저장되지 아니한다. 컨테이너가 Host 의 데이터에 의해 동작하도록 설계해야하며 이를 Stateless 하다. 라고 한다. 라고 하며, 이는 도커 컨테이너를 사용함에 가장 권장되는 방법이다. 도커 이미지는 Read Only , 변경 데이터는 컨테이너 레이어 에 저장 mysql 을 이용해 컨테이너를 만들 경우, mysql 의 이미지에 제공되는 데이터 외의 저장 데이터들은 Container Layer 에 존재 이미지는 어느 경우던 절대로 변경되지 아니한다. Stateless 한 컨테이너 설계를 하지 않을 경우, Docker Container 삭제 시 Cont..

Docker 작업 2021.01.27

Docker Tool Box 윈도우 공유 폴더 마운트

도커 툴박스는 오라클 Virtual Box 기반으로 돌아가니, 설정에서 공유 폴더를 지정해줌 도커 머신 내부 진입 공유폴더 확인은 df 로 확인할수 있음 docker-machine ssh default < 진입 /root 에서 공유할 폴더 생성 < 머신폴더 docker-machine ssh default cd /root mkdir /root/shared sudo mount -t vboxsf shared /root/shared cd /root/shared # 이것저것 만들어보며 마운트됬나 확인 # touch test.txt exit # aio 문제 관련 커맨드 추가 docker run -it -v /root/shared:/var/lib/mysql \ -p 3306:3306 -e MYSQL_ROOT_PASS..

Docker 작업 2021.01.24

도커 툴박스 포트 포워딩

도커 툴박스 설치 후 사용해보는 중 Oracle Virtual Box 기반으로 돌아가는 것 같아서 시험 도커 컨테이너 포트 바인딩을 -p 로 주면, Virtual Machine 바깥의 Host OS 에서 접근하나.. 싶었음 즉 포트 포워딩이 Host OS -> Virtual Machine -> Docker Container 까지 되있는 건가 궁금 우분투에 아파치 서버를 달아서 들어가보자 docker run -i -t --name network_test -p 80:80 ubuntu:14.04 docker run -i -t --name network_test2 -p 버츄얼머신IP:7777:80 ubuntu:14.04 # 우분투 배시 셀에 접속 후 apt-get update apt-get install apa..

Docker 작업 2021.01.23

Docker Compose 를 이용한 Fat.jar 들의 실행

순서 각 마이크로 서비스의 yaml 파일들은 docker 프로파일을 작성시켜놓는다. 마이크로 서비스 루트 폴더 마다 Dockerfile 을 작성한다. 최상위 루트 프로젝트에 docker-compose.yml 파일로 관리시킬 서비스를 기술한다. Jar 파일로 각 서비스를 빌드 ( 최상위 폴더에서 공통 빌드 ) 시키고 docker-compose 로 빌드한다. Application.yml 파일에 Spring Profile 기술 yaml 파일은 - - - 를 기술하면 하나의 yaml 파일에 여러개의 프로파일을 놓아둘 수 있다. --- spring: profiles: docker server: port: 8080 app: product-service: host: product port: 8080 recommend..

Docker 작업 2021.01.02

OpenJDK 12.0.2 기반 Fat.jar 도커이미지 빌딩

개요, 순서 Docker 를 사용하여 SpringBoot 의 Fat.jar 를 Docker Image 로 빌딩하는 작업을 기술한다. 첫번째로 Target Project 를 Gradle 로 build 시킨다. 이후 Docker Image 빌딩에 필수 파일인 Dockerfile을 정의한다. Target Project 의 Root 로 가서 docker 를 이용해 이미지로 빌딩한다. Docker 엔진 내부의 이미지들 중 해당 이름의 이미지가 있는지 확인한다. 서비스를 시작해보고 테스트하고 로그를 확인해본다. Docker File FROM : 해당 이미지를 사용하여 빌드하겠다. EXPOSE : 다른 컨테이너 해당 포트를 노출시키겠다. ADD : 해당경로의 파일을 도커 이미지에 추가시키겠다. ENTRYPOINT :..

Docker 작업 2021.01.01

Docker 컨테이너의 JVM 할당량 확인해보기

일단 확인 결과 CPU 사용량은 논리적코어 6개를 가짐 echo Runtime.getRuntime().availableProcessors() | docker run -i --rm openjdk:12.0.2 jshell -q Jan 01, 2021 8:32:18 AM java.util.prefs.FileSystemPreferences$1 run INFO: Created user preferences directory. jshell> Runtime.getRuntime().availableProcessors()$1 ==> 6 jshell> CPU 사용량 준수 확인 : SE 12 --cpus 키워드로 도커 컨테이너의 cpu 사용량을 설정 해보고 확인 컨테이너의 제한량을 준수하고 있는 상태를 확인 echo Run..

Docker 작업 2021.01.01