Post

리눅스 & 도커 공부 2024.08.30

서버 구축 및 운영체제 설치

서버 운영에 필요한 최소한의 기능만 갖춘 환경에서 설치 및 설정하는 방법에 대해 설명. 초심자용이고, 복잡한 GUI 없이 가벼운 시스템을 만드는 걸 목표로 함.

1. 운영체제 선택

서버 운영할 때는 가벼운 리눅스 배포판 선택이 중요함. 예를 들어, CentOS는 많은 서버 환경에서 사용되고, 네이버 같은 대형 플랫폼에서도 사용 중임. 반면에 요즘은 데비안 기반 운영체제도 많이 선호하고 있음. 라즈베리파이 같은 ARM 아키텍처 지원하는 기기에서도 데비안 기반 OS 많이 씀.

2. 부팅 USB 만들기

운영체제 설치하려면 부팅 가능한 USB 필요함. Ventoy라는 도구를 사용해서 여러 운영체제를 USB에 설치하고 필요에 따라 선택해서 부팅할 수 있음.

준비물

  • ISO 파일: 운영체제 설치 이미지
  • SD 카드 또는 USB 드라이브
  • Ventoy 설치 프로그램

과정

  1. Ventoy를 USB에 설치함.
  2. ISO 파일을 Ventoy가 설치된 USB로 복사함.
  3. USB를 부팅 장치로 설정해서 운영체제 설치 진행함.

3. 서버 초기 설정

운영체제가 설치된 후에 네트워크 설정 및 서버 초기 설정 진행.

네트워크 설정

  1. DHCP 설정해서 IP 주소 자동 할당 받음.
  2. SSH 설정해서 원격 접속 가능하게 함.

사용자 관리 및 권한 설정

  • 초기 설정 때 root 사용자 비밀번호 바꾸고, 필요하면 새 사용자 계정 만듦.

4. 파일 공유 및 웹 서버 설정

서버에서 파일 공유하거나 웹 서버 운영하려면 Samba와 Apache 설치하고 설정함.

Samba 설정

  • Samba 설치하고 /var/www 디렉토리 공유해서 파일 관리함.
  • 권한 설정해서 특정 사용자만 파일 접근 가능하게 함.

Apache 설정

  • Apache 웹 서버 설치하고, 기본 디렉토리 설정함.
  • Index.html 파일을 기본 페이지로 설정하고, 디렉토리 노출 막으려면 디렉토리 리스팅 비활성화함.

5. 도커를 이용한 데이터베이스 설정

도커 사용해서 MySQL이나 MariaDB 같은 데이터베이스 쉽게 관리 가능함. Docker Compose 사용하면 여러 개의 컨테이너 효율적으로 관리할 수 있음.

Docker 설치 및 설정

  • 도커 이미지 받아서 컨테이너 생성하고 실행함.
  • Docker Compose 파일 작성해서 데이터베이스, 웹 서버 등 구성함.

데이터베이스 백업 및 복원

  • mysqldump 명령어로 로컬 데이터베이스 백업하고, 새로운 서버로 데이터 옮김.
  • 도커의 볼륨 마운트로 데이터 유실 방지 가능함.

6. 서버 자동화 및 관리

서버 원활히 동작하도록 자동화 스크립트나 크론탭 활용해서 서버 관리함.

크론탭 설정

  • 특정 시간에 서버 자동으로 종료하거나 재부팅하도록 크론탭 설정함.
  • 예: 매일 특정 시간에 서버 종료하는 명령어 추가 가능함.

7. 정리

자세한 내용들은 노션에 정리했는데 사진이랑. 비번이나 ip등 혹시 몰라서 노션게시는 하지않았음.

1. 컨테이너(Container)

컨테이너는 응용 프로그램과 그 실행에 필요한 모든 파일, 라이브러리, 설정 파일 등을 포함하는 가벼운 가상 환경. 컨테이너를 사용하면 코드가 어디서나 동일하게 실행되도록 보장할 수 있다. 예를 들어, 개발 환경에서 잘 돌아가던 프로그램이 운영 환경에서 오류를 일으키는 문제를 피할 수 있음.

2. 이미지(Image)

이미지는 컨테이너를 만들기 위한 템플릿 같은 것. 컨테이너는 이 이미지를 기반으로 만들어진다. 이미지는 여러 레이어로 구성되어 있으며, 각 레이어는 특정 명령어 또는 변경 사항을 포함. 도커 이미지는 쉽게 공유하거나 다시 사용할 수 있음.

3. 도커 파일(Dockerfile)

도커 파일은 도커 이미지를 만들기 위한 텍스트 파일다. 이 파일에는 어떤 베이스 이미지를 사용할지, 어떤 소프트웨어를 설치할지, 어떤 설정을 할지를 순서대로 명시힘. 예를 들어, 특정 버전의 파이썬을 설치하고, 애플리케이션 코드를 복사하며, 실행 명령어를 지정하는 내용을 포함할 수 있다.

4. 도커 허브(Docker Hub)

도커 허브는 도커 이미지를 저장하고 공유하는 클라우드 서비스. 개발자들은 도커 허브에서 이미지를 가져와 사용할 수 있고, 자신이 만든 이미지를 업로드하여 다른 사람과 공유할 수도 있다.

5. 가상 머신(VM)과의 차이점

도커 컨테이너는 가상 머신(VM)과 비슷하지만, 훨씬 더 가볍고 빠름. VM은 각각의 운영체제를 포함하기 때문에 무겁지만, 도커 컨테이너는 호스트 운영체제의 커널을 공유하여 더 가볍다.

요약

도커는 소프트웨어 개발 및 배포를 단순화하고 일관되게 유지해주는 도구임. 컨테이너는 애플리케이션과 필요한 모든 것을 포함한 독립된 실행 환경이고, 이미지는 그 컨테이너의 템플릿 역할을 함. 도커 파일을 사용해 이미지를 만들고, 도커 허브에서 이미지를 공유하거나 가져올 수 있다.

This post is licensed under CC BY 4.0 by the author.