반응형

Wordpress를 세팅할 일이 생겨서 Docker를 이용해서 세팅을 해보았습니다!

 

Docker Compose 여러 컨테이너로 구성된 애플리케이션의 정의와 실행을 단순화하기 위한 도구입니다!

사용하는 이유는 아래와 같이 여러가지가 있습니다.

    • 다중 컨테이너 애플리케이션의 단순화: 개발, 테스팅 및 프로덕션 환경에서 여러 서비스로 구성된 애플리케이션을 쉽게 관리하고 실행할 수 있습니다.
    • 설정의 일관성: docker-compose.yml 파일을 사용하여 서비스, 네트워크 및 볼륨에 대한 설정을 버전 관리하고 공유할 수 있습니다. 이를 통해 팀 내에서 일관된 환경을 유지할 수 있습니다.
    • 개발 환경의 효율성: 개발자는 로컬 머신에서 docker-compose up 명령을 사용하여 모든 서비스와 의존성을 번에 시작할 있습니다.
    • 서비스 간의 연결: Docker Compose 서비스 간의 네트워킹을 자동으로 처리합니다. 따라서 서비스 이름을 사용하여 다른 서비스에 연결할 있습니다. 예를 들어, 애플리케이션이 데이터베이스에 연결해야 하는 경우 복잡한 네트워크 구성 없이 간단하게 연결할 있습니다.

Docker Compose 개발, 테스팅 스테이징 환경에서의 사용에 특히 유용하지만, 대규모의 프로덕션 환경에서는 Kubernetes 같은 보다 복잡한 오케스트레이션 도구가 권장되곤 합니다.

 

이제 로컬에 Docer compose를 이용해서 Wordpress를 세팅해보도록 하겠습니다.

DB는 mysql을 사용하도록 하겠습니다.

 

docker-compose.yml

version: "3.9"
services:
  db:
    image: mysql:5.7
    platform: linux/amd64
    volumes:
      - mysql-vol:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - ./src:/var/www/html
    ports:
      - "8080:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
volumes:
  mysql-vol: {}
  wp-vol: {}

 

docker-compose 파일이 있는 위치에서 아래 명령어를 실행시켜주면 정말 간단하게 Worpress가 mysql DB와 함께 생성됩니다!

docker-compose up -d

 

Wordpress 관련 소스코드들이 src 아래에 생성된 것을 확인하실 수 있습니다!

 

 

 

어떻게 빈 폴더에 소스코드 생겼는지 말씀드리면

저희가 작성한 docker-compose.yml 파일에 volmes 옵션을 설정해줬습니다.

wordpress는 기본적으로 /var/www/html 아래에 소스코드들이 생성되는데요, 그 생성된 코드들을 제 로컬 경로(src)와 연결했다고 생각하시면 될 것 같습니다~

 volumes:
      - ./src:/var/www/html

 

 

728x90
반응형

'Docker' 카테고리의 다른 글

Docker를 이용하여 Spring Quick Start  (0) 2023.08.06
반응형

개요 : 아주 간단하게 Docker를 이용해서 Spring 프로젝트 이미지를 생성 후 실행해 보도록 하겠습니다.

 

1. spring project build

  - WebController.java

@Controller
public class WebController {

    @GetMapping("/")
    public String sample() {
        return "sample";
    }

}

  - sample.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Docker</title>
</head>
<body>
  <span>Docker!</span>
</body>
</html>

 

- gradle 기준 : 터미널에서 ./gradlew build

 

2. Dockrfile 생성

  - 프로젝트 Root 경로 바로 아래에 Dockerfile 생성

FROM openjdk:11  # 컴파일 할 jdk 버전

WORKDIR /usr/src/app # 모든 작업 파일 기준 위치

ARG JAR_PATH=./build/libs # 변수 사용하듯이 선언해서 사용

COPY ${JAR_PATH}/IPGeoCheck-0.0.1-SNAPSHOT.jar ${JAR_PATH}/IPGeoCheck-0.0.1-SNAPSHOT.jar
# 빌드한 jar 파일을 도커 컨터이너 내부로 옮겨주는 작업

CMD ["java","-jar","./build/libs/IPGeoCheck-0.0.1-SNAPSHOT.jar"]
# jar 파일 실행 명령

 

3.  도커 이미지 빌드

  - 터미널에서 아래와 같이 명령어 실행(도커 파일이 있는 위치에서)

docker build . -t springbootapp (도커 이미지 빌드)

 

 

4. 도커 이미지 실행

  - p 옵션을 넣어서 실행한다.

    도커 내부 네트워크와 외부 네트워크를 연결하기 위한 포트 연결(로컬 포트 / 도커 내부 포트)

    주의 : 포트 옵션을 주지 않으면 도커 이미지를 실행 되었으나 접근이 안되는 현상이 발생된다.

docker run -p 8080:8080 springbootapp(이미지 실행)

※ 문제점 : 어플리케이션 코드의 변경으로 인해서 도커 이미지를 매번 다시 빌드해서 실행해야 한다.

이러한 불편함을 해소하고자 Volume 옵션을 사용한다.

 

 

5. 볼륨(Volume) 옵션을 이용한 도커 이미지 실행

docker run -p 8080:8080 -v $(pwd):/usr/src/app springbootapp(볼륨을 사용한 이미지 실행)
# -v "local 참조할 경로" : "참조할 도커 이미지 경로"
Volume 옵션은 실행에 필요한 파일을들 컨테이너 내부에서 참조할 수 있도록 해줍니다.
로컬 경로에 존재하는 모든 파일들을 도커 컨테이너 내부에서 사용할 수 있습니다.

 

728x90
반응형

'Docker' 카테고리의 다른 글

[Docker] docker compose 이용해서 Wordpress 세팅  (0) 2023.09.26
반응형

토이 프로젝트로 혼자서 클라우드 서비스를 이용하여 웹 개발부터 배포까지 온 과정을 경험해 보았습니다.

이 과정을 단계별로 나누어서 정리해 보려고 합니다.!

많은 피드백은 감사합니다!

 

목차 

STEP 01) NCP 서버 

STEP 02) AWS RDS, S3

STEP 03) Web Application 개발

STEP 04) Jenkins pipeline 배포

STEP 05) Domain 등록


1. NCP(Naver CLoud Platform)

  - 네이버 클라우드 서비스로 1년간 Free Tier 서비스를 이용할 수 있습니다.

  - 네이버 클라우드 서비스를 사용해 보고 싶어서 서버는 NCP Sorver를 선택

  - 네이버 클라우드 서비스라서 언어가 매우 친숙함.

 

https://www.ncloud.com/

 

NAVER CLOUD PLATFORM

cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification

www.ncloud.com

 

2. NCP에서는 다양항 클라우드 서비스를 제공합니다.

  - Free Tier에서는 아래 설명과 같이 Micro Server를 1년간 무료로 1대를 제공합니다. 

  - Compute > Server 선택

  - NCP server guide(https://guide.ncloud-docs.com/docs/compute-server-prep)

 

 

3. Server > 서버 생성

 

 

4. 서버 이미지 선택에서 서버 타입 Micro 선택 후 centos-7.8-64 선택  

 

 

5. 서버 설정 탭에서 Free Tier 서버에 맞게 설정 후 다음

  - 본 이미지는 Micro 타입 서버를 이미 1개 생성해서 하나 더 생성할 수 없어서 Compact 타입으로 설정 후 진행하였습니다.

  - SSD 서버는 Micro 타입 서버를 지원하지 않습니다.

 

 

6. 인증키 설정에서 서버에 접속할 관리자 비밀번호를 생성합니다.

  - 항상 인증키는 안전한 곳에 저장!

 

 

7. 네트워크 접근 설정은 생성 할 서버에 대한 방화벽 설정이라고 생각하시면 될 것 같습니다. 

 

 

8. ACG 설정에서 접근 소스는 접속에 허용될 ip 대역을 의미합니다.

  - 웹 서비스를 접근할 8080 포트를 허용합니다.

  - 서버 ssh에 접근되는 22 포트를 허용합니다. (서버 접근은 myip로 하여 보안을 강화하는 게 좋습니다.)

 

 

9. 이제 생성된 서버에 접근해보도록 하겠습니다.

  ssh에 접근에 많이 사용되는 tool인 putty를 이용해 보도록 하겠습니다.

  ncp에 새로 생성된 서버를 클릭해 보시면 포트 포워딩 정보에 서버 접속용 공인 ip와 외부 포트가 있습니다.

  해당 정보를 아래 위치에 작성하고 Open!

  [MacOS putty 참고 블로그]

   - https://velog.io/@wlgus2134/MAC-PUTTY-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

 

putty

10. 리눅스 관리자 계정은 root이고, password는 위에서 입력한 관리자 비밀번호로 접속이 가능합니다!

 

 

NCP 클라우드 플랫폼을 이용해서 아주 간편하게 Web Server를 구동시킬 수 있는 서버 한 대가 생성되었습니다!

공인 ip를 발급받아야지 저희가 구동시킨 Web Server에 접근할 수 있습니다.

다음 Step에서 Application를 개발하고 진행하도록 하겠습니다.

 

 

728x90
반응형

+ Recent posts