Docker CheetSheet

DongHwan·2022년 5월 15일
0

자주 사용하는 명령어 및 옵션만 정리해둔 도커 치트시트.

docker run

docker run [Options] <IMAGE>:<TAG> [<args>]

도커 컨테이너를 실행한다. 지정된 <IMAGE>:<TAG> 이미지를 사용하여 컨테이너를 만든다. args로 컨테이너를 실행할 때 사용할 명령어를 정해줄 수 있다.

Options

-d

docker run -d <IMAGE>:<TAG>

컨테이너를 백그라운드에서 실행하고, 컨테이너 ID를 출력한다.

-e

docker run -e MYSQL_HOSTNAME=localhost <IMAGE>:<TAG>

컨테이너의 환경 변수를 설정해준다.

-it

docker run -it <IMAGE>:<TAG>

i와 t는 서로 다른 옵션이나, 주로 같이 사용한다. 컨테이너를 실행할 때 터미널 입출력을 사용할 수 있도록 Interactive하게 실행한다.

-p

docker run -p 80:8080 <IMAGE>:<TAG>

호스트와 컨테이너 간의 포트를 연결해준다.
위 예시에서는 호스트의 80번 포트와 컨테이너의 8080포트를 연결해준다.

--name

docker run --name my_container <IMAGE>:<TAG>

컨테이너의 이름을 지정한다.

-v

docker run -v /my/test:/etc <IMAGE>:<TAG>

호스트와 컨테이너 간의 볼륨(Volume)을 설정해준다.
위 예시에서는 호스트의 /my/test 경로가 컨테이너의 /etc 경로에 마운트되었다.

-rm

docker run --rm <IMAGE>:<TAG>

컨테이너가 종료될 때, 컨테이너와 관련된 리소스(볼륨 등)를 정리해준다. 컨테이너를 일회성으로 실행할 때 주로 사용한다.

docker ps

docker ps [Options]

컨테이너 목록을 출력한다. 기본적으로 현재 실행중인 컨테이너 목록만 출력한다.

Options

-a

docker ps -a

모든 컨테이너를 출력한다.

-q

docker ps -q

컨테이너 ID 목록만을 출력한다.

docker logs

docker logs <CONTAINER>

컨테이너의 로그 기록을 가지고 온다. 달리 얘기하면, 컨테이너의 로그 기록을 출력한다.

Options

-f

docker logs -f <CONTAINER>

로그 출력을 지속적으로 출력한다.

-n 혹은 --tail

docker logs --tail 10 <CONTAINER>

마지막에서부터 n번째 라인의 로그까지 출력한다. 즉, 위 예시에서는 마지막에서부터 10번째 라인까지의 로그를 출력한다.

-t

docker logs -t <CONTAINER>

로그 앞에 타임스탬프를 붙여 출력한다.

docker exec

docker exec <CONTAINER> <CMD>

실행된 컨테이너가 특정 명령(<CMD>)을 실행하도록 한다.

Options

-d

docker exec -d <CONTAINER> sh -c 'apt update && apt install -y wget'

백그라운드에서 명령을 실행한다.

-e

docker exec -e MYSQL_HOSTNAME=localhost <CONTAINER> <CMD>

컨테이너의 환경변수를 설정한다.

-it

docker exec -it <CONTAINER> /bin/bash

i와 t는 서로 다른 옵션이나, 주로 같이 사용한다. 터미널 입출력을 사용할 수 있도록 Interactive하게 실행한다. 주로 /bin/bash 명령과 같이 사용한다.

docker cp

docker cp <HOST_PATH> <CONTAINER>:<CONTAINER_PATH>
docker cp <CONTAINER>:<CONTAINER_PATH> <HOST_PATH>

호스트와 컨테이너 간에 파일을 주고받는다. 첫번째 인자의 파일을 두번째 인자의 경로로 복사한다.

docker stop

docker stop <CONTAINER> [CONTAINER...]

컨테이너를 정지시킨다.

docker start

docker start <CONTAINER> [CONTAINER...]

정지된 컨테이너를 실행한다.

docker rm

docker rm [Options] <CONTAINER> [CONTAINER...]

컨테이너를 제거한다. 단, 현재 실행중인 컨테이너는 제거할 수 없다.

Options

-f

docker rm -f <CONTAINER> [CONTAINER...]

현재 실행중인 컨테이너를 중단시키고 강제 삭제한다. (SIGKILL을 사용하여 중단시킨다.)

docker images

docker images [Options] [Repository[:TAG]]

이미지 목록을 출력한다.

docker rmi

docker rmi [Options] <IMAGE> [IMAGE...]

이미지를 제거한다. 단, 현재 사용중인 이미지는 제거할 수 없다.

Options

-f

docker rmi -f <IMAGE> [IMAGE...]

현재 사용중인 이미지가 있더라도, 강제 삭제한다.

docker build

docker build [Options] <PATH>

Dockerfile로부터 이미지를 빌드한다.

Options

--build-arg

docker build --build-arg BRANCH=master <PATH>

build-time 변수를 설정한다. Dockerfile의 ARG로 설정된 변수들이 build-time 변수이다.

-f

docker build -f Dockerfile.ci <PATH>

사용할 Dockerfile의 경로를 지정한다.

-t

docker build -t my_image:1.1 <PATH>

이미지의 태그를 지정해준다. 태그의 형식은 name:tag의 형태이다.

docker prune

사용하지 않는 도커 오브젝트 삭제

docker container prune

docker container prune

사용하지 않는 도커 컨테이너 삭제

docker image prune

docker image prune

사용하지 않는 도커 이미지 삭제

docker system prune

docker system prune

사용하지 않는 컨테이너, 이미지, 볼륨, 네트워크, 캐시를 모두 삭제함

profile
날 어떻게 한줄로 소개해~

0개의 댓글