Published: Apr 20, 2020 by Dev-hwon
Docker
doker 설치
-
리눅스/ 우분투 터미널에 입력
curl -fsSL https://get.docker.com/ | sudo sh
or
sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" sudo apt update sudo apt-cache policy docker-ce sudo apt install docker-ce
docker 사용
-
실행하고있는 컨테이너 목록 확인
sudo docker ps
-
설치된 이미지 목록 확인
sudo docker images
-
openTSDB 이미지 다운 - docker hub에서 다운
sudo docker pull petergrace/opentsdb-docker
-
openTSDB 이미지로 컨테이너 실행
sudo docker run -dp (외부port):4242 petergrace/opentsdb-docker
- 사용 가능한 외부포트 : 60000 60010 60030 4242 16010 16070
-
docker container 삭제
sudo docker rm -f (container id)
-
docker image 삭제
sudo docker rmi -f (image id)
-
코드를 이미지화 하는 방법
sudo docker build -t (docker hub 아이디)/(이미지 이름):(버전) (디렉토리)
ex)
sudo docker build -t cschae1123/dockertest:v1 .
-
이미지화 한 코드 실행
sudo docker run (docker hub 아이디)/(이미지 이름):(버전)
ex)
sudo docker run cschae1123/dockertest:v1
-
docker build options
--file , -f Name of the Dockerfile (Default is ‘PATH/Dockerfile’) --memory , -m Memory limit --rm true Remove intermediate containers after a successful build --tag , -t Name and optionally a tag in the ‘name:tag’ format
-
docker run options
-i : 컨테이너와 상호작용 -t : tty(터미널)을 사용 -d : -i 옵션의 반대. 컨테이너를 백그라운드 실행 -p [외부포트]:[내부포트] : 포트포워딩 설정 ex) -p 80:8080 -> 외부에서 들어온 80포트 요청을 컨테이너의 8080 포트로 포워딩시킨다. 포트를 여러개 열고 싶으면 -p 80:8080 -p 8088:8088 -p 27017:27017 이런식으로 이어서 쓰면 된다. -v : [외부절대경로]:[내부절대경로] : 컨테이너 외부(호스트) 볼륨과 컨테이너 내부 볼륨을 바인딩시킨다. -c : cpu 스케줄링 점유율 (기본값 1024) -m : 메모리 -rm : 컨테이너가 종료되면 삭제 /bin/bash: 리눅스의 경우 컨테이너에서 bash 쉘을 이용
-
컨테이너 자원 할당에 관한 -c, -m 옵션
-c, 또는 –cpu-share라고 쓰이는 옵션은 cpu 스케쥴링에서 컨테이너가 얼마나 많은 부분을 차지할지를 나타낸다. 기본 값은 1024이다. 이 옵션을 아예 주지 않았을 때의 기본 값이 1024라는 뜻은 일반적인 컨테이너의 2배만큼 cpu를 사용하게 하고 싶다면 2048을 주면 된다. 사용방법은 -c 1024 이다.
-m 옵션은 메모리 제한이다. 바이트, 키로바이트, 메가바이트, 기가바이트 순으로 넣을 수 있으며 컨테이너가 해당 메모리 제한을 넘어가게 되면 자동으로 컨테이너가 종료됨. -m 500m 과 같이 사용할 수 있다.
-
docker compose
- docker compose를 이용하면 명령어 한번으로 container를 다수 실행 가능
-
docker compose는 기본적으로 docker-compose.yml 파일을 기반으로 실행
- 참고 : https://docs.docker.com/compose/production/