Docker 엔진 기본 명령어 및 apache 샘플 사이트 서비스 하기

2022. 3. 10. 10:31개발/Docker-K8s

sudo apt-get install docker-ce 명령어를 통해서 docker를 설치한다.

 

docker run 명령어를 통해 ubuntu:14.04 컨테이너를 실행한다. 만약 이미지가 존재하지 않는다면 다운로드를 먼저하고  컨테이너를 생성 및 실행한다. ( + 접속까지 수행해준다. )

-i 옵션으로 상호 입출력

-t 옵션으로 tty를 활성화 해서 bash 셸을 사용하도록 컨테이너를 셋팅한다.

 

exit를 통해 컨테이너를 정지한다. Ctrl +P + Q를 사용하면 컨테이너를 정지하지 않고 Bash 셸을 빠져나올 수 있다.

단순히 이미지만 내려받기 위해선 docker pull 명령어를 사용한다.

 

 

docker images 명령어를 통해 도커 엔진에 존재하는 이미지 목록을 확인할 수 있다.

 

sudo docker create -i -t --name mycentos centos:7 명령어는 centos:7 이미지를 사용해서 이름이 mycentos인 컨테이너를 생성한다. 단, 컨테이너 내부로 들어가진 않는다.

sudo docker start mycentos 명령어를 통해 생성한 mycentos 컨테이너를 실행한다.

sudo docker attach mycentos 명령어를 통해 실행한 mycentos 컨테이너에 들어간다.

 

sudo docker ps 명령어를 통해 실행중인 컨테이너를 조회한다. 

정지된 컨테이너를 포함해서 조회하려면 -a 옵션을 사용한다.

 

docker rename 명령어를 통해 이름을 변경할 수 있다. 

 

docker rm을 통해 컨테이너를 삭제할 수 있다. 실행중인 컨테이너를 삭제할 것이라면 docker stop으로 컨테이너를 정지하고 삭제해야한다. 만약 실행중인 컨테이너를 강제로 삭제하고 싶으면 docker rm에 -f 옵션을 사용하면된다.

 

컨테이너는 172.17.0.x의 IP를 순차적으로 할당받는다. 아래 사진에선 172.17.0.2가 할당되었다. lo는 로컬호스트와 통신하기 위한 인터페이스이다. 기본적으로 호스트를 제외한 외부에서 컨테이너에 접근할 수 없다. 따라서 외부에 노출시키기 위해선 eth0의 IP와 포트를 호스트의 IP와 포트에 바인딩해야한다.

 

이전과 달리 -p 옵션을 사용했는데 컨테이너의 포트와 호스트의 포트를 바인딩 해주는 옵션이다.

[호스트의 포트]:[컨테이너의 포트]로 작성한다. 아래의 예시는 호스트 80번 포트로 접근시 컨테이너의 80번 포트로 포워딩해준다.

호스트와 컨테이너 간의 포트 바인딩 정보를 아 수 있다.

 

mywebserver에 접속해서 apache2를 설치한다. apt-get install apache2 -y 명령어를 사용한다.

설치가 완료 되었다면 service apache2 start 명령어를 통해 아파치를 구동한다. apache 서버에 별다른 설정을 하지 않았다면 80번 포트를 사용한다.

 

호스트 IP의 80번 포트로 접속하면 컨테이너에서 실행한 apache default사이트에 접속이 가능하다.

 

 

참고 서적


 

 

시작하세요! 도커/쿠버네티스 (개정판) - YES24

도커 컨테이너는 애플리케이션을 배포하기 위한 새로운 패러다임을 제시하는 가상화 패러다임이다. 컨테이너 자체는 사용하기 매우 쉽지만 이를 활용하고 관리하기는 결코 쉽지 않다. 이 책은

www.yes24.com

 

'개발 > Docker-K8s' 카테고리의 다른 글

쿠버네티스 컴포넌트와 오브젝트  (1) 2023.11.03
Kubectl과 Namespace  (1) 2023.10.04
Docker로 Spring 애플리케이션 배포하기  (1) 2022.03.16