42seoul/42seoul_

[Inception 42] docker-compose로 wordpress만 올려보기(공식문서 참고)

mcdn 2022. 6. 21. 17:22
반응형

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

 

Quickstart: Compose and WordPress

 

docs.docker.com

도커 공식 문서에서 wordpress를 docker-compose로 배포해보는 페이지가 있었다. 

 

1. 빈 폴더를 만듭니다.  

내가 세팅한 이름은 test_wordpress

해당 폴더에는 이후 생길 yml 파일 외에 아무것도 없어야 합니다. 

 

2. cd [폴더이름]

cd test_wordpress

 

 

3. docker-compose.yml 파일을 만듭니다. 

yml, yaml 확장자 모두 상관없습니다. 

version: "3.9"
    
services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - wordpress_data:/var/www/html
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
volumes:
  db_data: {}
  wordpress_data: {}

 

해당 파일은 wordpress blog와 volume mount를 통해 데이터를 유지해줍니다. 

 

 

 

! Notes

  • volumes들인 db_data, wordpress_data 는 wordpress databse와 installed theme 및 plugin에 대한 업데이트 정보를 담고 있습니다.
  • Wordpress multisite는 포트 번호 80, 443에서만 작동합니다. 

 

 

 

4. docker-compose up -d 로 실행

docker-compose up -d

yml파일을 실행한다. 

 

-d 옵션으로 detached mode로 실행하게 됩니다. 필요한 도커 이미지를 pull하고, wordpress 와 데이터베이스 컨테이너를 실행합니다. 

 

만약 포트 번호 80 443 관련해서 binding 오류가 난다면, 이미 다른 서비스가 포트번호를 사용하고 있을 수 있습니다. 

 

 

 

5. localhost:8000에 들어가면 wordpress 초기화면이 나옵니다. 

이후 유저를 만들고 로그인을 하면 대시보드와 사이트를 사용할 수 있습니다. 

 

 

 

6. 컨테이너를 끄려면(Shutdown) docker-compose down 을 친다.  

docker-compose down

이 명령어를 치고 다시 docker-compose up -d (실행 명령어)를 하면 아까 수정했던 내용이 그대로 존재한다.

그 이유는 down은 container과 네트워크만 지우기 때문이다. 아직 volume이 살아있다. 

 

 

docker-compose down --volumes

뒤에 이 옵션을 더 추가하면 docker container뿐만 아니라 volume도 모두 CLEAN UP된다. 

반응형