목록DevOps/Docker (14)
seok의 패치노트
sudo apt-get update - sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | s..

개발환경별로 어플리케이션을 배포하는게 참 할때마다 힘들었다... 윈도우에서 개발하고 리눅스로 배포하고 ... 하지만 도커를 이용하면 동일한 환경에서 하는 것 처럼 배포가 가능해진다. 먼저 Spring boot를 배포하기 위해서는 프로젝트 jar 파일이 필요하다. 1. jar 파일 만들기 - 인텔리제이에서 gradle - Tasks - build - bootJar - 프로젝트 위치에서 build - lib 밑에 jar 파일이 생성된걸 확인 할 수 있다. 2. 특정위치로 jar파일을 옮기기 - 특정위치에 jar파일을 옮긴다. - volume mount 할 폴더들도 미리 만들어두자!! images : 파일 업로드 기능에서 사용 될 폴더와 동기화될 폴더 mydb : mysql 데이터베이스 와 동기화 될 폴더 3..
Dockerfile 의 내용 # 1. node 설치 FROM ubuntu:20.04 RUN apt-get update RUN DEBIAN_FRONTEND=noninteractive apt-get install -y nodejs npm # 2. 소스 복사 COPY . /usr/src/app # 3. Nodejs 패키지 설치 WORKDIR /usr/src/app RUN npm install # 4. WEB 서버 실행 (Listen 포트 정의) EXPOSE 3000 CMD node app.js 파일내용을 보면 #1. node 설치 베이스이미지인 ubuntu:20.04를 설치하고 거기에 apt 패키지 매니저를 설치하고 node와 npm을 인스톨한다. #2. 소스복사 현재 디렉터리에 있는 파일들을 /usr/src..

저번시간에는 현재상태까지 스냅샷으로 찍어 새로운 이미지를 만들어내는 방식인 commit 방식에 대해 알아보았다 (못찾겠으면 여기로.. https://oneseok.tistory.com/51) 이번시간에는 아마도 현업에서 많이들 사용할 방식인 build 방식을 이용하여 이미지를 만들어보겠다. build방식은 "Dockerfile" 이라는 어떠한 파일을 이용하여 이미지를 만드는 방식인데 이 "Dockerfile" 안에 같이 설치할 내용들을 적어두고 실행 시키는 방식이다. 이게 엄청나다!!.. commit처럼 bash 쉘에 들어가서 무언가 하는 작업(git을 설치한다던지..) 없이 그냥 뭐뭐 같이 설치할지 Dockerfile넣고 실행시키기만 하면된다, 이렇게 Dockerfile 에 설치할 내용들을 명시해두면 ..

도커이미지는 내가 필요로 하는 요소들 그자체를 뜻한다. 예를들면 DB가 필요하면 mysql:5.7 ubuntu가 필요하면 ubuntu:18.04LTS 나 ubuntu:lastest 도커의 이미지방식은 신기한게 기본이미지에 기능이나 모듈을 추가하여 새로운 이미지로 만들 수 가 있다. 예를들어 ubuntu:latest 버전의 기본이미지에 git을 설치하여 스냅샷 처럼 찍어 새롭게 이미지로 만들 수가있다. 이렇게 새롭게 만든 이미지는 다른 컴퓨터에 이미지 설치시 git을 따로 안받아도 되게하는 장점이 생긴다! (필요한 것들은 다 받아다가 이미지화 시켜두고 다른컴퓨터에 설치시 그냥 이미지만 다운받으면 끝!) 도커 이미지를 만드는 방식은 두가지 방식으로 나뉜다. commit build 먼저 commit 방식부터 ..

아마 아마존 aws를 준비하면서 도커를 이용할 것 같아 미리 한번 시도해보았다. docker에 띄운 mysql을 현재 내 환경에서 workbench로 접속하는 방법은 무엇일까?? 도커를 공부하면서 요즘 계속 궁금했던 내용인데 시간이 날때 한번 해보니 크게 어렵지 않았다. 그리고 mysql을 3306 기본포트 말고 다른포트로 동작하게 하려면 어떻게 해야할지도 궁금하여 시도해보았다! (-p 옵션을 이용한 포트포워딩 말고 mysql 동작포트 자체를 변경하는...) docker run -d -p 3307:3307 --name mysql -e MYSQL_ROOT_PASSWORD=pass -e MYSQL_TCP_PORT=3307 mysql:5.7 일단 내가 사용했던 명령어인데 키워드는 "MYSQL_TCP_PORT"..

도커 명령어를 치다보면 엄청 복잡하고 길때가 있다. 이럴경우 나도 사람인지라 띄어쓰기라던지 오타라던지 실수할때가 많다. yml 파일로 만들면 알아보기도 쉽고 설정도 편하게 하여 컨테이너를 실행시킬수 있다. yml 파일을 만들어서 mysql , wordpress 컨테이너 실행하기 1. yml 파일 만들기 2. mysql과 연결시킬 호스트 경로에 yml 파일 가져다 두기 3. 터미널에서 yml파일이 있는 경로로 이동하여 docker-compose up -d 명령어로 실행

도커는 특성상 컨테이너가 삭제되면 그 안에있던 데이터들도 모두 날아간다. 내가 테스트 해본결과 mysql 컨테이너를 삭제하면 그안에 있던 wordpress 데이터가 날아가는걸 확인했다. 그래서 컨테이너를 삭제하더라도 유지시키고 싶으면 "-v" 옵션을 사용해야한다. volume mount 명령어 - "-v" 명령어를 이용하여 데이터를 유지시키고 싶을때 사용한다. (도커는 컨테이너를 삭제하면 안에 있는 데이터도 모두 날아가기에 유지시키고 싶으면 이 명령어를 사용해야한다.) - docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql -v 로컬경로:도커 컨테이너 의경로 컨테이너명 (docker run -d -p 3306:3306 -e..