킹의 개발일지

도커 입문(4) - 컨테이너 run 본문

docker

도커 입문(4) - 컨테이너 run

k1ng 2022. 7. 18. 13:47

저번에는 이미지를 pull 하는 방법을 알아봤다.

 

지금부터 이미지를 실행시켜 컨테이너를 만드는 방법인 run을 알아보자!


지금은 윈도우를 사용하고 있기에 도커 데스크탑 프로그램을 사용해서 이미지를 pull 하거나 run 시켜 컨테이너를 간단히 생성 할 수도 있다.

 

하지만 gui가 없는 환경을 대비해 Docker CLI를 통해서 컨테이너를 실행시켜 보는 방법을 알아 볼 것이다.

 

도커 명령줄 인터페이스에서 사용하는 명령어들은 레퍼런스 사이트에 자세히 적혀있다!!

 

https://docs.docker.com/reference/

 

Reference documentation

 

docs.docker.com

 

우선 이전 시간에 받아둔 httpd 이미지를 run 시켜보자.

 

이미지를 run 하기 위해서는 아래와 같은 명령어가 필요하다.

 

 docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

 

옵션에는 다양한 선택사항들을 줄 수 있다. 예를들어 컨테이너의 이름을 지정해주고 싶다면 name 속성을 이용하면된다.

 

더 많은 옵션들은 레퍼런스에서 확인할 수 있다!

 

docker run --name ws1 httpd

해당 명령어를 입력하면 컨테이너가 만들어지고 그 컨테이너가 실행되고 있는 모습이 보인다!

 

그리고 우리가 만든 컨테이너를 보고싶다면, ps 라는 명령어를 입력해주면 된다!

 

docker ps

 

해당 명령어를 입력하면, 컨테이너 아이디, 언제 만들어졌는지 그리고 그것의 이름은 무엇인지 볼 수 있다.

 

컨테이너 역시 안에있는 프로세스가 동작하기 때문에 컴퓨터의 자원을 잡아먹는다! 때문에 무한정 실행시킬 순 없는 노릇임으로 컨테이너를 중지, 재시작, 삭제 할 수도 있다.

 

컨테이너가 실행되는걸 중지하고 싶다면

 

 docker stop [OPTIONS] CONTAINER [CONTAINER...]

 

해당 명령어를 통해 컨테이너를 중지할 수 있다. (컨테이너 이름대신 컨테이너ID를 적어도 무관!)

 

 

중지 명령어를 적고 ps를 찍어보면 해당 컨테이너가 더이상 보이지 않게 된다.

 

그러나 컨테이너를 중지했다고 삭제된건 아니다.

 

docker ps -a

 

-a 옵션을 주고 ps 명령어를 실행시켜보면 중지시킨 ws1도 보이게된다.

 

 

이렇게 중지시킨 컨테이너를 다시 실행시키고 싶다면 아래 명령어를 입력하면된다. 

 

docker start [OPTIONS] CONTAINER [CONTAINER...]

 

재시작된 컨테이너는 로그를 뱉어내지 않는데, 로그를 보고 싶다면 해당 명령어를 입력하면 된다.

 

docker logs [OPTIONS] CONTAINER

그러나 이렇게 찍은 로그는 run 했을 때 와 달리 실시간으로 로그를 보여주진 않는다. 때문에 실시간으로 확인하고자 한다면 -f 옵션을 주어서 실시간으로 로그를 화면에 출력할 수 있다.

 

 

컨테이너를 삭제하고 싶다면 아래 명령어를 입력하면 된다.

 

 docker rm [OPTIONS] CONTAINER [CONTAINER...]

 

그러나 삭제해보면 삭제가 안되는걸 볼 수 있다.

 

 

이는 실행중인 컨테이너는 삭제할 수 없기 때문인데, 따라서 docker stop으로 컨테이너를 중지시킨 뒤 삭제해야한다.

 

 

docker ps -a 명령어로 확인해보면 컨테이너가 삭제됐음을 볼 수 있다.

 

아까 처럼 컨테이너를 중지시키지 않고 삭제하고 싶으면 -- force 옵션을 주면 된다

 

docker rm --force ...

 

그리고 컨테이너가 아닌 이미지를 삭제하고 싶다면 

 

 docker rmi [OPTIONS] IMAGE [IMAGE...]

 

해당 명령어를 주면된다. rmi는 딱봐도 remove image 일거라는 느낌이 온다.

 

이렇게 지금까지 도커 run 명령어와 컨테이너를 실행, 중지, 재실행, 삭제하는 방법들을 알아봤다.


참고자료

https://opentutorials.org/course/4781

 

생활코딩 Docker 입구 수업 - 생활코딩

수업소개 vmware, virtualbox와 같은 가상머신처럼 독립된 실행환경을 제공하면서도, 성능의 저하가 훨씬 적은 도커에 대해서 알려드립니다.  수업대상 일하는 조직에서 도커를 쓰고 있는 분 개발환

opentutorials.org

 

'docker' 카테고리의 다른 글

도커 입문(6) - 명령어 실행  (0) 2022.07.18
도커 입문(5) - 네트워크  (0) 2022.07.18
도커 입문(3) - 이미지 pull  (0) 2022.07.18
도커 입문(2) - 도커 설치  (0) 2022.07.18
도커 입문(1)  (0) 2022.07.17