컨테이너
🐳 컨테이너 생성
docker create [image]
🐳 컨테이너 시작
docker start [container]
🐳 컨테이너 생성 및 시작
docker run [image]
옵션 | 설명 |
---|
-i | 호스트의 표준 입력을 컨테이너와 연결 |
-t | TTY 할당 |
--rm | 컨테이너 실행 종료 후 삭제 |
-d | 백그라운드 모드로 실행 |
--name {name} | 컨테이너 이름 지정 |
-p {port(host)}:{port(container)} | host <-> container 포트 바인딩 |
-v {path(host)}:{path(container)} | host <-> container 볼륨 바인딩 |
{image} | 실행할 이미지 |
{command} | 컨테이너 내에서 실행할 명령어 |
🐳 컨테이너 목록
docker ps
옵션 | 설명 |
---|
-a | 전체 컨테이너 목록 |
-q | 전체 컨테이너 ID만 출력 |
🐳 컨테이너 상세 정보
docker inspect [container]
🐳 컨테이너 일시중지 및 재개
docker pause [container]
docker unpause [container]
🐳 컨테이너 종료
docker stop [container]
docker kill [container]
docker stop $(docker ps -a -q)
🐳 컨테이너 삭제
docker rm [container]
docker rm -f [container]
docker container prune
실행
🐳 엔트리포인트와 커맨드
- 커맨드 : 컨테이너 실행 시 수행하는 동작
- 엔트리포인트 : 커맨드 실행 전 수행하는 동작
docker --entrypoint sh ubuntu
docker --entrypoint echo ubuntu hello world
🐳 환경변수 전달
docker run -it -e MY_HOST=localhost:8080 ubuntu
docker run -it --env-file ./test.env ubuntu
🐳 명령어 실행
docker exec -it [container] [command]
옵션 | 설명 |
---|
-i | 호스트의 표준 입력을 컨테이너와 연결 |
-t | TTY 할당 |
네트워크
docker network ls
single host | multi host |
---|
bridge, host, none | overlay |
docker run [opt] --network=none [image]
docker run [opt] --network=host [image]
docker network create --driver-bridge [network name]
docker run [opt] --network=[network name] --net-alias=[alias] [image]
볼륨
🐳 호스트 볼륨
docker run [opt] -v [host path]:[container path] [image]
🐳 볼륨 컨테이너
docker run [opt] --name [container name] -v [host path]:[container path] [image]
docker run [opt] --volumes-from [container name] [image]
🐳 도커 볼륨
- 도커가 제공하는 볼륨 기능
- /var/lib/docker/volumes/${volume-name}/_data 에 저장
docker volume create --name [volume name]
docker volume [command]
도커 볼륨 커맨드 | 설명 |
---|
create | 생성 |
inspect | 상세정보 |
ls | 리스트 |
prune | 사용하지 않는 볼륨 전체 삭제 |
rm | 삭제 |
docker run [opt] -v [volume-name]:[container path] [image]
docker run [opt] -v [volume-name]:[container path]:ro [image]
로그
- 로그 저장 경로(log driver 가 json-file 인 경우
/var/lib/docker/containers/${container_id}/{container_id}-json.log
docker logs [container]
docker logs --tail n [container]
docker logs -f [container]
docker logs -f -t [container]
docker run [option]
옵션 | 설명 |
---|
--log-driver | 로그 드라이버 설정 |
--log-opt max-size | 로그 파일당 최대크기 지정 |
--log-opt max-file | 로그파일 개수 지정 |
이미지
🐳 Dockerfile 없이 이미지 생성
docker commit [opt] [container] [repository[:tag]]
docker commit -a bobby -m "add file" my_ubuntu my_ubuntu:v1
🐳 Dockerfile로 이미지 생성
docker build [opt] [path]
docker build -t my_app:v1 -t ./my_dockerfile
옵션 | 설명 |
---|
-t | 빌드 이미지 이름 및 태그 |
-f | 빌드에 이용할 file 지정 |
🐳 이미지 압축파일로 저장
docker save -o [output-file] [image]
🐳 이미지 압출파일에서 불러오기
docker load -i [input-file]
🐳 도커 허브 사용
docker login
docker tag [target-image] [docker-hub-user/image][tag]
docker push [docker-hub-user/image]
docker pull [docker-hub-user/image]
시스템
🐳 버전
docker -v
🐳 시스템 정보
docker system info
🐳 이벤트 스트림
docker system events
🐳 디스크 사용량
docker system df
docker system df -v
🐳 컨테이너별 사용량
docker stats
🐳 디스크 정리
- 사용하지 않는 컨테이너, 네트워크, 이미지, 캐시 삭제
docker system prune
도커 컴포즈
옵션 | 설명 |
---|
-p {project name} | 프로젝트 선택(기본값은 현재 디렉토리명) |
🐳 프로젝트 목록
docker-compose ls
docker-compose ls -a
🐳 실행
docker-compose up
옵션 | 설명 |
---|
-p | 프로젝트 이름 변경(기본값은 현재 디렉토리명) |
-d | 백그라운드 실행 |
--scale {service name}={count} | 스케일 확장 |
🐳 종료
docker-compose down
docker-compose down -v
🐳 프로젝트 내 서비스 로그
docker-compose logs
🐳 프로젝트 내 컨테이너 이벤트
docker-compose events
🐳 프로젝트 내 이미지 목록
docker-compose images
🐳 프로젝트 내 컨테이너 목록
docker-compose ps
🐳 프로젝트 내 실행중인 프로세스 목록
docker-compose top