본문 바로가기
DevOps

Shell 에서 Docker 명령어 정리

by 어렵다어려웡 2021. 7. 6.

내가 생각하기에는 실무에서 Dockerfile만을 가지고 활용하지 않고

docker-compose 파일을 이용해서 여러개의 컨테이너를 실행하는 방식으로 진행할것같다.

쉘에서 직접 docker 명령어를 통해 build하고 run하는 작업은 굳이 한다해도

로컬에서 테스트하는 정도라고 예측한다. (확실하진않다)

 

사실 해당 명령어들을 외워서 나쁠것은 없다고 본다.

 

그래도 명령어가 어려운 편도 아니고 양이 많은편도 아닌거 같기 때문에

조금 눈에 익고 손에 익으면 금방금방 써먹을 수 있는 커맨드라고 판단된다.

 

1.  image (목록확인)

docker images

현재 Host OS 에 생성된 이미지 파일의 목록을 확인하는 명령어이다.

 

2. ps 

docker ps (-a)

현재 실행중인 컨테이너의 목록을 확인하는 명령어이다.

실행중인 컨테이너의 ID나 이름 등 여러가지 정보를 확인할 수 있고 ID값을 통해 

컨테이너에 접근하거나 중단, 재시작 등의 명령어를 활용 할 수 있다.

 

-a 옵션을 사용할 경우 여태 실행했던 도커 이미지들의 목록이 나오며

실행했던 시간 및 종료했던 시간까지 나타난다.

 

 

3.  start

docker start "Container ID"

이전에 실행했던 Container ID 를 가지고 재시작을 하게 해준다

 

4. stop 

docker stop "Container ID"

실행중인 컨테이너를 중단시키는 명령어.

ps 명령어를 통해서 Container ID를 얻어와서 사용하면 된다.

 

5.  rm

docker rm "Container ID"

운영체제의 프로세스와 달리 컨테이너가 종료되더라도 다시 실행하면 이전 상태가 유지된다

따라서 사용하지 않는 컨테이너는 rm 명령어를 통해 완전히 제거를 해야한다

 

6. build 

docker build -t "생성할 이미지 이름"

도커 이미지를 생성하기 위한 명령어라고 보면 된다.

입력한 이미지 이름으로 run 커맨드를 사용해서 컨테이너를 실행시키게 된다.

 

7.  run

docker run "REPOSITORY"

도커 이미지를 실행시키기 위한 명령어로, 실행시킬 추가적인 옵션이 존재한다.

 

-i (interactive) : 사용자가 입출력을 할 수 있는 상태로 한다

-t : 가상 터미널 환경을 에뮬레이션 하겠다는 말

-d : 컨테이너를 일반 프로세스가 아닌 데몬프로세스 형태로 실행하여 프로세스가 끝나도

유지되도록 한다

 

 이미지로 서버를 구동시키고 웹 테스트를 해보려 한다면 -p 옵션을 통해 포트포워딩을 해줘야 한다.

docker run -p 포트번호:포워딩시킬 포트번호 "REPOSITORY"

 

8. rmi

docker rmi (-f) "Image ID"

컨테이너가 아닌 이미지를 삭제할 때 사용한다.

해당 이미지파일로 만들어진 컨테이너가 있을 경우 해당 컨테이너 또한 삭제가 되어야 가능하며

같이 삭제하려 할 경우 -f 옵션을 붙여서 사용한다.

 

-> Image ID 는  'docker images' 명령어를 통해 확인 할 수 있다.

 

 

 

그외 attach 명령어가 존재한다.

attach 명령어를 사용하면 쉘이 멈춘상태로 이루어져서 우선 사용해보지 못했으므로

포스팅하지 않고 넘깁니다.