docker 명령어

이재철·2021년 9월 20일
0
post-thumbnail

도커란?

  • 컨테이너 관리 도구로, 운영체제 안에서 프로세스를 격리하는 기술

도커로 컨테이너 다루기

Dockerfile을 통한 도커 이미지 파일 생성

docker Build

  • DockerFile로 이미지를 생성
docker build <옵션> <Dockerfile 경로>
docker build -t test/front-demo:0.0 .
옵션명내용
--force-rm=false이미지 생성에 실패했을 때도 임시 컨테이너 삭제
--no-cache=false이전 빌드에서 생성된 캐시 미사용, 처음부터 다시 이미지 생성
-q --quite=falseDockerfile RUN이 실행한 출력 결과 미표시
--rm=true이미지 생성에 성공시 임시 컨테이너 삭제
-t, --tag=''저장소 이름, 이미지 이름, 태그 설정(<저장소 이름>/<이미지 이름>:<태그>)

docker Images

  • 이미지 목록 출력
docker build <옵션> <repository >
옵션명내용
-a모든 이미지 표시
--no-trunc모든 결과 표시
--quiet, -q컨테이너 ID만 표시
-digestsdigest 항목도 함께 표시

docker ps

  • 컨테이너 목록 확인 명령어
docker ps <옵션>
docker ps -a
옵션명내용
-a, --all가동,멈춘 컨테이너의 모든 리스트 반환
--no-trunc컨테이너의 COMMAND 짤림 내용 표시
-f, --filter리스트를 필터링하여 출력
--format필요한 열만 추출하여 표시
ps -a -f "id= 컨테이너ID"
ps -a -f "name=컨테이너 이름"
ps -a -f "label=커맨드에서 붙인 라벨"
ps -a -f "status=컨테이너 상태(created, restarting, running 등)"
--last, -n마지막에 생성한 컨테이너 숫자를 정하여 표시
--latest, -l마지막에 생성한 컨테이너 표시
--quiet, -q컨테이너 ID만 표시
--size, -s사이즈 표시

docker rm

  • 컨테이너 삭제
docker rm <CONTAINER_ID>, <CONTAINER_ID>, <CONTAINER_ID> 
docker rm <CONTAINER_NAME>
옵션명내용
-f실행중인 컨테이너 강제 삭제
-f $(docker ps -aq)실행중인 모든 컨테이너 강제 삭제 (복구 불가능)
-l, --link=falserun 명령의 --link 옵션을 사용한 연결된 링크만 삭제, 컨테이너 삭제안함
-v, --volumes=false컨테이너에 연결된 데이터 볼륨 삭제

docker rmi

  • 이미지 삭제
docker rm <IMAGE_ID>

docker rmi $(docker images -f dangling=true -q)
옵션명내용
-f실행중인 이미지 강제 삭제
--no-prune=false태그가 없는 부모 이미지를 삭제하지 않음
$(docker images -aq)모든 이미지 삭제
$(docker images -f dangling=true -q)dangling 삭제

docker run

docker run <옵션> <컨테이너 이름>
docker container run <옵션> <컨테이너 이름>
ex) docker run -d -p 5008:80 --name <컨테이너 이름>, 이미지이름
옵션명내용
-dDetached모드(데몬 모드) 컨테이너가 백그라운드로 실행
-e, --env=[]컨테이너 환경 변수설정, 주로 설정 값 또는 비밀번호 전달
-e MYSQL_ROOT_PASSWORD=testpass
-expose=[]컨테이너의 포트를 호스트와 연결, 외부노출x
--link=[]컨테이너끼리 연결, <컨테이너 이름>:<별칭>
--name컨테이너 이름 설정
-p, --publish=[]특정 포트를 외부에 노출
IP 주소:호스트 포트 : 컨테이너 포트, 호스트에 네트워크 인터페이스 또는 IP 주소가 여러 개 일때 사용
--restart=""컨테이너 안의 프로세스 종료 시 재시작 정책
no: 프로세스가 종료되더라도 컨테이너를 재시작하지 않습니다
on-failure: 프로세스의 Exit Code가 0이 아닐 때만 재시작
always: 프로세스의 Exit Code와 상관없이 재시작
--c, --cpu-shares=자원값CPU 자원 분배 설정(기본: 1024)
--cpu-shares=2048처럼 설정하면 기본 값 보다 두 배 많은 CPU 자원을 할당

docker start

  • Docker Container를 시작
docker start <옵션> <컨테이너명>
docker container start <옵션> <컨테이너명>
옵션명내용
-a, --attach시그널을 STDOUT(표준출력), STDERR(표준에러) 포워드
--detach-keys <문자열>컨테이너 키 재정의
i, --interactiv컨테이너를 STDIN(표준 입력) 연결

docker stop / restart

  • Docker Container 중지
docker stop  <옵션> <컨테이너명>
docker container stop  <옵션> <컨테이너명>

docker restart <컨테이너명>
옵션명내용
-t, --time <숫자>종료 전 기다리는 초(기본값 10초)
stop $(sudo docker ps -a -q)모든 컨테이너 중지

docker exec

  • 실행 중 Docker Container 접속
docker exec -it  <image_name> /bin/bash
profile
혼신의 힘을 다하다 🤷‍♂️

0개의 댓글