개발

Docker 명령어 정리

미친개발 2024. 12. 31. 14:57
반응형

Docker를 배웠는데 명령어 자꾸 까먹을거같아서 적어놓음
까먹었을때마다 자주와서 봐야지  

 

 

- docker pull: 도커 이미지 다운로드

docker pull 이미지명:태그명

  

- docker image ls: 컴퓨터 내에 다운로드한 이미지들 보기

docker image ls

 

-Dockerfile 예시

FROM node:20-slim # 원본이 되는 컨테이너 image
WORKDIR /app # 컨테이너 안의 /app 폴더로 이동
COPY . . # 현재 디렉토리의 내용을 작업폴더(컨테이너 안)로 가져옴 (내컴퓨터파일경로 이미지내부파일경로 순서)
RUN ["npm", "install"] # npm install 명령을 실행(필요한 npm 패키지 자동으로 다운로드됨)
# RUN npm install 이라고 써도 되나, 특별히 shell의 기능이 필요없는 경우 대괄호가 안정적임
EXPOSE 8080 # 8080포트 열기. 나중에 이미지 실행할 때 오픈해야하는데 편의를 위해 쓰는 메모같은 개념이라 없어도 포트열리는데 상관은 없다.
ENTRYPOINT ["node", "server.js"] # 마지막으로 node server.js 명령어 실행, ENTRYPOINT 대신 CMD를 사용해도 됨.

마지막 ENTRYPOINT 부분을 CMD로 대신 써도 되지만, 이렇게 하면 나중에
docker run 이미지명 node server123.js

이런식으로 docker run 명령어 뒤에 새 명령어를 입력하면 CMD로 썼던 부분이 덮어쓰기된다고 생각하면 된다.

  

- docker build: Dockerfile을 바탕으로 이미지 생성

마지막에 붙은 .은 Dockerfile이 있는 경로를 의미함

docker build -t 이미지명:태그명 .

  

- docker run: 만들어진 image 실행

docker run -d -p 내컴퓨터포트:컨테이너포트 --name 컨테이너이름정하기 이미지명:태그명
  • -d: 컨테이너를 백그라운드에서 실행(터미널을 점유하지 않음)
  • -p: 열어놓을 포트 지정
  • --name: 컨테이너 이름 지정

 

- docker ps: 현재 실행중인 컨테이너들 보기

docker ps

 

- docker logs: 컨테이너의 터미널에 나온 로그 출력

docker logs

 

- docker exec: 컨테이너로 접속하여 명령어 실행

docker exec -it 컨테이너이름 sh

이와 같이 쓰면 컨테이너에서 sh(쉘을 여는 명령어)를 실행하게 됨. 즉 컨테이너 쉘로 접속된다.

  • -i: 표준입출력 STDIN를 열겠다는 의미
  • -t: 가상 tty(pesudo tty)를 통해 접속하겠다는 의미

 

- 접속한 컨테이너 탈출(종료하지 않고): ctrl+p 후에 ctrl+q

 

- 접속한 컨테이너 종료 후 탈출: ctrl+d

 

- docker stop: 실행중인 컨테이너 정지

docker stop 컨테이너이름

 

- docker rm: 정지된 컨테이너를 삭제

docker rm 컨테이너이름

정지안된 컨테이너를 삭제하려면 -f 옵션 추가

 

 

 

(계속 작성중...)

반응형

'개발' 카테고리의 다른 글

git 명령어 정리  (0) 2024.12.31