주요 명령어들
특히 자주 쓰는 것들은 강조 표시를 해두었다.
기본적으로 루트 권한이 필요하므로
필요한 경우엔 현재 계정을 docker 그룹에 포함 시킬 필요가 있다.
sudo usermod -aG docker ${USER}
sudo service docker restart
docker hub로 부터 ubuntu 이미지 검색 예시
docker search ubuntu
docker hub로 부터 이미지(이미지이름:태그) 받기
docker pull ubuntu:latest
이미지 목록 출력
docker images
컨테이너 생성
- i, t 옵션 지정시 실행된 bash 셸에 입출력이 가능하다. (-it)
- p, P 옵션을 통해 포트 바인딩이 가능하다.
- d 옵션으로 백그라운드 실행이 가능하다.
docker run <옵션> <이미지 이름> <실행할 파일>
우리가 주의해야할 것은,
도커 컨테이너를 통해 실행되는 애플리케이션은 반드시 foreground로 실행이 되어야 한다는 것!
즉, 내부에서 실행되는 애플리케이션은 도커가 계속해서 상태를 추적할 수 있도록,
background가 아닌 foreground 로 실행이 되어야 한다.
컨테이너 내부에 foreground로 실행되는 프로세스가 없다면, 컨테이너는 바로 exit된다.
이 부분은 반드시 이해를 하고 있어야 함.
예를 들어, 컨테이너 내부에 flask 앱을 gunicorn을 이용해 데몬으로 띄워둔다면,
10000% 컨테이너 실행시 바로 종료가 될 것이다.
만약, 도커 혹은 컴포즈의 restart 옵션을 적용 했다면
포그라운드로 실행되는 앱의 상태를 도커가 계속 체크하면서,
앱이 죽는 경우에 바로 컨테이너를 재시작해 줄 수 있다.
docker run할 때, 리소스 제한도 가능하다.
docker run --name hello --cpus="4" -d -P myappImage:test
참고자료
컨테이너 목록 확인
docker ps -a
컨테이너 시작
docker start test-container
모든 컨테이너 종료 및 삭제
- q 옵션을 넣어주면 ID 만 리턴한다
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
실행중인 컨테이너에 접속하는 법
- 매우 자주 씀
docker exec -it 이미지아이디 /bin/bash
실행중인 컨테이너의 출력을 보고 싶을 때
- ctrl + D ; 컨테이너 정지
- ctrl + P, ctrl + Q 차례대로 입력 > 정지하지 않고 빠져나옴
docker attach test-container
그 외 명령어
이미지 히스토리 조회
docker history <이미지이름>:<태그>
컨테이너와 호스트간의 파일 복사!!!!
docker cp <컨테이너이름>:/etc/nginx/nginx.conf./docker
cp ./abc.txt containername:/abc.txt
docker containername:/abc.txt ./abc.txt
현재 컨테이너의 상태로 이미지 생성
docker commit <옵션> <컨테이너 이름> <이미지 이름>:<태그>
docker commit -a "Jein Song <jeinsong@abc.com>" -m "커밋 메시지" node-nginx node-nginx-image:0.2
'docker' 카테고리의 다른 글
05. docker-compose 환경에서 임시 nginx proxy 구성하기 (0) | 2020.10.21 |
---|---|
04. 반복 작업 속에서 docker build 시간이 오래 걸릴 때 (0) | 2020.10.21 |
03. Docker 이미지 저장 경로 변경법 (0) | 2020.07.29 |
02. Docker-compose, Swarm (0) | 2020.07.29 |