반응형
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 |
---|