네른

[Docker] Docker에서 주로 사용한 명령어 본문

DevOps

[Docker] Docker에서 주로 사용한 명령어

네른 2022. 4. 14. 15:06

지난 업무들에서 주로 사용한 명령어와 자잘하지만 자꾸 까먹을 수 있는 내용들을 좀 정리하고자 한다.

 


[ 많이 사용했던 명령어들]

사실 이미 잘 정리된게 많기도 많고 필요한건 그때그때 쓰면 되긴하지만

 

1. docker pull 레포명/이미지명:태그

   docker build --tag 레포명/이미지명:태그 경로

   docker push 레포명/이미지명:태그

 - 이미지 받아오기

 - 이미지 빌드하기. 경로는 빌드할 곳의 루트 디렉토리. 보통 . 을 이용해서 현재 경로에서 시작함

 - 이미지를 레포지토리에 올리기.

 - 만약 push하는 곳이 공개된 docker hub인 경우에는 계정명/이미지명:태그 로 빌드하고 push하면 된다

 

2. docker image ls (docker images)

 - 받아와 로컬에 설치된 이미지들

 

3. docker ps (-a)

 - 실행중인 컨테이너 정보 확인

 - -a 옵션 붙이면 죽은 컨테이너까지 한번에 다 볼 수 있음

 - --no-trunc 옵션을 이용해서 생략된 정보 다 볼 수 있음

 

4. docker exec 컨테이너 '실행할 명령어'

 - 실행중인 특정 docker 컨테이너에 명령어를 실행시키고 싶을 때

 - docker exec -it 컨테이너 '/bin/bash' 이런식으로 사용하면 interactive한 shell을 붙을 수 있음

 - 만약 shell을 root로 열고싶으면 뒤에 -u root 이런식으로 유저명을 붙이면 된다

 

5. docker history "이미지명"

 - 특정 이미지의 업데이트 내역을 볼 수 있음

 

6. docker inspect

 - 도커의 이미지, 컨테이너 등에 대한 정보를 확인하고 싶을 때 사용

 

7. docker logs 컨테이너

 - 컨테이너의 로그를 볼 수 있다

 - -f 옵션을 이용해서 tail처럼 동작시킬 수 있다

 - -t 옵션을 이용해서 timestamp를 찍을 수 있다

 

8. docker run

 - 컨테이너 실행

 - --restart 옵션을 이용해서 컨테이너가 죽었을 때 재시작을 어떻게 시킬 지 정할 수 있음

 - -p 호스트포트:컨테이너포트 ---> 포트 포워딩 설정

 - -e 환경변수 ---> 실행할 때 컨테이너에 환경변수를 설정할 수 있다

 - -h 이름 ---> 컨테이너의 호스트네임 지정 가능

 - -d 컨테이너를 백그라운드에서 실행시키기

 - -v 볼륨 마운트가 필요할 때

 


 

추가로, Dockerfile 작성할 때 사용했던 것들도 간단하게

업무중에 이미지를 새로 만들거나 수정할일이 있어서 주로 사용했었다

 

1. FROM

 - 베이스가 될 이미지

 

2. RUN

 - 해당 이미지에서 실행할 커맨드

 

3. WORKDIR

 - 작업의 루트 디렉토리를 지정

 

4. EXPOSE

 - 해당 이미지에서 노출시킬 포트 번호를 지정

 - 주의할점은 이거 한다고해서 포워딩이 되는건 아님 run 명령어에서 -p 옵션으로 따로 해줘야함

 

5. COPY

 - 호스트의 파일을 이미지 안으로 가져오기 위한 커맨드

 

6. ENV

 - 이미지의 환경변수 지정

 

7. ENTRYPOINT

 - 이미지가 컨테이너로 시작될 때 '반드시' 실행될 명령어

 - 사용자가 수정할 방법이 없음

 

8. CMD

 - 반드시 실행되는것이 아니라, 사용자의 파라미터 입력에 따라 수정될 수 있는 명령어

 - 예를들어 test라는 이미지의 dockerfile에 CMD ["ls", "-al"] 로 해뒀는데, docker run test echo "hi" 로 실행하면 ls -al 대신 echo 'hi'가 실행되는 식

 

 

Comments