본문 바로가기

도커

(8)
[도커] Volume
[도커] Docker Compose Docker Compose란? 다중 컨테이너 도커 애플리케이션을 정의하고 실행하기 위한 도구 멀티 컨테이너 상황에서 쉽게 네트워크를 연결시켜주기 위해서 이용되는 Docker Compose 실행명령어 docker-compose up docker-compose up 이미지가 없을 때 이미지를 빌드하고 컨테이너 시작 docker-compose up --build 이미지가 있든 없든 이미지를 빌드하고 컨테이너 시작 docker-compose -d up detached모드로서 앱을 백그라운드에서 실행시킨다. 그래서 앱에서 나오는 output을 표출하지 않는다. docker-compose up -d --build 백그라운드에서 실행시키며 이미지를 빌드하여 컨테이너 시작 docker-compose down 컨테이너를..
[도커] 도커에서 올린 서버를 실행시켰는데 로컬에서 들어가지 못한다..? 간단한 node.js 파일을 만들었다. COPY를 한 이유는 컨테이너에서 npm install을 해야하는데 build를 할 때 package.json이 없어서 에러가 날 것이기 때문에 도커의 컨테이너에도 package.json을 복사해서 넣어준 것이고, node.js를 실행시키기 위한 server.js도 복사해주었다. 포트는 8080으로 하여 docker run으로 실행해서 console.log에 찍었던 것 처럼 잘 실행이 된 것 같았다. 그런데 내 컴퓨터의 브라우저에서 localhost:8080을 하면 접속이 되지 않는다. 그 이유는 내 로컬의 네트워크와 도커의 네트워크를 연결 시켜주어야 한다. 명령어 docker run -p(포트) [로컬호스트 번호(임의로지정)]:[도커 컨테이너의 네트워크번호] [컨..
[도커] 도커 파일로 도커 이미지 만들기 Dockerfile -> 도커 클라이언트 -> 도커 서버 -> 이미지 도커 파일에 입력된 것들이 도커 클라이언트에 전달되어서 도커 서버가 인식하게 해야 한다. => docker build ./ or docker build . build란? 해당 디렉토리 내에서 dockerfile이라는 파일을 찾아서 도커 클라이언트에 전달시켜준다. docker build 뒤에 ./ 와 . 는 둘다 현재 디렉토리를 가리킨다. 도커이미지 생성 시 기억하기 쉬운 이름 주기 docker build -t [하고싶은 이름(아이디)]/[프로젝트이름 혹은 저장소] : [버전]
[도커] 파일 만들기 DockerFile작성 -> 도커 클라이언트 -> 도커 서버 -> 이미지 생성 Docker File이란? Docker Image를 만들기 위한 설정 파일입니다. 컨테이너가 어떻게 행동해야 하는지에 대한 설정들을 정의해줌 도커 파일 만드는 순서(도커 이미작 필요한 것이 무엇인지 생각하기) 1. 베이스 이미지를 명시해준다. 2. 추가적으로 필요한 파일을 다운 받기 위한 몇가지 명령어를 명시해준다.(파일 스냅샷에 해당) 3. 컨테이너 시작시 실행 될 명령어를 명시해준다. FROM 이미지 생성시 기반이 되는 이미지 레이어 : 형식으로 작성 태그를 안붙이면 자동적으로 가장 최신것으로 다운 받음 ex) ubuntu:14.04 RUN 도커이미지가 생성되기 전에 수행할 쉘 명령어 CMD 컨테이너가 시작되었을 때 실행할..
[도커] 컨테이너 안에서 명령어 실행하기 컨테이너 밖에서 컨테이너에 명령어를 실행하려면 docker exec -it 를 입력해야한다. => 번거로움 해결: docker exeic -it sh 컨터이너 안에 쉘 환경으로 들어올 수 있다. 밖으로 나오고 싶으면 Ctrl + D
[도커] 레디스를 이용하여 컨테이너 이해하기 1. 터미널에서 레디스 서버를 작동 시킨다. 2. 레디스에 접속을 시도한다. => 실패! 이유 - 레디스 클라이언트가 레디스 서버가 있는 컨테이너 밖에서 실행을 하려하니 레디스 서버에 접근을 할 수가 없기에 레디스 클라이언트를 작동하려 할 때 에러가 발생한다. 3. 정답: 레디스 클라이언트도 컨테이너 안으로 넣어서 실행시켜주어야 한다. - exec명령어를 사용한다. exec이란? 이미 실행중인 컨테이너에 명령어를 전달할 때 사용됨. : docker exec -it redis-cli 여기서 it란? -it를 붙여주지 않으면 실행한 후 계속 명령어를 적을 수 없다. -i : interactive 상호적인 -t : terminal 결론적으로 -it가 없다면 그냥 redis-cli를 키기만 하고 밖으로 다시 나..
[도커] 명령어 모음 docker ps 현재 실행중인 컨테이너 목록을 보여줌 docker ps -a 실행했던 컨테이너 목록을 보여줌 docker run [컨테이너 이름] => docker create [컨테이너 이름] + docker start[컨테이너 이름] 을 동시에 하게 해줌 docker stop [컨테이너 이름] => 실행중인 컨테이너를 멈춤 docker kill [컨테이너 이름] => 실행중인 컨테이너를 멈춤 -- stop과 kill의 차이점 stop: 자비롭게 그동안 하던 작업들을 완료하고 컨테이너를 중지시킨다.(메시지를 보내고 있었다면 보내고 있던 메시지를 다 전송하고 중지한다) kill: 어떠한 것도 기다리지 않고 바로 중지를 시킨다. docker rm [컨테이너 이름] => 중지된 컨테이너를 삭제 ex) do..