티스토리 뷰

Docker/Docker Basic

Docker 명령어 모음

Giles Blog 2024. 4. 3. 22:55
728x90

 

$ docker pull <이미지>

 

1. 도커 컨테이너 생명주기 관련 명령어

1) 실행중인 컨테이너 보기

현재 실행중인 컨테이너의 상태를 확인할 수 있습니다.

$ docker ps

* ps : process status 약자

 

이 명령어는 다음과 같이 각 컨테이너에 대하여 7가지 정보를 보여준다.

필드명 의미
CONTAINER ID 컨테이너의 고유한 아이디 해쉬값
실제로는 더욱 길지만 일부분만 표출한다.
IMAGE 컨테이너 생성 시 사용한 도커 이미지
COMMAND 컨테이너 시작 시 실행될 명령어
대부분 이미지에 내장되어 있으므로 별도의 설정이 필요없다.
CREATED 컨테이너가 생성된 시간
STATUS 컨테이너의 상태
실행 중인 Up, 종료는 Exited, 일시정지 Pause
PORTS 컨테이너가 갭아한 ㅍ트와 호스트에 연결한 포트
특별한 설정을 하지 않은 경우 출력되지 않는다.
NAMES 컨테이너의 고유한 이름

컨테이너 생성 시 --name 옵션으로 이름을 설정하지 않으면
도커 엔진이 임의로 형용사와 명사를 조합해 설정한다.

id와 마찬가지로 중복이 안되고 docker rename 명령어로 변경할수 있다
$ docker rename 기존이름 변경할이름

 

2) 실행중인 컨테이너의 원하는 항목만 보기

기본적으로 7가지 항목이 모두 출력되지만 원하는 항목만 지정할수 있다.

$ docker ps --format 'table{{.항목명}}구분자{{.항목명}} ...' # 항목명의 첫 글자는 대문자, 나머지는 대문자

$ docker ps --format 'table{{.Names}}\t{{.Image}}'

명령어를 실행하면 Names 와 IMAGE 항목을 탭(\t)으로 구분하여 보여준다.

 

3) 모든 컨테이너 보기

생성된 모든 컨테이너의 상태를 확인할 수 있습니다.

$ docker ps -a

* a : all 약자

 

2. 도커 컨테이너 생명주기 관련 명령어

 

 

1) create

도커 이미지에서 새로운 컨테이너를 생성하지만 즉시 실행되지는 않습니다.

$ docker create <이미지 이름>

$ docker create -i --name container-1 ubuntu

 

docker create 명령어로 ubuntu 이미지로 container-1 이라는 이름의 새로운 도커 컨테이너를 생성합니다.

2) start

시작 시 실행될 명령어를 컨테이너에 넣어주고, 컨테이너를 실행한다.

$ docker start <컨테이너 아이디/이름>

$ docker start container-1

 

이 명령어를 사용할 경우, 컨테이너를 시작하지만 실행될 때의 출력화면을 보여주지 않음

실행 화면까지 보기를 원할 경우 -a 옵션을 상요해야한다.

$ docker start -a <컨테이너 아이디/이름>

$ docker start -a container-1

* a: attach

3) run

$ docker run <컨테이너 아이디/이름>

$ docker run container-1

4) stop

$ docker stop <컨테이너 아이디/이름>

$ docker stop container-1

stop과 kill 모두 실행 중인 컨테이너를 중지시키는 명령어지만, 진행중인 작업까지 완료하고 중지는 stop,

바로 중지는 kill 명령어를 사용한다.

5) kill

$ docker kill <컨테이너 아이디/이름>

$ docker kill container-1

kill은 진행중인 작업과 상관없이 바로 중지시키는 명령

6) rm

중지된 컨테이너를 삭제한다. 실행중인 컨테이너는 삭제할 수 없으므로, 먼저 중지후에 삭제해야함다.

$ docker rm <컨테이너 아이디/이름>

$ docker rm container-1

 

모든 컨테이너 삭제, 특정 컨테이너를 지정하지 않고 모든 컨테이너를 삭제하고 싶은 경우

$ docker rm `docker ps -a -q`

7) rmi

도커의 이미지를 삭제할 경우

$ docker rmi <이미지 아이디>

8) 실행중이지 않은 도커(컨테이너, 이미지, 네트워크)를 모두 삭제할 경우

실행중인 컨테이너에게 영향을 주지않는다. 도커를 쓰지 않을때, 한번에 모두 정리할 수 있다.

$ docker system prune

 

3. 도커를 실행하고 명령어 전달하기

도커를 실행하고 명령어를 전달해보자.

$ docker run <컨테이너 아이디:이름>

 

Docker run 옵션 종류

옵션 의미
-i, --interactive 표준입력(stdin)을 활성화하며, 컨테이너와 연결(attach)되어 있지 않더라도 표준입력을 유지

보통 이 옵션을 사용하여 Bash에 명령을 입력합니다.
-t, --tty TTY 모드(pseudo-TTY)를 사용합니다.

Bash를 사용하려면 이 옵션을 설정해야 합니다.

이 옵션을 설정하지 않으면 명령을 입력할 수는 있지만, 셸이 표시되지 않습니다.
--name 컨에티어 이름을 설정합니다
-d, --detach Detached 모드입니다.

보통 데몬 모드라고 부르며, 컨테이너가 백그라운드로 실행됩니다.
-p, --publish 호스트와 컨테이너의 포트를 연결합니다. (포트포워딩)

<호스트 포트>:<컨테이너 포트>

예) -p 80:80
--privileged 컨테이너 안에서 호스트의 리눅스 커널 기능(Capability)을 모두 사용합니다.

호스트의 주요 자원에 접근할 수 있습니다.
--rm 프로세스 종료시 컨테이너 자동 제거
--restart 컨테이너 종료 시, 재시작 정책을 설정합니다.

예) --restart="always"
-v, --volume 데이터 볼륨을 설정입니다.

호스트와 컨테이너의 디렉토리를 연결하여, 파일을 컨테이너에 저장하지 않고 호스트에 바로 저장합니다. (마운트)

예) -v [내부 디렉토리 경로]:[컨테이너 내부 디렉토리 경로]

-u, --user 컨테이너가 실행될 리눅스 사용자 계정 이름 또는 UID를 설정합니다.

예)
--user root
-e, --env 컨테이너 내에서 사용할 환경 변수를 설정합니다.

보통 설정 값이나 비밀번호를 전달할 때 사용합니다.

예) -e GRANT_SUDO=yes
--link 컨테이너끼리 연결합니다.

예)
[컨테이너명 : 별칭]

예) --link="db:db"
-h, --hostname 컨테이너의 호스트 이름을 설정합니다.
-w, --workdir 컨테이너 안의 프로세스가 실행될 디렉터리를 설정합니다.
-a, --attach 컨테이너에 표준 입력(stdin), 표준 출력(stdout), 표준 에러(stderr) 를 연결합니다.
-c, --cpu-shares CPU 자원 분배 설정입니다.

기본 값은 1024이며, 각 값은 상대적으로 적용됩니다.
-m, --memory 메모리 한계를 설정합니다.

<숫자><단위> 형식이며 단위는 b, k, m, g 를 사용할 수 있습니다

예) --memory=”100000b”
--gpus 컨테이너에서 호스트의 NVIDIA GPU 를 사용할 수 있도록 설정합니다.
 - 호스트는 NVIDIA GPU 가 장착 된 Linux 서버여야하며,
 - NVIDIA driver 가 설치되어 있어야하고,
 - docker 19.03.5 버전 이상이어야합니다.

GPU 모두 사용하기
 --gpus all

GPU 지정해서 사용하기
--gpus ‘”device=0,1”’
--security-opt SELinux, AppArmor 옵션을 설정합니다.

예) --security-opt=”label:level:TopSecret”

 

명령어 전달하기 

$ docker exec <컨테이너 아이디:이름> ls


4. Docker 단축키

1) docker run 실행후 컨테이너 정지하지 않고 나오기 

    Control+P, Q(^P + Q)를 순차적으로 누르면 된다.

 

2) docker exec -it <컨테이너 아이디> redis-cli 이후에 빠져나오기

   Conrol+C(^C)를 입력하면된다.

 

3) docker exec -it <컨테이너 아이디> sh 이후에 빠져나오

  exit 또는 Control+D(^D)를 입력하면 된다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함