문서정보 : 2022.09.22.~ 작성, 작성자 @SAgiKPJH
도커 Docker 컨테이너 Container 사용 방법에 대해서 배운다
- 도커(Docker)는 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트이다.
- 일종의 VM 축소판이다.
- 도커 웹페이지 설명
- 도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다.
- 여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 아우른다. 이는 실행 중인 환경에 관계 없이 언제나 동일하게 실행될 것을 보증한다.
- 도커는 리눅스에서 운영 체제 수준 가상화의 추상화 및 자동화 계층을 추가적으로 제공한다.
- 2013년 3월 13일에 오픈소스로 발표가 되었으며, 도커 자체가 매우 가볍기 때문에 하나의 서버나 가상머신이 여러개 동시에 구동할 수 있다.
- 기초과정
- 중급과정
- 문서 리뷰
- Dockerfile Build (대문자 불가)
docker build -t image_name . docker build -t image_name -f dockerfile . # 도커 파일이 다른 이름 또는 다른 폴더에 있을 시
- Make Container And Run 및 bash 접근 (CMD /bin/bash 설정을 안해놓을 시)
docker run --name container_test -it image_test /bin/bash docker run --name container_test -it image_test:latest /bin/bash # 보다 정확히 (버전 표시) docker run --name container_test -u user -it image_test:latest /bin/bash # 다른 유저로 접근 docker run -d image_test:latest # 백그라운드 실행
- Make Container And Run (CMD /bin/bash 설정을 해놓을 시 위와 동일)
docker run --name container_name image_name
- 만일 중간에 나와버려서 재 접근 해야할 시
docker start container_name docker exec -it container_name /bin/bash
- root 권한으로 접근 방법
docker exec -u 0 -it container_name bash
- container 및 image 상태 확인
docker ps # Container 확인 docker images # Image 확인
- container 및 image 제거
docker rm --force container_name # Container 강제 삭제 docker rmi image_name # Image 삭제
- Docker Image Tag 변경
docker tag test_image:latest juhyung1021/test-docker:latest
<none>
Image 삭제docker rmi $(docker images -f "dangling=true" -q) docker image prune
- Docker 배포
# 이름 변경 docker tag dockername:latest juhyung1021/test-docker:latest # Docker Login docker login # Docker 배포 docker push juhyung1021/dockername:latest"
- Docker-Compose (https://kimjingo.tistory.com/108)
# 실행 또는 실행중인 compose 업데이트 (-d : 백드라운드, -f : 파일 지정 ) docker-compose -f docker-compose.yml up -d # 부분 재실행 docker-compose restart service1 service2 service3 ... # 부분 업데이트 docker-compose up -d --build servicename # 삭제 docker-compose down
- docker
docker run -m 512m nginx # Memory 512MB 제한
docker run -m 512m --memory-reservation=256m nginx # Memory 부족 감지시 활성화
docker run --cpus=2 nginx # 최대 2개 CPU 사용 제한
docker run --cpus=2 --cpu-shares=2000 nginx # CPU 우선순위 부여 (1024 기본, 높은수록 우선순위 높다)
- docker-compose
services:
service:
image: nginx
deploy:
resources:
limits:
cpus: 0.50
memory: 512M
reservations:
cpus: 0.25
memory: 128M
service:
image: nginx
mem_limit: 512m
mem_reservation: 128M
cpus: 0.5
ports:
- "80:80"