memostack
article thumbnail
Published 2020. 2. 14. 23:59
Docker 기본 명령어 정리 DevOps/Docker
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형

1. 이미지 관리

1.1. 이미지 보기

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jenkins             latest              cd14cecfdb3a        19 months ago       696MB

1.2. 이미지 가져오기 (pull)

  • 이미지에 대한 정보는 DockerHub(이미지 저장소)에서 찾아볼 수 있다.
$ docker pull jenkins
Using default tag: latest
latest: Pulling from library/jenkins
55cbf04beb70: Pull complete 
1607093a898c: Pull complete 
9a8ea045c926: Pull complete 
...생략...

1.3. 이미지 제거하기 (rmi)

$ docker rmi jenkins
Untagged: jenkins:latest
Untagged: jenkins@sha256:eeb4850eb65f2d92500e421b430ed1ec58a7ac909e91f518926e02473904f668
Deleted: sha256:cd14cecfdb3a657ba7d05bea026e7ac8b9abafc6e5c66253ab327c7211fa6281
Deleted: sha256:9047d4817dd4203ae4d456888aa5355bc526d274713d6f168359ba61b85b6c00
...생략...

이미지를 사용중인 경우 삭제가 안될 수 있는데, 이때는 강제 옵션 -f 을 사용한다.

$ docker rmi -f jenkins

 

-f 사용할 필요 없이, 컨테이너를 종료하고 삭제하면 된다. 방법은 아래와 같다.

$ docker container stop <컨테이너 이름 또는 ID>
$ docker container rm <컨테이너 이름 또는 ID>

2. 컨테이너 관리

2.1. 동작 중인 컨테이너 보기

2가지 방법이 있다.

$ docker ps
$ docker container ls

숨겨진 컨테이너까지 보려면 -a 옵션을 부여한다.

$ docker ps -a
$ docker container ls -a

2.2. 컨테이너 생성하기 (run)

docker run <옵션> -t <이미지 이름> 이와 같은 형식으로 명령어를 수행한다.

 

컨테이너를 생성할 때, 자주 사용되는 옵션이 있다. (개인적인 의견이다)

  • -it: 컨테이너에 접근하여 조작하기 위해서는 -i, -t 옵션을 부여하는 것이 좋다. (줄여서 -it 로 사용 가능하다)
  • --rm: 컨테이너가 종료(stop)되면 자동으로 컨테이너가 삭제된다. (주의. 하이폰 - 2개를 사용한다)
  • -d: 백그라운드(background)로 실행한다.
  • -p: 포트 번호를 맵핑(mapping)한다.
    • 예: -p <호스트 포트번호>:<컨테이너 포트번호>
$ docker run -it --rm -d -p 9000:8080 jenkins

사용자는 9000(호스트 포트 번호)으로 접근하면, 컨테이너 내부에서는 8080(컨테이너 포트 번호)으로 접근하는 것과 같이 맵핑된다.

처음 docker를 사용 할때는 위 개념이 어려울 수 있다. (내가 그랬다..)

2.3. 컨테이너 실행 & 중지 & 재실행 (start, stop, restart)

$ docker container start <컨테이너 이름 또는 ID>
$ docker container stop <컨테이너 이름 또는 ID>
$ docker container restart <컨테이너 이름 또는 ID>

직관적으로 사용하면 된다. start.. stop.. restart..

3. 볼륨 관리

볼륨은 저장소(File System)라고 생각할 수 있다.

3.1. 볼륨 생성 (create)

  • 형태: docker volume create <볼륨 이름>
$ docker volume create jenkins_volume

 

3.2. 볼륨 상세 정보 보기(inspect)

볼륨에 대한 상세 정보를 보려면 inspect를 이용한다.

$ docker volume inspect jenkins_volume
[
    {
        "CreatedAt": "2020-02-14T16:07:15Z",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/jenkins_volume/_data",
        "Name": "jenkins_volume",
        "Options": {},
        "Scope": "local"
    }
]
  • Mountpoint를 기본적으로 /var/lib/docker/volumes/ 아래에 볼륨이 생성된다.
  • 기본 경로는 /var/lib/docker/volumes/ 이지만 daemon.json 을 조작하여 변경이 가능하다.
Mac OS 를 사용하는 사람은 위 /var/lib/docker 디렉토리가 존재하지 않는다. 그 이유는 Mac의 경우 바로 docker를 띄우는 것이 아니라 VM 을 띄운뒤 실행하기 때문이다.

3.3. 볼륨 보기 (ls)

$ docker volume ls
DRIVER              VOLUME NAME
local               be48640b5279966a829c743e2d54de7ed3d3f8842cf4f8fd0b4174e3bdef0add
local               d9327fbf55e3980593f5b3006c7a1d87d836be6613568bffe210522a51b8262a
local               jenkins_volume

3.4. 볼륨 삭제 (rm)

  • 주의. 컨테이너에 마운트되어 있는 상태에서는 지워지지 않는다. 컨테이너를 종료 후 삭제한다.
$ docker volume rm jenkins_volume

 

사용하지 않는 볼륨을 한번에 정리하는 방법이 있다. (prune 을 사용)

$ docker volume prune
WARNING! This will remove all local volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Volumes:
be48640b5279966a829c743e2d54de7ed3d3f8842cf4f8fd0b4174e3bdef0add
d9327fbf55e3980593f5b3006c7a1d87d836be6613568bffe210522a51b8262a
jenkins_volume

Total reclaimed space: 252.1MB
반응형
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
profile

memostack

@bluemiv_mm

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!