구축환경
CentOS 7.6 Minimal - (www.centos.org)
VirtualBox 7.0 - (www.virtualbox.org)
가상화(서버 가상화, 네트워크 가상화 등 다양하게 존재)
서버와 관련된 가상화 중 가장 많이 알려져 있는 것으로는 OpenStack / Docker라는 솔루션이 있다.
둘 다 오픈 소스들이다. 대부분의 Docker는 Docker Hub와 연결되어 있다.
가상화를 제공하는 사이트에 접속해서 로그인 하고 직원으로 인증하거나 비용을 낸다면 윈도우 및 리눅스 등을 사용할 수 있다. 가상화가 이루어지면 가상 머신만 필요할 때 받아서 사용하면 되기에 컴퓨터 본체가 필요 없는 것이 장점이다. 요즘 떠오르는 클라우드 서비스들이 가상화를 응용해서 사용하는 것이라고 이해하면 쉽다.
이번 포스팅에서는 도커를 사용해서 가상화 실습을 할 것이다.
도커와 비슷한 용어로는 Git - GitHub 가 있다.
Git(로컬) - GitHub(원격저장소)
Git은 소프트웨어 개발자들이 협업을 하기 위해 만들어놓은 시스템이며 로컬에서 사용한다.
여러명의 개발자들이 프로그램을 파트별로 나눠서 로컬에 저장하는 게 Git이고
Github는 내가 Git에서 프로젝트를 만들면 허브에 원격 저장하는 것이다.
Git은 원래 형상(버전)관리시스템이다. 이 말은 소프트웨어를 개발하는 초창기의 버전에 특정한 기능을 추가했을 때 버전이 올라가는 것을 위해 필요한 것이 Git이라는 것이다.
어떤 프로그램을 5명이 만든다고 가정을 했을 때 A가 만든것을 Git-Github에 작업 결과물을 올리고 실시간으로 웹에서 바로 확인하고 여러 개 프로그램을 병합하거나 소스코드도 볼 수 있다. 로컬에서 소실해도 Git-Github에 올려진 것으로 복원할 수 있는 장점이 있다. 프로그램에 추가된 부분도 바로 병합시킬 수도 있으며 백업과 복원, 추가와 같은것도 자유롭게 할 수 있는 것이 또 다른 장점이다.
Docker hub는 원격저장소가 되고 여러 파일을 업/다운로드를 할 수 있고 업로드한 부분의 변경된 사항도 최신화할 수 있다.
Docker 설치
웹에 docker hub 검색 후 들어가기
일반적으로 내가 윈도우에서 파이썬을 이용해서 뭔가를 개발할 때 파이썬을 설치하고 vs코드나 이클립스를 부가적으로 설치해야 하지만, docker에서는 이 이미지만 가져오면 그 과정들을 모두 생략하고 파이썬 개발 환경이 만들어진다.
docker 사이트 들어가기
리눅스에 도커 설치 및 버전확인
Centos7 머신 하나 준비
커맨드 창에서 리눅스 도커 프로그램을 받아와서 설치할 예정이다.
docker를 설치할 때 몇가지 주요 프로세서들이 존재하는데 설치 스크립트를 docker에서 제공해 준다.
이번에는 설치 스크립트 주소를 요청해서 설치할 예정이다.
curl 설치
yum install -y curl
curl -s https://get.docker.com | sudo su
docker -v : 현재 도커 버전확인 가능
설치 확인은 rpm -qa | gerp docker
ce가 붙은 건 오픈소스이다.
systemctl start docker
도커에서 실행 중인 프로세서 확인 명령어 docker ps
Container 이미지 받기
이미지 받을 때는 docker pull + 이미지 이름
Centos를 받아보자.
docker pull centos
원래는 이미지 이름 + : tag 태그가 있어야 한다.
태그가 없을 경우 기본값이 : latest(가장 최근, 최신)(기본값)
태그를 주지 않으면 가장 최신버전을 가져오겠다는 뜻이다.
센토스 6을 받고 싶으면
6의 코드네임이나 버전을 명시해 주면 그 버전을 받을 수 있다.
Docker 명령어들
도커에서 관리하는 이미지 확인 하고 싶을 때는 명령어 docker image
docker images
s를 붙이면 repository, tag, image ID, created, size와 같은 정보를 조회할 수 있다.
생성이 13개월 전이라는 것은 CentOS 최신 버전이 만들어진 시간(우리가 작업한 시간이 아니다)
정보 확인을 위한 명령어 docker info | more
현재는 centos 이미지를 하나만 받아서 이미지는 1이고 아직 실행을 안 해서 running은 0이다.
docker commit 내가 만든 어플리케이션을 이미지로 생성할 때
commit은 내가 만약 워드프레스 이미지를 받았는데 새로운 테마를 집어넣고 게시판을 만들고 나만의 워드프레스 웹서버를 하나 완벽하게 구축했는데 이것을 나의 docker 저장소에 넣고 싶을 때
이미지를 생성하는 명령어가 docker commit wordpress이다.
받는 건 pull 올리는건 push
워드프레스 올릴 때는
변경된 이미지와 차이점을 비교할 때는 명령어 docker diff wordpress를 사용한다.
변경 용량 또는 어떤 부분이 바뀌어졌는지 차이점을 알려줌
기본 명령어가 pull, push, diff, images, ps
docker run --help 해보면 많은 명령어들이 나오는데 거기서 가장 많이 사용하는 게 -t / -i 이다.
위 캡처는 centos:latest 이미지를 터미널에서 실행하되 bash셀로 실행시켜라라는 명령어이다.
우리가 사용하는 centos가 아닌 다른 버전의 centos다.
우리는 7 버전을 사용하는데 8 버전인 것을 볼 수 있다.
그 뜻은 우리가 작업을 하게 되면 7 버전이 아닌 8 버전으로 작업이 되며 웹서버를 구축하면 7이 아닌 8 버전으로 구축된다는 의미이다.
빠져나올 때는 exit 두 번
종료된 프로그램까지 확인하는 명령어 docker ps -a
한번 실행했던 이미지 재실행 명령어 docker restart 컨테이너 ID
종료 명령어 docker stop 컨테이너 ID
삭제는 종료가 된 상태에서만 가능하다. 삭제 명령어 docker rm 컨테이너 ID
삭제 후에는 docker ps -a을 해도 보이지 않는다.
하지만 pulling한 이미지는 아직 남아있다.
나머지는 다음 포스팅에 이어서 작성하겠습니다.
'정보보안실무 > 서버, 클라우드' 카테고리의 다른 글
S-Part. 26 가상화 Docker [2] (0) | 2023.05.14 |
---|---|
S-Part. 24 Untangle 구축과 실행 (통합 위협/보안 관리) (0) | 2023.05.13 |
S-Part. 23 ps -ef, lsof명령어와 set-default로 실행권한 변경 및 런레벨(Runlevel) 알아보기 (0) | 2023.05.13 |
S-Part. 22 Hard링크와 Soft링크 (0) | 2023.05.13 |
S-Part.20 NAC 장비 PacketFence 설정 (0) | 2023.05.05 |