본문 바로가기

전체 글

AWS EC2 서버에서 도커(docker)로 서비스 배포하기 1. EC2서버 접속 ssh -i {~/.ssh/sparta-docker.pem} ec2-user@{public_ip} 2. yum: Amazon linux에서 패키지를 관리하는 CLI 툴, 업데이트 확인 sudo yum update -y 3. amazon-linux-extras를 사용하여 docker 설치 sudo amazon-linux-extras install docker -y 4. docker 실행 sudo service docker start 5. docker 상태 확인 service docker status 6. ec2-user에게 docker 실행 권한 부여 - 바로 적용되지 않고 재 접속해야 적용됨 exit로 종료 후 재 접속 필요 sudo usermod -a -G docker ec2-us.. 더보기
도커(docker) 사용하지 않는 docker 리소스 정리하기 1. 현재 리소스 확인하기 // container 확인 docker ps // image 확인 docker images // network 확인 docker network ls // volume 확인 docker volume ls 2. 리소스 삭제하기 // container 삭제 docker rm container_id // image 삭제 docker rmi image_id // network 삭제 docker network rm network_id // volume 삭제 docker volume rm volume_id // 정지된 컨테이너, 사용되지 않는 네트워크, 이미지, 빌드 캐시를 일괄 삭제 docker system prune // -a옵션으로 더 강력한 일괄 삭제, 사용되지 않는 로컬 이미지도.. 더보기
도커(docker) 컨테이너 리소스 사용량 제한하기 1. 리소스 사용량을 제한해야하는 이유 도커는 호스트의 디스크와 메모리를 같이 사용하기 때문에 최악의 경우 다른 프로세스에도 영향을 줄 수 있음 1) 메모리 부족 호스트의 커널에서 OOME(Out Of Memory Exception)을 일으켜서 여유 memory를 생성하기 위해 프로세스 삭제 2) 한 컨테이너에 cpu 독점 다른 컨테이너에 cpu가 할당되지 않아 정상 작동하지 못함 3) 디스크 부족 데이터를 디스크에 저장하지 못하거나 새로운 프로세스를 정상 사용하지 못하는 경우 발생 2. 리소스 제한하는 방법 1) 메모리 제한 docker run -it -m 10m python:3.8 2) cpu 제한 docker run -it --cpus=0.5 python:3.8 cf. 사용하고 있는 리소스 확인 d.. 더보기
[TIL] 사이드 프로젝트 30일차 1. 개발 진행 상황 - 도커 공부 중(레디스, 젠킨스 등을 사용하기 위함) 2. 새로 배운 것 - 도커 공부 정리 https://k-sky.tistory.com/category/Docker 'Docker' 카테고리의 글 목록 k-sky.tistory.com 3. 오늘 한 일 / 회고 지난 프로젝트 때 기능 구현 때문에 도커를 아주 얕게 찾아보고 따라하고 하다가 어려워서 접었었음... 근데 확실히 강의 들으면서 따라하니까 쉽고ㅠㅠ 두번 째 접하는거고(공부를 약간했음), 그리고 그 때 보다 어쨋든 뭔가 더 공부했기에... 조금 더 쉽고 재밌음 4. TO-DO LIST - 도커 공부 더보기
[Docker] 도커(docker) 편리하게 실행하기 - Docker-compose 1. Docker-compose란?- 여러 컨테이너를 편리하게 실행하기 위해서 만들어진 도구- YAML 파일을 통해 컨테이너를 실행하는데 필요한 옵션(실행 방법, 버전 관리 등) 정의   2. Docker-compose 사용을 위해 필요한 것1) Docker-compose.YAML 파일 👈🏻 직접 만들어야함 큰 틀에서 구성요소는 services, network, volume, config, secret(version은 deprecated 되어 설정하지 않아도 됨) 2) Docker-compose 실행 파일 👈🏻 mac/window 용 도커에 기본으로 되어있음 *YAML(Ain't Markup Language): 데이터를 저장하는 파일 포맷으로 비슷한 형식으로 XML과 JSON이 있지만 사람이 읽기.. 더보기
[Docker] 여러개의 컨테이너 연결하기 - Docker network 1. Docker network란?- 도커 컨테이너는 분리된 파일 시스템과 네트워크를 갖고있어서 설정하지 않으면 파일 시스템과 네트워크 통신이 불가능함- network를 통해서 도커 컨테이너끼리 통신할 수 있게 만들 수 있음  2. network 확인 1) 도커 네트워크 확인docker network ls 2) 도커 네트워크 상세 정보 확인docker network inspect bridge    3. 사용자 정의 network 설정하기 1) 네트워크 생성 docker network create {생성할 네트워크 이름}  2) 네트워크 연결과 컨테이너 실행docker run -d -p 24017:24017 --network {네트워크명} --networ.. 더보기
도커(Docker) 컨테이너에서 생성된 데이터 유지하기- named volume 도커에서 컨테이너를 삭제하면 컨테이너에서 생성된 데이터도 같이 삭제된다.(그래서 업데이트 할 때 주의해야한다고 했음) 도커에서 데이터를 유지하는 방법 named volume을 적용해보자! 1. named volume - mongdb 이용 named volume: 도커에서 유지되는 데이터를 관리해야 할 때 편리하게 이름으로 사용할 수 있게 만든 volume 1) named volume 생성 // volume 생성 docker volume create 볼륨명 // volume 정보 보기 docker volume inspect 볼륨명 - Mountpoint: 데이터 저장 경로 2) mongodb 실행 docker run -- name mongo_db -p 27017:27017 -d mongo 3) 실행 중인 .. 더보기
[Docker] 내가 만든 애플리케이션 도커로 실행하기, 이미지 공유하기 1. 도커(docker) 이미지(image) 만들기 1) Dockerfile 생성 도커 이미지를 만들기 위해서 Dockerfile이 필요함 Dockerfile이란 도커 이미지를 어떻게 생성할 것인지 정의한 파일 FROM: 도커 이미지를 생성할 때 기본적으로 사용할 base image를 작성, 주로 OS이미지, 런타임 이미지를 지정 ADD src dst: 호스트 머신에 있는 파일이나 폴더를, dst라는 위치에 저장(만약, 이미지에 복사하려는 디렉토리가 없을 시 도커가 자동 생성해줌 ) RUN script: 스크립트 실행, 이미지를 빌드할 때 사용하는 커맨드 CMD: 생성된 도커 이미지를 실행할 때 자동으로 실행되는 커맨드 기타 EXPOSE: 이미지가 통신에 사용할 포트 지정 ENV: 환경변수 지정 ENTR.. 더보기