본문 바로가기
카테고리 없음

도커 컨테이너 실행 방법(Docker Container Run)

2022. 6. 12.

이전 시간에는 도커 허브에서 이미지 가져오는 방법, 즉 Docker Image pull 방법에 대해 알아보았습니다. 앱스토어에서 앱을 설치했으면 그다음 단계는 실행하는 것이죠. 마찬가지로 가져온 이미지를 실행시켜 도커 컨테이너를 만드는 방법에 대해 알아보겠습니다.

 

도커 허브에서 이미지를 가져오는 방법에 대해 모르시는 분이 계시다면, 저의 이전글을 확인하여 보고 오시길 추천드립니다.

 

도커(Docker) 이미지 다운로드 방법

이번 글에서는 도커(Docker) 이미지 다운로드 방법에 대해 알아보려 합니다. 글을 시작하기 전 도커를 사용하기 위해서 이해해야 할 개념이 몇 가지 있습니다. 비유적으로 설명을 하겠습니다. 도

ssonny.tistory.com

지난 글에서 httpd를 도커 허브에서 받았습니다. 해당 이미지로 이어서 진행하니, 만약 도커에 익숙하지 않으시거나 처음 접하시는 분은 이전 글을 참고하여 httpd 이미지를 Pull 하시길 바랍니다.

Docker Desktop에서 도커 컨테이너 실행 방법

도커 데스크탑 이미지 화면

우선 도커 Dashboard를 실행합니다. 좌측의 Image를 클릭하여 들어가면 어제 설치하면 httpd가 보입니다. 우측의 Run버튼을 클릭하면 httpd 이미지를 컨테이너로 만드는 대화상자가 열립니다.

Image를 Container로 Run
도커 컨테이너 Run 화면

위 화면에서 Run을 눌러도 컨테이너가 생성이 되나, 추후 관리를 위해 우리는 별도 옵션을 설정하여야합니다. httpd 컨테이너만 생성하는 것이 아니라 나중에는 필요한 이미지도 컨테이너로 생성해야 하기 때문에 이름을 잘 지정해서 생성하는 게 좋습니다.

 

Optional Settings를 클릭하고 Container Name에 원하는 이름을 지정해봅시다. 저는 웹서버라는 뜻에서 ws1이라는 이름을 지정하고 컨테이너를 만들겠습니다.

컨테이너 실행 옵션
컨테이너 실행 옵션

그러면 메뉴가 Images에서 Containers로 이동하게 되고 방금 실행한 ws1 이름의 컨테이너가 생성이 됐고, 컨테이너가 생성되면서 그 안에있는 프로세스가 running 중인 것을 볼 수 있습니다. 

ws1 컨테이너가 실행중인 것을 확인할 수 있다.

ws1 컨테이너가 실행되고 있는 모습을 보고 싶다면, running을 클릭하면 됩니다. 컨테이너 안에서 실행되고 있는 프로세스가 출력하는 Log를 볼 수 있고, Insepect를 클릭하면 컨테이너에 대한 자세한 정보, Status는 컨테이너의 통계 자료를 볼 수 있습니다.

컨테이너 로그
컨테이너 로그 화면

실행되고 있는 컨테이너는 컴퓨터의 자원을 사용합니다. 컴퓨터의 자원을 아끼기 위해서는 불필요한 컨테이너를 끌 필요가 있습니다. 그 때 사용하는 명령이 Stop입니다. Stop을 누르면 컨테이너가 종료되고, 다시 Start버튼을 클릭하면 컨테이너가 실행됩니다.

 

컨테이너가 더 이상 필요 없다면 휴지통 모양의 Delete 버튼을 클릭하여 컨테이너를 삭제할 수도 있습니다.

 

자 그러면 지금까지 했던 작업을 커맨드 라인에서 해봅시다. 커맨드 라인에서 하는 것에 더 익숙해져야할 필요가 있습니다.

Command line에서 도커 컨테이너 실행 방법

커맨드라인에서 컨테이너를 실행하는 명령어는 docker run입니다.

docker run [option] IMAGE [command] [arg...]

위의 형식으로 입력할 수 있습니다. 대괄호는 되어 있으면 생략해도 됩니다. 각 옵션은 docs.docker.com에서 확인할 수 있습니다.

 

설치된 httpd 이미지를 컨테이너로 생성하려면 다음과 같이 명령어를 입력해봅시다. 그러면 아까 대시보드에서 본 Log 부분이 보입니다.

docker run httpd

우리가 만든 컨테이너를 보고 싶을 때는 다음과 같은 명령어를 입력해줍시다.

docker ps

docker ps 화면
docker ps를 입력하면 나오는 화면

하나의 이미지는 여러 개의 컨테이너를 만들 수 있습니다. 명령어로 다시 컨테이너를 만들어볼 건데요, 이번에는 해당 컨테이너에 이름을 붙여봅시다. 아까 대시보드에서 생성한 것처럼 ws2이라는 컨테이너를 추가로 만들어 봅시다.

docker run --name ws2 htttpd

컨테이너 이름 설정
컨테이너 이름을 설정하면 위와 같이 나온다

ps 명령어로 실행된 도커 컨테이너를 봅시다. 아까 생성한 컨테이너와 방금 생성한 ws2 컨테이너가 생겼습니다. 그렇다면 실행 중인 컨테이너를 끄고 싶다면 다음과 같은 명령어를 입력하시면 됩니다.

docker stop ws2

이름 대신 container ID를 입력해도 됩니다. 다시 docker ps를 입력하면 방금 종료시킨 컨테이너가 보이지 않습니다. 그러면 ws2 컨테이너는 삭제가 된 걸까요? 그렇지 않습니다. docker ps -a를 붙이면 stop 시킨 컨테이너까지 확인할 수 있습니다. 삭제가 되지 않았죠.

 

stop 했다고 컨테이너가 삭제되는 것은 아닙니다. 다시 stop 시킨 컨테이너를 실행시키려면 docker start ws2를 입력하면 됩니다.

docker start ws2

그런데 실행은 됐으나, 로그가 보이지 않아 많이 답답합니다. Log를 보는 방법은 다음 명령어를 입력하면 됩니다. -f 옵션을 추가하면 로그를 계속 띄울 수 있습니다.

docker logs [-f] ws2

 컨테이너를 삭제할 때는 docker rm이라는 명령어를 입력하면 됩니다. 현재 실행 중인 ws2를 삭제해볼까요?

docker rm ws2

에러가 발생합니다. 이유는 현재 실행중인 컨테이너는 바로 지울 수 없기 때문입니다. 따라서 docker stop으로 ws2를 종료하고, rm으로 ws2를 삭제하면 됩니다. 이것도 귀찮다 싶으시면 --force 옵션을 넣어주면 됩니다. 실행되고 있는 컨테이너를 삭제할 수 있습니다.

docker rm --force ws2

 

 

Docker Image 삭제 방법

Docker Desktop에서 Docker Image 삭제하려면 대시보드 > Imags에 들어가서 [...]을 클릭합니다. 빨간색으로 Remove가 보이시죠? 클릭하면 삭제됩니다.

 

Command line에서 삭제하고 싶다면 docker rmi라는 명령어를 입력하면 됩니다. 설치한 httpd 이미지를 삭제해봅시다.

docker rmi httpd

만약 정상적으로 삭제되지 않는다면, docker ps -a 명령어를 통해 httpd 컨테이너가 종료가 아닌 실행 중이거나, 중지 상태인지 확인해봅니다. 있다면 httpd 컨테이너를 모두 삭제하고, 이미지를 삭제하시면 됩니다.

반응형

댓글