docker(11)
-
[Docker] docker compose 이용해서 node.js , redis 애플리케이션 띄우기
Node.js 환경에서 Redis사용법 redis-server를 작동 redis 모듈 다운 redis 모듈 다운 후 redis클라이언트 생성 redis.createCleint()함수를 이용해 클라이언트 생성 하지만 여기서 redis server가 작동하는 곳과 Node.js 앱이 작동하는 곳이 다른 곳이면 host인자와 port인자를 명시 ex) 예로 const client = redis.createClient({ host: "https://redis-server.com", port : 6379 }) 도커 환경에서 redis 클라이언트 생성시 주의사항 보통 도커를 사용하지 않는 환경에서는 redis서버가 작동되고 있는 곳의 host옵션을 URL로 위에 처럼 주면 되지만, 도커 Compose를 사용할 때는..
2023.04.15 -
[Docker] Docker Volume(볼륨)을 이용해 빌드 없이 소스 코드 반영하기
COPY할 경우 소스코드 변경 할 때마다 이미지를 변경(빌드)해야 했습니다. Volume은 도커 컨테이너의 부분들이 로컬의 있는 부분을 반대 반향으로 참조(Mapping)하고 있습니다. Volume을 이용해 어플리케이션 실행하는 법 docker run -p 5000:8080 -v /usr/src/app/node_modules -v $(pwd):/usr/src/app -v /usr/src/app/node_modules 호스트 디렉토리(로컬 or EC2같은 컴퓨터)에 node_modules은 없기에 컨테이너에 매핑을 하지 말라고 하는 것 -v $(pwd):/usr/src/app pwd (현재 작업 중인 디렉토리. print working directory) 경로에 있는 디렉토리 혹은 파일을 /usr/src/..
2023.04.14 -
[Docker] node.js 애플리케이션 도커로 만들기
빈 프로젝트에 yarn init (npm init하셔도 무방합니다) -> packge.json생성 server.js생성 후 간단한 GET요청 하는 express 프레임워크를 이용한 코드입니다. dockerfile에 위와 같이 작성해줍니다. FROM 하나의 Docker이미지는 base이미지부터 시작해서 기존 이미지 위에 새 이미지를 중첩해 여러 이미지 층을 쌓아가며 만들어집니다. node:14 -> node 12버전을 base 이미지로 사용한다는 뜻입니다. COPY 호스트 컴퓨터에 있는 디렉토리나 파일을 docker이미지의 파일 시스템으로 복사합니다. package.json과 server.js도 복사해줘야 오류가 안납니다. RUN 이미지 빌드 시 커맨드 실행 ex) pip install , npm inst..
2023.04.13 -
[Docker] 도커 이미지 직접 만들기
도커 이미지를 항상 도커 hub에 있는 거를 가져와서 사용했는데 직접 도커 이미지를 만들어서 사용할 수 있고, 만든 도커 이미지를 도커 허브에 올려서 공유할 수 있습니다. (npm같은) 복습 - 도커 이미지는 컨테이너를 만들기 위해 필요한 설정/종속성들을 갖고 있는 소프르퉤어 패키지 - 도커 이미지는 도커 hub에 이미 만들어 놓은 것을 이용할 수 있고 , 직접 내가 만든 걸 도커 hub에 업로드해서 공유할 수 있습니다. 명령어 docker create 도커 이미지 생성 순서 Dockerfile작성 --> 도커 클라이언트 --> 도커 서버 --> 이미지 생성 - dockerfile : 도커 이미지 만들기 위한 설정 파일. 컨테이너가 어떻게 행동할 지에 대한 설정들을 정의합니다. - 도커 클라이언트 : d..
2023.04.12 -
[Docker] Docker 실행 중인 컨테이너에서 터미널로 접근하기
실행 중인 (run) 컨테이너에 명령어를 전달 하려면 기존에는 docker exec -it 명령어 이렇게 하나씩 명령어를 모두 넣었는데 컨테이너 안에 shell이나 터미널 환경으로 접속하면 좋습니다. 마지막 명령어를 쉘 (예로 zsh, bash , powershell등이 있겠죠)를 넣어주면 됩니다. docker exec -it 컨테이너를 쉘 환경으로 접근 첫번째로 apline이미지로 컨테이너 하나 실행! docker run alpine ping localhost exec를 이용하고 마지막 명령어에 sh 입력 후 컨테이너 안에서 터미널 환경을 구축! docker exec -it sh 그 안에서 여러 터미널에서 할 수 있는 작동들을 해보기 ex) ls touch export hello=hi echo $hel..
2023.04.12 -
[Docker] Docker 레디스(redis)로 띄우기
Redis 도커 환경에서 실행하기 redis서버와 redis클라이언트(redis-cli)가 필요합니다. redis 서버가 먼저 작동 (docker run redis) 서버 실행 후 redis 클라이언트 실행 후 명령어를 레디스 서버에 전달. 레디스 서버/ 레디스 클라이언트 둘 다 같은 컨테이너 안에서 실행 1. redis 서버 실행 docker run redis 2. 이미 실행 중인 컨테이너에 명령어 전달 시 exec를 쓴다고 했으니 redis서버가 실행 중인 컨테이너에 exec를 이용해 redis 클라이언트도 실행합니다 * -it 옵션은 interactive terminal로 -it없으면 redis-cli 키고 밖으로 다시 나와버림..... docker exec -it redis-cli
2023.04.12