반응형

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

+ Recent posts