본문 바로가기

Container/생활코딩 Docker

[Docker] Image를 pull 하고 Container를 run 시키기

반응형

🔊 해당 포스팅은 이고잉님의 생활코딩 오픈튜토리얼의 Docker 입문 수업을 듣고 제 개인적으로 정리하는 목적하에 작성되는 포스팅입니다. 보다 자세한 강의는 여기를 참고해주세요.

 

저번 포스팅에 이어서 Docker를 잘 설치했으니 이제 Docker에서 CLI로 Image를 pull 하고 Container를 run 시켜보자. pull 할 image는 아파치 웹서버인 httpd를 다운로드 받아보자.

 

Docker


1. Docker에서 Image를 Pull 시켜보자

image를 pull 하는 것은 간단하다. 다음의 명령어를 사용하면 된다.

 

docker pull httpd

 

 

잘 설치되었다면 위와 같이 나오게 된다. 그러면 설치한 image의 목록을 확인해보자. 명령어는 다음과 같다.

 

docker images

 

 

위 화면을 보면 방금 image를 pull 했음에도 CEATED(만들어진 날)이 3일 전이라고 뜬다. 이거는 필자가 httpd를 최초로 다운받은 날이 3일 전이라서 아직까지 그때의 기록으로 출력이 되는 것 같으므로 신경쓰지말자.

2. Docker에서 Container run 시키기

이제 그러면 Container를 run 시켜보자. Container를 run 시키는 명령어는 다음과 같은데, 명령어 옵션을 추가해서 컨테이너 이름을 지정할 수 있고 포트 옵션을 추가해서 Host의 포트번호와 Container의 포트번호를 연결시켜줄 수 있다. 포트 옵션을 추가하는 이유에 대해서는 이고잉님의 해당 강의를 참고하면 이해가 훨씬 원활할 것이다. 명령어는 다음과 같다.

 

docker run --name webserver1 -p 8080:80 httpd

 

위 명령어를 해석하면 다음과 같다.

 

"webserver1 이라는 Container를 만들어 실행해! 이 때, Host의 8080 포트번호와 webserver1 이라는 Container의 80포트번호와 연결을 시켜놓아! 이런 작업들이 수행되는 image는(방금 전 pull한) httpd 이미지에서 실행되어야 해!"

 

위 명령어를 실행하게 되면 아래와 같은 출력화면이 나타나면 정상적으로 컨테이너가 run 된 것이다. 참고로 Host의 포트번호는 우리 마음대로 지정이 가능하지만 컨테이너의 포트번호 80은 애초에 httpd라는 아파치 웹서버 이미지가 지정한 번호이므로 바꿀 수 없음을 인지하자.

 

 

이 때, 하나의 터미널을 더 켜서 다음 명령어를 쳐주고 만들어진 컨테이너 리스트들이 무엇인지 조회해보자. 참고로 -a 옵션은 컨테이너가 stop된 것들도 모두 보여주는 옵션이다.

 

docker ps -a

 

 

그렇게하면 위와 같이 컨테이너에 대한 정보, 그 컨테이너가 있는 이미지 이름, 컨테이너와 Host가 어떤 포트들로 연결되어 있는지에 대한 정보도 알 수 있다. 그리고 웹 브라우저에 http://localhost:8080/  주소로 들어가게 되면 아래와 같이 컨테이너에 만들어진 아파치 웹서버에 기본적으로 존재하는 index.html 에 대한 화면이 로드할 수 있게 된다. 

 

컨테이너 내부에 존재하는 index.html 화면이 띄워지게 된다.


자, 이제 그러면 위 index.html을 좀 내맘대로 수정해서 웹브라우저를 다르게 표시할 수 있지 않을까? 또,  index.html을 꾸미면서 자연스럽게 필요한 파일 버전관리를 수행할 수 있지 않을까? 할 수 있다. 다음 포스팅에서는 컨테이너 내부에서 index.html을 수정하는 방법과 컨테이너 내부의 파일 시스템과 Host의 파일시스템을 연결해서 Host에서만 index.html을 수정했지만 컨테이너 안의 index.html 파일도 같이 자동으로 수정되는 즉, 동기화시킬 수 있는 방법에 대해 알아보자.


끝으로, 인카토스라는 회사에서 감사하게도 제게 협찬을 해주신 제품을 하나 소개하려고 합니다. 그것은 바로 아래 사진의 Docker 컨테이너 각티슈 케이스입니다!

 

인카토스에서 협찬해주신 Docker 컨테이너 각티슈 휴지 케이스

 

개발 공부를 하다 보면 원인불명의 에러 때문에 땀을 흘리거나 눈물(?)을 흘리기도 하는데요! 겨울철엔  감기라도 걸리면 모니터 앞에서 콧물을 흘리기도, 한여름엔 개발을 너무 열심히 한 나머지 땀을 흘리기도 합니다.

 

하지만 이 제품을 곁에 두고 개발을 하게 되면 귀여운 Docker 컨테이너가 제공하는 티슈 한 장을 편하게 뽑아 쓰면서 개발 텐션을 끊지 않고 이어갈 수 있답니다~!  특히, 마치 개발 관련 장비를 하나 늘린 것처럼 마음이 한켠 든든해지는 기분입니다! 해당 제품에 관심이 있으시다면 아래 링크로 들어가시면 됩니다. 다시 한 번 좋은 제품을 협찬해주신 인카토스에 감사인사 드립니다! :)

 

💡 판매처 인카토스 : https://incatos.shop/

반응형