본문 바로가기
Develop/DevOps

[docker] 명령어 cheatsheet

by 3-stack 2021. 12. 26.

# docker build

docker build ./

docker build --tag superpower/hello:latest ./

docker build --file Dockerfile.dev

 

# docker run

docker create {이미지 ID}

docker start {컨테이너 ID}

docker run {이미지 ID} [명령어]

docker run = docker create + docker start

 

# docker kill

docker stop {컨테이너 ID}

docker kill {컨테이너 ID}

 

# docker rm / docker rmi

docker rm {컨테이너 ID}

docker rmi {이미지 ID}

docker system prune

 

# docker ps

docker container ls

docker container ls -a

docker ps

docker ps -a

 

# docker images

docker image ls

docker image ls -a

docker images

 

# docker exec 

docker exect --interactive --tty {컨테이너ID} {명령어}

docker exec -it {컨테이너 ID} {명령어}

docker exec -it {컨테이너 ID} /bin/bash

docker exec -it {컨테이너 ID} sh

exit

ctrl + d

 

# docker run 옵션

  • docker run {이미지 ID}
  • docker run --publish {호스트 포트}:{컨테이너 포트} {이미지 ID}
  • docker run --volumne {호스트 디렉토리}:{컨테이너 디렉토리} {이미지 ID}
  • docker run --rm -p {호스트 포트}:{컨테이너 포트} {이미지 ID}
    • --rm : 종료되면 컨테이너 자동 제거.
  • docker run --detach --rm -p {호스트포트}:{컨테이너포트} {이미지 ID}
    • --detach : 백그라운드에서 컨테이너 실행.
  • docer run --name {컨테이너 이름} {이미지 ID} 
docker run \
 --publish 3000:3000 \
 --volume /usr/src/app/node_modules \
 --volume $(pwd):/usr/src/app \
 --rm \
 --detach \
 {이미지 ID}

3 : 호스트 디렉토리에 node_modules는 없기에 컨테이너에서 맵핑하지 않게 설정.

4 : 현재 경로에 있는 디렉토리 혹은 파일을 /usr/src/app 경로에서 참조.( Windows - %cd%:/usr/src/app )

 

# docker rename 

docker rename {old 컨테이터 이름} {new 컨테이너 이름}

 

# docker-compose

docker-compose build 이미지를 빌드하기만 하며, 컨테이너를 시작하지 않는다.
docker-compose up 이미지가 없는 경우만 빌드하고, 컨테이너 시작.
docker-compose up --build 항상 이미지 빌드하고, 컨테이너 시작
docker-compose up --build -d 상동 + 백그라운드
docker-compose up --no-build 이미지 빌드 없이 컨테이너 시작(이미지 없으면 실패)
docker-compose down 작동시킨 모든 컨테이너를 한꺼번에 중단.

 

 

# 에러

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock ...

sudo chmod 666 /var/run/docker.sock

sudo chown root:docker /var/run/docker.sock

 

댓글