컨테이너/도커 9

Docker 총 정리

Docker란? 리눅스의 응용 프로그램으로 프로세스 격리 기술을 이용하여 컨테이너 실행 및 관리를 해주는 것이 도커다. 도커를 사용하는 이유? 각 개발자가 개발 세팅을 하면 버전 문제 등의 문제가 나올 수가 있다. 한 명의 개발자가 개발 세팅을 해놓고 이미지화하여 컨테이너에 저장을 하면 나머지 개발자들은 이미지만 받아서 사용만 하면 된다. vm과 docker의 차이점은? vm은 hostOS위에 새로운 OS를 설치하여 메모리 공간을 많이 차지한다. 반면 Docker는 host OS위에 필요한 라이브러리, 코드 등만 만들어서 설치하기 때문에 속도가 빠르고 메모리 공간을 많이 차지하지 않는다. Docker 이미지란? 코드, 시스템 도구, 시스템 라이브러리 및 설정과 응용 프로그램을 실행하는데 필요한 모든 것을..

컨테이너/도커 2022.05.22

Travis CI란?

Travis ci Github에서 진행되는 오픈소스 프로젝트를 위한 지속적인 통합(Continuous Integration) 서비스다. Travis ci를 이용하면 자동으로 테스트, 빌드하거나 배포할 수 있다. Travis Ci의 흐름 1. 로컬 Git에 있는 소스를 Github 저장소에 Push 한다. 2. Github master 저장소에 소스가 Push가 되면 Travis Ci에게 소스가 Push 되었다고 알려준다. 3. Travis ci는 업데이트된 소스를 Github에서 가져온다. 4. Github에서 가져온 소스의 테스트 코드를 실행해 본다. 5. 테스트 코드 실행 후 테스트가 성공하면 AWS 같은 호스팅 사이트로 보내서 배포한다. Travis ci 사용법 1. https://travis-ci..

컨테이너/도커 2022.05.22

docker copy vs volume

COPY docker copy는 로컬에 있는걸 도커 컨테이너로 복사 해준다. Volume docekr Volume은 도커 컨테이너가 복사가 아니라 로컬에 있는것을 매핑 하여 가져오기 때문에 더 빠르다. Volume 사용해서 어플리케이셔 실행 하는 법 docker run -p 3000:3000 -v /usr/src/app/node_modules -v ${pwd}:/usr/src/app -v /usr/src/app/node_modules -> 호스트 디렉토리에 node_modules은 없기에 컨테이너에 맵핑을 하지 말라고 하는것 -v ${pwd}:/usr/src/app -> pwd 경로에 있는 디렉토리 혹은 파일을 /usr/src/app 경로에서 참조 하라는 것이다.

컨테이너/도커 2022.05.18

docker react 설치

docker react 설치 설치 전 node.js 가 있는지 확인해야 한다. cmd 및 터미널을 열어 node -v 로 확인해보자 1. 바탕 화면에 폴더를 하나 생성한다. 2. Visual Studio Code에 생성한 파일을 넣어준다. 3. 터미널을 열고 npx create-react-app ./ 작성해준다. 4. 설치가 끝나면 아래와 같이 나오는걸 확인할 수가 있다. 개발 단계 명령어 설치가 끝나고 실행이 잘 되는지 아래 명령어로 확인해보자. npm run start 테스트 단계 명령어 개발이 완료되었으면 개발한 것에 문제가 있는지 없는지 테스트해볼 수가 있다. 아래 명령어로 확인해보자 npm run test 빌드 단계 명령어 테스트까지 완성이 된다면 이제는 배포를 해서 다른 사람들도 이용할 수 있..

컨테이너/도커 2022.05.17

Docker 이미지 만들기

도커 이미지 생성하는 순서 도커 파일 작성 -> 도커 클라이언트 -> 도커서버 -> 이미지 생성 도커 파일 작성 : 도커 이미지를 만들기 위한 설정 파일이다. 컨테이너가 어떻게 행동해야 하는지에 대한 설정을 정의한다. 도커 클라이언트 : 도커 파일에 입력된 명령들이 도커 클라이언트에 전달되어야 한다. 도커 서버 : 도커 클라이언트에 전달된 모든 중요한 작업들을 하는 곳이다. 도커 파일 만드는 순서 1. 베이스 이미지를 명시한다. 2. 추가적으로 필요한 파일을 다운 받기 위한 몇가지 명령어를 명시한다. 3. 컨테이너 시작시 실행 될 명령어를 명시한다. 베이스 이미지는 무엇인가? 도커 이미지는 여러개 레이어로 되어 있다. 그중에서 베이스 이미지는 이 이미지의 기반이 되는 부분이다. 도커 파일 생성 1. 먼저..

컨테이너/도커 2022.05.15

Docker 정리(4)

sh을 이용하여 명령어를 줄여보자 하나의 컨테이너에서 여러 작업을 할때마다 docker exec -it 컨테이너이름 ls 식으로 작성을하였다. docker exec it 컨테이너이름 을 중복해서 작성하는것 보다 sh 이용하면 작업하는 컨테이너 안에서 쉽게 작업을 할수가 있다 sh에서 빠져 나오고 싶으면 ctrl + d 하면 빠져 나올수가 있다. -ls : 컨테이너 디렉토리에 있는 내용(디렉토리, 파일) 확인 - touch new-file : 파일 생성 - export hello=hi : hello 변수에 hi 넣고 echo $hello : - hello 변수에 hi 출력 참고자료 https://www.inflearn.com/course/%EB%94%B0%EB%9D%BC%ED%95%98%EB%A9%B0-%..

컨테이너/도커 2022.05.15

Docker 정리(3)

레디스(Redis)란? Key와 Value를 가진 NoSQL 데이터 베이스다. 메모리에 저장을 하기 때문에 Mysql같은 데이터베이스에 데이터를 저장하는 것과 데이터를 불러올때 훨씬 빠르게 처리할수가 있으며, 비록 메모리에 저장하지만 영속적으로도 보관이 가능하다. 그래서 서버를 재부팅해도 데이터를 유지할수있는 장점이 있다. RDBMS와 NoSql의 차이점 및 NoSql이 무엇인지는 https://jungkeung.tistory.com/138 에서 확인 하자 레디스를 이용한 컨테이너 활용 일단 먼저 레디스 서버를 실행 한 후, 레디스 클라이언트를 통해서 서버에 명령어를 전달해보자. 1. 터미널을 실행 후, 레디스 서버를 작동 docker run redis 2. 레디스 클라이언트를 켜야 하는데 첫번쨰 터미널..

컨테이너/도커 2022.05.15

Docker 정리(2)

기본적인 도커 명령어 알아보기 도커 이미지를 실행시킬 때 docker run 이미지 이름 ls (ex: docker run hello-world ls)를 작성한다. docker -> 도커 클라이언트 언급 run -> 컨테이너 생성 및 실행 이미지 이름 -> 이 컨테이너를 위한 이미지 ls -> 이미지의 기본 시작 명령어 대신 실행할 명령어(ls는 파일 목록을 출력) 작동 순서 1. 도커 클라이언트에 명령어 입력 후 도커 서버로 보낸다. 2. 도커 서버에서 컨테이너를 위한 이미지가 캐쉬에 저장되어 있는지 확인한다. 3. 없다면 도커 허브에서 다운 받아온다 있다면 그 이미 가지고 있는 이미지로 컨테이너 생성한다. 실행 중인 컨테이너 나열 CONTAINER ID : 컨테이너의 고유한 아이디 해쉬값이다. 실제로..

컨테이너/도커 2022.05.15

Docker 정리(1)

도커를 사용하는 이유 java, mysql, c# 등 환경 세팅 및 버전을 세팅한 것을 도커 이미지에 저장한다. 이 이미지를 가져와 다른 사람이 사용하면 나와 같은 환경 세팅 및 버전을 사용할 수가 있다. 도커란? 컨테이너 기반의 오픈소스 가상화 플랫폼 이다. 도커 위에서 동작하는 것이 컨테이너이고, 컨테이너 안에서 동작하는 각각의 애플리케이션들은 리눅스 운영체제에서 동작한다. 컨테이너란? 컨테이너 안에 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순화해준다. AWS, Azure, Google cloud 등 어디에서든 실행 가능하게 해 준다. 컨테이너는 소프트웨어를 환경으로부터 격리시키고 개발과 스테이징의 차이에도 불구하고 균일하게 작동하도록..

컨테이너/도커 2022.05.14