본문 바로가기
Docker

docker compose를 활용한 wordpress 설치

by 판매자명단 2023. 10. 5.

 

[Docker] - docker, kubernetes

 

docker, kubernetes

* ubuntu 22.04 / ip 192.168.2.10/24 / hostname ubuntu sudo -i DOCKER_USER=ubuntu DOCKER_COMPOSE_VERSION=2.17.3 #의존성 설치 apt update -y && apt-get install -y \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release #docker가 제공하

y7712.tistory.com

* 초기 설정 및 테스트

 

mkdir wptest
cd wptest
cat > docker-compose.yml

# docker-compose.yml
version: "3"

services:
  nginxproxy:
    depends_on:
      - nginx
      - db
      - wordpress
    image: nginx:latest
    ports:
      - "80:80"
    restart: always
    volumes:
      - "./nginx/nginx.conf:/etc/nginx/nginx.conf"

  nginx:
    image: nginx:latest
    restart: always

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:5.7.0
    ports:
      - "8080:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress

test용 폴더를 만들고 폴더 안에 docker-compose.yml 파일을 만들어 위 내용을 입력한다

mkdir nginx
cat > nginx/nginx.conf

# nginx.conf
user nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events { 
    worker_connections 1024; 
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" "$request_uri" "$uri"'
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;    
    sendfile on;
    keepalive_timeout 65;

    upstream docker-wordpress {
        server wordpress:80;
    }

    upstream docker-web {
        server nginx:80;
    }

    server {
        location /blog/ {
            proxy_pass         http://docker-wordpress;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
        }
        
        location / {
            proxy_pass         http://docker-web;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
        }
    }
}

nginx 폴더를 만들고 안에 nginx.conf 파일을 만들어 위 내용을 입력한다

docker exec -it 20-wordpress-1 /bin/bash
# 20-wordpress-1은 docker ps의 wordpress image의 name
mkdir blog
mv * blog

/var/www/html

접속 후 안에 php파일 등이 있는지 확인하고 nginx.conf 파일에 입력한 wordpress 경로(blog)의 폴더를 만든다

blog 폴더 안에 모든 파일을 옮겨 넣은 후 주소로 접속이 되는지 확인한다

 

https://docs.docker.com/samples/wordpress/

 

WordPress samples

Docker samples for WordPress.

docs.docker.com

접속이 됐으면 설치 후 위 링크를 참조해 wordpress기능을 이용해 보면 된다

'Docker' 카테고리의 다른 글

docker commit  (0) 2023.10.06
docker volume  (0) 2023.10.05
docker network  (0) 2023.10.05
docker compose 예제 실습  (1) 2023.10.05
docker, minikube 기초설정, 예제  (0) 2023.10.04