티스토리 뷰

반응형

도커는 실 서비스에도 사용할 정도로 성능과 편의성을 인정받고 있는 가상화 도구입니다.

 

또한 개발 환경에서도 유용하게 사용할 수 있는데요, docker-compose를 함께 활용하면 미리 정의된 서비스 및 환경을 쉽게 실행할 수 있습니다.

 

워드프레스 또한 국내, 해외에서도 많이 사용되고 있는 블로그/CMS 오픈소스입니다.

 

도커-워드프레스는 도커허브에 오피셜 이미지로 등록되어있기 때문에 유지관리가 잘 될 것이라고 기대할 수 있겠습니다.

 

준비

도커가 설치되어 있어야 합니다.

https://www.docker.com/

 

Empowering App Development for Developers | Docker

Learn how Docker helps developers bring their ideas to life by conquering the complexity of app development.

www.docker.com

 

Docker Compose가 설치되어 있어야 합니다. (윈도우는 따로 설치하지 않아도 Docker에 포함되어 있습니다)

https://docs.docker.com/compose/install/

 

Install Docker Compose

 

docs.docker.com

 

docker-compose 환경파일 생성 및 실행

설치하고자 하는 위치에서 docker-compose.yaml 파일을 생성하여 내용을 편집합니다

version: "3.3"
    
services:
  db:
    image: mysql:5.7
    volumes:
      - "./db_data:/var/lib/mysql"
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: <패스워드 지정>
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: <패스워드 지정>
    ports:
      - "3306:3306"
    
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - "./wordpress_data:/var/www/html"
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: <패스워드 지정>
      WORDPRESS_DB_NAME: wordpress

MYSQL_ROOT_PASSWORD MYSQL_PASSWORD WORDPRESS_DB_PASSWORD 에 원하는 패스워드를 지정합니다

 

docker-compose.yaml 파일을 저장했으면 해당 위치에서 docker-compose를 실행합니다

$ docker-compose up -d
Starting b_db_1 ... done
Starting b_wordpress_1 ... done

 

docker-compose 실행 결과 및 로그를 확인하려면 다음과 같이 실행합니다

$ docker-compose logs
Attaching to b_wordpress_1, b_db_1
db_1         | 2021-10-15 04:49:33+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.35-1debian10 started.
db_1         | 2021-10-15 04:49:33+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
db_1         | 2021-10-15 04:49:33+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.35-1debian10 started.
db_1         | 2021-10-15 04:49:33+00:00 [Note] [Entrypoint]: Initializing database files
db_1         | 2021-10-15T04:49:33.594182Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
db_1         | 2021-10-15T04:49:33.599122Z 0 [Warning] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive
db_1         | 2021-10-15T04:49:35.676594Z 0 [Warning] InnoDB: New log files created, LSN=45790
db_1         | 2021-10-15T04:49:36.216113Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
db_1         | 2021-10-15T04:49:36.391078Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 4c295c35-2d73-11ec-9116-0242ac140002.
db_1         | 2021-10-15T04:49:36.400534Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
db_1         | 2021-10-15T04:49:36.752123Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
db_1         | 2021-10-15T04:49:36.752153Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
db_1         | 2021-10-15T04:49:36.756880Z 0 [Warning] CA certificate ca.pem is self signed.
db_1         | 2021-10-15T04:49:36.910755Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
db_1         | 2021-10-15 04:49:56+00:00 [Note] [Entrypoint]: Database files initialized
db_1         | 2021-10-15 04:49:56+00:00 [Note] [Entrypoint]: Starting temporary server
db_1         | 2021-10-15 04:49:56+00:00 [Note] [Entrypoint]: Waiting for server startup
...

 

브라우저 주소창에 http://localhost:8000 입력 후 이동해서 설치가 잘 되었는지 확인합니다.

반응형