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
'네트워크 보안 > 보안' 카테고리의 다른 글
📖 해킹 공격의 예술 (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 |