1000sj
SJ CODE
1000sj
전체 방문자
오늘
어제
  • 분류 전체보기
    • 네트워크 보안
      • 네트워크
      • 보안
      • CTF
      • CVE
    • 알고리즘
    • System Programming
      • Operating System
      • Device Driver
      • Emulator
    • Application Programming
      • Script
      • Android
    • 클라우드 컴퓨팅
      • Cloud Native
      • Public Cloud
      • Infrastructure
      • Database
    • 트러블슈팅
    • ETC
      • 문화 생활
      • 커뮤니티

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
1000sj

SJ CODE

🐋 Docker 환경구축
네트워크 보안/보안

🐋 Docker 환경구축

2022. 1. 15. 01:22

Docker는 os수준 가상화를 이용하여 컨테이너에 애플리케이션과 해당 종속성을 패키징해준다. 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는데 필요한 모든 것이 포함되어 있다. 쉽게 말해 Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 배포 및 확장할 수 있다.

 

Docker 작동방식

Docker는 코드를 실행하는 표준 방식을 제공한다. Docker는 컨테이너를 위한 운영 체제다. 가상머신이 서버 하드웨어를 가상화하는 방식과 비슷하게(직접 관리해야 하는 필요성 제거) 컨테이너는 서버 운영 체제를 가상화힌다. Docker는 각 서버에 설치되며 컨테이너를 구축, 시작 또는 중단하는 데 사용할 수 있는 간단한 명령을 제공한다.

 

Docker 설치

1. update

apt-get update

2. install docker

apt-get install docker.io

3. 설치 확인

docker version

 

Docker 이미지 설치

1. 이미지 검색 (official 이미지가 공식이미지)

docker search centos

2. 이미지 다운로드

docker pull centos:latest

3. 이미지 상세정보 보기(inspect)

docker image inspect centos

 

4. centos 기반 컨테이너 생성, 실행 (cenos image를 centos1이라는 이름의 컨테이너로 실행)

docker run -i -t -d --name centos1 centos
  • -i: 부착되지 않은 경우에도 STDIN을 열어 둔다.
  • -t: pseudo-TTY로 지정
  • -d: 백그라운드에서 컨테이너 실행 및 컨테이너 ID print

 

실행 docker 확인

docker ps

 컨테이너가 목록에 뜨지 않으면 docker ps -a로 모든 컨테이너 목록을 확인하고 docker start <container-name> 명령어로 실행시킨다. 

 

백그라운드로 실행된 컨테이너에 접속(앞에서 -d 옵션을 안해주면 바로 접속가능)

docker attach centos1

 접속하지 않고 명령어를 사용하고 싶을 땐 다음 구문를 사용하여 접속하지 않고도 명령어를 사용할 수 있다.

docker exec centos1 <command>

 

생성한 컨테이너를 이미지 형태로 저장

docker commit centos1 centos-img

 

Dockerfile을 통해 컨테이너 생성

dockerfile이란 이미지를 설정하기 위해 명령줄에서 호출할 수 있는 모든 명령을 포함하는 텍스트 문서이다. 

Dockerfile 생성

FROM centos:7  
    
    RUN yum -y update && yum -y install httpd httpd-tools
    
    EXPOSE 80
    
    WORKDIR /var/www/html
    
    COPY [“index.html”, “.”]
    
    CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]
  • FROM: centos7 이미지에서 레이어를 생성한다.
  • RUN: 애플리케이션을 빌드
  • EXPOSE: 컨테이너가 연결을 수신할 포트(애플리케이션에 대해 공통의 기존 포트를 사용해야함)
  • WORKDIR: 작업 디렉토리 설정
  • COPY: Docker 클라이언트의 현재 디렉토리에서 파일을 추가한다.
  • CMD: 컨테이너 내에서 실행할 명령을 지정한다. [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]처럼 인자 하나하나를 따로 작성해야하며 이 명령으로 httpd가 실행된다.

 

build --centos-http-build라는 파일을 현재 디렉토리(.)에 있는 도커파일로 빌드

docker build -t centos-http-build .

 

웹 서버 구성

 

1. 서버 소프트 웨어 설치

docker search httpd
docker pull httpd

80:80은 포트 포워딩 설정으로 호스트포트:컨테이너포트이다.

docker run -d --name httpd-t -p 80:80 httpd

 2. 웹 서버 구성

 

 

Ref

  • wiki
  • docker 설치
  • dockerfile 작성 모범 사례

 

 

 

 

'네트워크 보안 > 보안' 카테고리의 다른 글

📖 해킹 공격의 예술 (0X000)  (0) 2022.05.05
[RE/Lenas tutorial] (01/40) Olly + 어셈블러 + 기본 reverseme 패치  (0) 2022.03.01
vmware에서 wlan0 어댑터 설치하기  (0) 2022.01.10
인증우회  (0) 2021.12.31
취약점  (0) 2021.12.30
    '네트워크 보안/보안' 카테고리의 다른 글
    • 📖 해킹 공격의 예술 (0X000)
    • [RE/Lenas tutorial] (01/40) Olly + 어셈블러 + 기본 reverseme 패치
    • vmware에서 wlan0 어댑터 설치하기
    • 인증우회
    1000sj
    1000sj

    티스토리툴바