2022. 6. 4. 16:26ㆍIT용어 아는척 하기
지난 포스팅에서 도커의 기반이 되는 컨테이너 기술과 기본적인 도커의 개념들을 살펴봤다.
이번 포스팅에서는 직접 GCP(Google Cloud Platform)에 도커를 설치해보고 도커의 라이프싸이클을 직접 명령어로 실행해 볼 것이다.
일단 GCP에 VM 인스턴스를 하나 생성하자.
앞 포스팅에서도 언급했듯이 도커는 컨테이너 기술을 활용한 소프트웨어로 리눅스 커널 기능을 활용하기 때문에 다른 OS보다는 리눅스 계열에서 사용하는 것이 좋다.
GCP 콘솔에 접속하여 Compute engine 메뉴에 접속하여 VM 인스턴스를 클릭하면 아래와 같은 화면이 나온다.
여기서 인스턴스 만들기를 클릭한다.
대부분 기본으로 세팅하고 OS를 우분투로 바꿔준다.
인스턴스가 생성되면 SSH를 눌러 터미널을 실행시킨다.
터미널이 나오면 sudo su 명령어를 통해 루트 권한을 얻는다
(이 포스팅의 명령어들을 설치 시를 제외하고는 sudo를 붙이지 않는다. 루트 권한이 없다면 sudo를 붙여서 수행해야한다.)
이제 도커를 설치하자.
아래 명령들을 순차적으로 실행하자.
$ sudo apt-get update
$ sudo apt-get -y install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
Docker의 Official GPG Key 를 등록한다.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
stable repository 를 등록해줍니다.
echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
docker --version
위 명령어를 실행했을때 도커 버전이 출력되면 설치는 성공적으로 끝난 것이다.
이제 부터 도커 라이프사이클에 맞춘 명령어들을 수행해 보겠다.
먼저 도커 허브에 있는 nginx 이미지를 다운로드 받아 컨테이너로 실행시켜보겠다.
도커 허브 레지스트리에서 nginx를 pull 받는다.
docker pull nginx
다운 받은 이미지를 컨테이너화 한다.
docker create -p 80:80 --name nx nginx
( 앞의 80이 VM 포트이고 뒤의 80이 컨테이너의 포트이다. )
생성된 컨테이너를 확인한다.
docker ps -a
해당 컨테이너 ID로 컨테이너를 메모리에 띄운다.
docker start 42ac654b8b45
브라우저에 외부 IP 80포트로 접속해 보면 nginx가 실행된 것을 볼 수 있다.
이후 중지 명령과 삭제 명령들을 차례로 수행한다.
docker stop 493979b3a04d
docker rm 493979b3a04d
docker rmi nginx
컨테이너가 실행되고 있는 중에는 이미지가 삭제되지 않으니 주의해야 한다.
rmi -f 옵션을 이용하면 컨테이너가 떠있어도 강제 이미지 삭제가 가능한다.
이번에는 RUN 명령어를 통해 Create와 Start를 함께 수행해 보자
레지스트리에서 tomcat 이미지를 다운로드 한 후 아래 명령을 수행해 보자.
docker run -d --name tc -p 80:8080 tomcat
브라우저를 통해 잘 실행되는 것을 볼 수 있다.
이외 몇가지 유용한 명령어들이 있다.
컨테이너 내부 셸 실행
docker exec -it tc(수행중인 컨테이너 이름) /bin/bash
컨테이너 로그 확인
docker logs tc
기본적인 로그나 에러로그를 확인이 가능하다.
로컬 파일을 컨테이너로 복사, 컨테이너 파일을 로컬로 복사, 컨테이너간 파일 복사
docker cp <path> <to container>:<path>
docker cp <from container>:<path> <path>
docker cp : <from container>:<path> <to container>:<path>
임시 컨테이너 생성
docker run -d -p 80:8080 --rm --name tc tomcat
--rm 옵션을 주면 컨테이너를 내리는 순간 삭제된다.
다음 포스팅에서는 해당 명령어들과 추가적인 명령어들을 가지고 DB를 가진 서비스 하나를 도커로 실행해보도록 하겠다.
'IT용어 아는척 하기' 카테고리의 다른 글
FE 성능 최적화 (1) | 2023.10.09 |
---|---|
쿠버네틱스로 가는 발판① - Docker(도커) 기본 개념 (0) | 2022.05.31 |
프로그래밍의 근본, 알고리즘 (feat. 코딩테스트) (0) | 2021.12.27 |
Atomic Design Pattern (feat. React, Vue, Flutter) (0) | 2021.12.26 |
개발자가 이해하는 북극성 지표(North Star Metric) (0) | 2021.12.26 |