728x90
728x90
애저(Azure)를 이용하여 도커(Docker)를 구축하고, 간단한 실습 해보기
들어가며
- 애저(Azure)를 이용하여 구축한 도커(Docker)를 간단하게 실습해 보자.
- 이 글은 이전 글(https://dev-astra.tistory.com/389)에 이어서 진행된다.
실습하기
- 다음 명령을 실행하여 우분투(Ubuntu) 18.04 버전의 이미지를 가져온다.
$ docker pull ubuntu:18.04
- 다음 명령을 실행하여 로컬에 어떤 이미지가 있는지 확인해본다.
$ docker images
우분투 18.04 버전의 용량이 작은 것을 확인할 수 있는데, 그 이유는 현재 설치된 우분투 22.04 버전과 대부분의 파일을 공유하기 때문이다. (63.2MB는 우분투 18.04버전을 위한 파일들의 크기라고 생각하면 된다.)
- 다음 명령을 실행하여 메모리 상에서 실행되고 있는 프로세스들을 확인해본다. (@-a@ 옵션을 추가하면 모든 프로세스들을 볼 수 있다.)
$ ps
- 도커에서 실행 중인 프로세스를 확인하기 위해 다음 명령을 실행해본다.
$ docker ps -a
- 도커에 가져온 이미지(@ubuntu:18.04@)를 실행하기 위해 다음 명령을 실행해본다.
- @run@ : 도커에서 해당 컨테이너로 진입하는 명령
- @--name demo@ : 이름을 @demo@로 설정한다.
- @-it@ : Interactive Terminal (대화형 터미널)
- @/bin/bash@ 셸을 이용한다.
$ docker run --name demo -it ubuntu:18.04 /bin/bash
- 해당 이미지(@ubuntu:18.04@)로 진입하였다. 이제 우분투 18.04 컨테이너 안에서 작업을 할 수 있게 되었다.
- 다음 명령을 실행하여 버전을 최신 버전으로 업데이트 해준다. (프롬프트에 @#@이 표시되어 있는데, 이미 슈퍼 유저의 권한을 갖고 있음을 확인할 수 있다.)
/# apt-get update
/# apt-get upgrade
- 다음 명령을 실행하여 다시 우분투 22.04 버전으로 돌아온다.
/# exit
- 다음 명령을 실행해서 실행 중인 컨테이너를 확인해본다.
$ docker ps
- 다음 명령을 실행하여 우분투 18.04 컨테이너에 진입한다. 그리고 도커에서 실행 중인 프로세스를 확인한다.
- 계속해서 실행되면서 처리 되어야 하는 도커 이미지는 @-d@ 옵션을 추가하여 데몬 모드로 실행해줘야 한다.
$ docker run -it -d --name demo2 ubuntu:18.04
$ docker ps
- 다음 명령을 실행하여 우분투 18.04 컨테이너에 접속해본다.
$ docker exec -it demo2 /bin/bash
- 다시 우분투 18.04 컨테이너에서 빠져나온 후, 도커에서 실행 중인 컨테이너를 확인하면 @demo2@가 아직도 데몬 모드로 실행되고 있음을 확인할 수 있다.
- 다음 명령을 실행하여 도커에서 실행 중인 모든 컨테이너를 확인해본다.
$ docker ps -a
컨테이너에서 빠져 나오더라도 메모리에서 소멸되는 것이 아니라, '실행이 되고 있지는 않지만, 메모리에 떠 있는 상태(얼려 있는 상태)'가 된다.
- 이처럼 여러 개의 우분투 컨테이너들을 도커 안에 만들어서 서비스를 배포할 수 있다. 하지만, 이렇게 많아진 컨테이너들을 실행하고 관리하는 것은 힘들어질 것이다. (많으면 몇 백개씩 만들어지고 실행된다.) 이렇게 많아진 컨테이너들을 관리하기 위해 쿠버네티스(Kubernetes)가 만들어졌다.
- 도커는 다음과 같이 작동한다. (Source Control → Local Dockerfile → Test Image → Source Control → ...)
- 다음의 명령을 실행하여 도커의 로그를 추적하여 확인할 수 있다.
$ docker logs demo2
- 다음과 같인 간단하게 셸 프로그래밍을 할 수 있다. (1초에 한번씩 날짜를 출력한다.)
$ docker run --name demo3 -d busybox sh -c "while true; do $(echo date); sleep 1; done"
- 다음 명령을 실행하여 @demo3@ 컨테이너의 로그를 확인해본다.
$ docker logs demo3
- 다음처럼 @-f@ 옵션을 넣고 명령을 실행하여 지속적으로 팔로우(Follow) 하면서 1초마다 로그를 확인할 수 있다. (와치/팔로우 모드)
$ docker logs demo3 -f
- @[Ctrl]@ + @[C]@ 버튼을 누르면 중단시킬 수 있다.
- 다음 명령을 실행하여 도커에서 실행 중인 컨테이너를 확인해본다.
$ docker ps
- 다음 명령을 실행하여 실행 중인 컨테이너를 중단시켜 본다.
$ docker stop demo3
- 나머지 컨테이너들도 중단시켜본다.
$ docker stop demo2
$ docker stop demo
- 다음 명령을 입력하여 도커에서 실행 중인 컨테이너들을 모두 확인해본다.
$ docker ps -a
- 메모리에 올라와 있는 컨테이너를 완전히 제거하면 다음과 같이 @rm@ 명령어를 사용한다.
$ docker rm demo
- 다른 컨테이너들도 모두 제거해준다.
$ docker rm demo2
$ docker rm demo3
- 도커에 다운로드 된 이미지들을 확인해본다.
$ docker images
- 컨테이너 이미지를 삭제하라면, @rm@ 명령어 뒤에 @i@를 붙인 @rmi@ 명령어를 사용한다.
$ docker rmi hello-world
- 다음 명령을 실행하여 컨테이너 이름을 확인한 후, 해당 컨테이너(@wizardly_mendel@)를 지워준다.
$ docker ps -a
$ docker rm wizardly_mendel
- 그리고 다시 이미지를 지워준다.
$ docker rmi hello-world
도커에서 이미지(Image)를 제거하려면 우선 이미지로 만든 컨테이너(Container)를 제거해야 한다.
- 다음 명령을 실행하여 @ubuntu:18.04@ 이미지와 @busybox@ 이미지를 제거한다. (태그(버전)를 정확하게 지정해준다. 태그를 지정해주지 않으면 가장 최근(Latest) 버전의 이미지가 선택된다.)
$ docker rmi ubuntu:18.04
$ docker rmi busybox
- 도커는 다음과 같은 원리로 작동한다는 것을 알 수 있다.
참고 사이트
도커 공식 문서
728x90
728x90
'DevOps > Azure' 카테고리의 다른 글
[Azure] 쿠버네티스(Kubernetes) 실습하기 : 간단한 실습 해보기 (0) | 2023.05.29 |
---|---|
[Azure] 쿠버네티스(Kubernetes) 실습하기 : 미니쿠베(minikube) 설치하기 (0) | 2023.05.27 |
[Azure] 도커(Docker) 실습하기 : 도커 이미지를 다른 사람과 공유하여 사용해보기 (0) | 2023.05.27 |
[Azure] 도커(Docker) 실습하기 : Dockerfile을 이용하여 직접 도커 이미지를 만들고 컨테이너 만들어보기 (0) | 2023.05.27 |
[Azure] 도커(Docker) 실습하기 : 도커 설치하기 (0) | 2023.05.27 |
[Azure] 파이썬(Python)을 사용하여 데이터베이스 쿼리 실습하기 (0) | 2023.05.24 |
[Azure] SQL Server 실습하기 (0) | 2023.05.24 |
[Azure] SSMS/VS Code를 사용하여 연결 및 쿼리 실습하기 (0) | 2023.05.23 |