Docker를 사용하여 WordPress 사이트를 배포하는 방법

소규모 개인 사이트이든 수백만 명의 방문자가 있는 대규모 블로그이든 상관없습니다. 기사 Docker를 사용하여 WordPress 사이트를 빠르고 쉽게 배포하는 방법을 알아보세요.

도커란 무엇입니까?

도커(Docker)는 오픈소스 소프트웨어이다, 이를 통해 애플리케이션이 격리된 컨테이너에서 실행될 수 있습니다. 이를 통해 개발자는 복잡한 인프라에 대해 걱정할 필요 없이 표준화된 환경에서 애플리케이션을 배포하고 실행할 수 있습니다.

도커는 어떻게 작동하나요?

Docker는 소프트웨어 패키지를 컨테이너 형태로 제공하는 오픈 소스 프로젝트입니다. 이 용기는 다음에 사용할 수 있습니다. 모든 컴퓨터 운영 체제에 관계없이 실행됩니다. Docker를 사용하면 개발자는 애플리케이션을 컨테이너에 패키징한 다음 모든 플랫폼에 배포할 수 있습니다.

Docker는 컨테이너 원칙에 따라 작동합니다. 컨테이너는 애플리케이션이 실행될 수 있는 격리된 환경입니다. 컨테이너에는 애플리케이션에 필요한 모든 구성 요소, 라이브러리 및 파일이 포함되어 있습니다. 다른 컨테이너 및 호스트 시스템과의 격리는 컨테이너의 애플리케이션이 오류 없이 실행되도록 보장합니다.

Linux 컨테이너(LXC)

Docker는 Linux 컨테이너(LXC)를 기반으로 합니다. LXC는 단일 가상 머신에서 여러 가상 머신을 허용합니다. 물리적 서버 작동합니다. 각 가상 머신에는 자체 CPU, RAM 및 하드 드라이브가 있습니다. 그러나 LXC 컨테이너는 다른 컨테이너 및 호스트 시스템과 완전히 격리되지 않습니다.

Docker는 네임스페이스와 제어 그룹(cgroup)을 사용하여 완전한 컨테이너 격리를 달성합니다. 네임스페이스는 컨테이너 환경을 서로 격리합니다. 각 컨테이너에는 자체 네트워크 스택, 프로세스 및 사용자가 있습니다. 제어 그룹은 컨테이너 액세스를 다음으로 제한합니다. 자원 CPU, 메모리, 하드 드라이브와 같은 호스트 시스템의 구성 요소입니다.

도커의 장점

Docker는 애플리케이션과 해당 종속성을 격리할 수 있는 오픈 소스 프로젝트입니다. 이는 애플리케이션이 호스트 시스템에 설치되지 않고도 Docker 컨테이너에서 실행될 수 있음을 의미합니다.

Docker는 개발자가 호환성 문제에 대한 걱정 없이 컨테이너에서 애플리케이션을 테스트하고 디버그할 수 있기 때문에 개발에 적합합니다.

또 다른 장점은 Docker 컨테이너가 이식 가능하다는 것입니다. 이는 Linux 시스템에서 생성된 컨테이너가 Windows 또는 macOS 시스템에서도 실행될 수 있음을 의미합니다.

Docker 컨테이너는 모든 플랫폼에서 실행될 수 있으며 Docker는 Linux를 지원합니다. Windows 그리고 맥OS.

도커의 단점

도커는 훌륭한 도구애플리케이션을 컨테이너에 격리하고 배포합니다. 그러나 Docker에는 Docker를 사용하여 WordPress 사이트를 배포하기로 결정하기 전에 고려해야 할 몇 가지 단점도 있습니다.

Docker의 가장 큰 단점 중 하나는 상대적으로 새로운 제품이라는 것입니다. 이는 제품에 대한 장기적인 경험이 없기 때문에 아직 모범 사례가 확립되지 않았음을 의미합니다.

Docker의 또 다른 단점은 설치할 수 있는 하드웨어 및 운영 체제 측면에서 일부 제한이 있다는 것입니다. 예를 들어 Mac 또는 Linux 배포판에서는 Windows 컨테이너를 실행할 수 없습니다.

결론적으로 Docker는 몇 가지 보안 위험도 내포하고 있습니다. 이를 통해 악의적인 공격자가 컨테이너에 침입하여 그곳에서 호스트 컴퓨터를 공격할 수 있습니다. 따라서 Docker를 사용하여 WordPress 사이트를 배포할지 여부를 신중하게 생각해야 합니다.

Docker를 사용하여 WordPress 사이트를 배포해야 하는 이유는 무엇입니까?

docker는 애플리케이션을 실행할 수 있는 컨테이너를 제공하는 오픈 소스 프로젝트입니다. 이러한 컨테이너는 격리되어 있으며 실행되는 자체 환경을 가지고 있습니다. Docker 호스트에는 여러 컨테이너가 있을 수 있으며, 각 컨테이너는 서로 다른 애플리케이션을 실행할 수 있습니다.

Docker는 사이트를 실행할 수 있는 깔끔한 환경을 제공하므로 WordPress 사이트를 배포하는 데 이상적입니다. 또한 Docker를 사용하면 하나의 사이트에 여러 WordPress 사이트를 가질 수 있습니다. 주인 제공하다.

Docker를 사용하여 WordPress 사이트를 어떻게 준비합니까?

이 기사에서는 처음으로 Docker를 사용하여 WordPress 사이트를 배포하는 방법에 대해 설명합니다. 아직 Docker를 설치하지 않았다면 여기에서 설치 지침을 찾을 수 있습니다.

먼저 WordPress 사이트용 디렉터리를 만들어야 합니다. 이는 사이트의 모든 파일이 저장되는 디렉터리입니다. 예를 들어:

mkdir / 내-워드프레스-사이트

docker-compose.yml

다음으로 이 디렉터리에 docker-compose.yml 파일을 생성해야 합니다. docker-compose.yml 파일은 WordPress 사이트의 모든 설정을 정의하는 구성 파일입니다. 예를 들어:

버전: '2' 서비스: db: 이미지: mysql: 5.7 재시작: 항상 환경: MYSQL_ROOT_PASSWORD: 예 MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: 예 wp: 이미지: wordpress 재시작: 항상 환경: WORDPRESS_DB_HOST : db : 3306 WORDPRESS_DB_NAME : wordpress WORDPRESS_DB_USER : wordpress WORDPRESS_DB_PASSWORD : 예시 포트 : – “8080 : 80”

docker-compose 버전은 이 파일에서 처음 정의됩니다. 이 예에서는 버전 2가 사용됩니다.

MySQL 데이터베이스

다음으로 두 가지 서비스가 정의됩니다. MySQL 데이터베이스 WordPress용 서비스도 있습니다. 각 서비스는 사용할 이미지를 지정해야 합니다. 환경 변수, 포트, 파일 호출과 같은 다른 설정을 정의할 수도 있습니다.

예를 들어 이 예에서는 WordPress 서비스의 환경 변수 WORDPRESS_DB_HOST가 db 서비스로 설정되어 있습니다. 이는 WordPress에 MySQL 데이터베이스 위치.

docker-compose.yml 파일에서 정의할 수 있는 더 많은 설정이 있습니다. 자세한 내용은 다음에서 확인할 수 있습니다. Docker Compose 문서.

htaccess로

다음으로 디렉터리에 .htaccess 파일을 만들어야 합니다. 이 파일은 URL이 당신의 WordPress 사이트를 위해. 예를 들어:

RewriteRule ^$ 인덱스의 RewriteEngine. php [QSA] RewriteCond % {REQUEST_FILENAME} ! -f RewriteCond % {REQUEST_FILENAME} ! -d RewriteRule ^( . * )$ 인덱스 . PHP? $1 [QSA]

이 파일은 WordPress 사이트에 대한 모든 요청이 index.php를 통해 라우팅되도록 강제합니다. 이는 WordPress 사이트의 기본 구성입니다.

WP-config.php를

다음으로 디렉토리에 wp-config.php 파일을 생성해야 합니다. 이 파일에는 WordPress 사이트의 구성 설정이 포함되어 있습니다. WordPress의 기본 wp-config.php 파일을 사용하거나 직접 만들 수 있습니다.

예:define('DB_NAME', 'wordpress'); /** MySQL 데이터베이스 사용자 이름 */ 정의('DB_USER', 'wordpress'); /** MySQL 데이터베이스 비밀번호 */ Define('DB_PASSWORD', 'example'); /** MySQL 호스트 이름 */ 정의('DB_HOST', 'db:3306'); /** 데이터베이스 테이블 생성에 사용할 데이터베이스 문자셋입니다. */ 정의('DB_CHARSET', 'utf8'); /** 데이터베이스 대조 유형입니다. 의심스러운 경우에는 이를 변경하지 마십시오. */ 정의('DB_COLLATE', ”);

이 파일에서는 WordPress 사이트에 대한 데이터베이스 정보를 구성해야 합니다. 예를 들어, WordPress가 MySQL 데이터베이스의 위치를 ​​알 수 있도록 DB_HOST를 db 서비스로 설정해야 합니다.

wp-config.php 파일에서 정의할 수 있는 더 많은 설정이 있습니다. 자세한 내용은 다음에서 확인할 수 있습니다. 워드프레스 문서.

index.php

다음으로 디렉터리에 index.php 파일을 만들어야 합니다. 이 파일은 WordPress 사이트의 기본 파일입니다. 예를 들어:

이 파일에서는 WordPress가 활성 테마를 사용하도록 WP_USE_THEMES 변수가 먼저 true로 설정됩니다. 그러면 wp-blog-header.php 파일이 로드되어 WordPress 애플리케이션의 나머지 부분이 초기화됩니다.

robots.txt에

다음으로 디렉터리에 Robots.txt 파일을 만들어야 합니다. 이 파일은 사이트를 크롤링하는 검색 엔진 봇을 제어하는 ​​데 사용됩니다. 예를 들어:

사용자 에이전트: * 허용하지 않음: / wp-admin / 허용: / wp-admin / admin-ajax.php

이 예에서는 모든 봇이 /wp-admin/ 디렉터리를 탐색하지 않도록 지정합니다. 이는 WordPress 설치에서 봇이 원치 않는 작업을 수행하는 것을 방지하는 좋은 방법입니다.

favicon.ico

다음으로 디렉터리에 favicon.ico 파일을 만들어야 합니다. 이는 귀하가 사이트를 방문할 때 브라우저 주소 표시줄에 나타나는 작은 그래픽입니다. 원하는 그래픽을 사용하거나 이와 같은 생성기를 사용할 수 있습니다.

아파치 구성 파일

다음으로 디렉터리에 Apache 구성 파일을 생성해야 합니다. 이 파일은 사이트의 Apache 웹 서버 구성을 구성하는 데 사용됩니다. 예를 들어:

ServerName my-wordpress-site.example.com DocumentRoot / my-wordpress-site ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log 결합

이 파일에서 서버 이름은 먼저 사이트의 도메인 이름이나 IP 주소로 설정됩니다. 그러면 문서 루트가 사이트 디렉토리로 설정됩니다. 오류 및 액세스 로그도 제공되므로 사이트에서 무슨 일이 일어나고 있는지 확인할 수 있습니다.

Apache 구성 파일에서 정의할 수 있는 다른 설정이 많이 있습니다. 자세한 내용은 다음에서 확인할 수 있습니다. 아파치 문서.

php.ini 파일

다음으로 디렉터리에 php.ini 파일을 만들어야 합니다. 이 파일은 사이트의 PHP 구성을 구성하는 데 사용됩니다. 예를 들어:

display_errors = 표시_startup_errors = 오류 보고 = E_ALL memory_limit = 512M upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300

일부 기본 PHP 설정은 이 파일에서 구성됩니다. php.ini 파일에서 정의할 수 있는 다른 설정이 많이 있습니다. 자세한 내용은 다음에서 확인할 수 있습니다. PHP 문서.

아파치 가상 호스트 파일

다음으로 디렉터리에 Apache vhost 파일을 생성해야 합니다. 이 파일은 사이트의 가상 호스트 구성을 구성하는 데 사용됩니다. 예를 들어:

ServerName my-wordpress-site.example.com ServerAlias ​​​​www.my-wordpress-site.example.com DocumentRoot / my-wordpress-site ErrorLog $ {APACHE_LOG_DIR} / error . CustomLog $ {APACHE_LOG_DIR} / 액세스를 기록합니다. 로그 결합 < 디렉토리 / my-wordpress – 사이트 > AllowOverride All Require 모두 허용됨

이 파일에서 서버 이름은 먼저 사이트의 도메인 이름이나 IP 주소로 설정됩니다. 그러면 문서 루트가 사이트 디렉토리로 설정됩니다. 오류 및 액세스 로그도 제공되므로 사이트에서 무슨 일이 일어나고 있는지 확인할 수 있습니다.

Apache vhost 파일에서 정의할 수 있는 다른 설정이 많이 있습니다. 자세한 내용은 다음에서 확인할 수 있습니다. 아파치 문서.

Apache SSL 구성 파일

다음으로 디렉터리에 Apache SSL 구성 파일을 생성해야 합니다. 이 파일은 사이트의 SSL/TLS 구성을 구성하는 데 사용됩니다. 예를 들어:

ServerName my-wordpress-site.example.com DocumentRoot / my-wordpress – 사이트 ErrorLog $ {APACHE_LOG_DIR} / error . CustomLog $ {APACHE_LOG_DIR} / 액세스를 기록합니다. SSLCertificateFile / path / 에 / your /certificate 에 결합된 SSLEngine을 기록합니다. crt SSLCertificateKeyFile / 경로 / / 귀하의 / 인증서. 열쇠

Apache SSL 구성 파일에서 정의할 수 있는 다른 설정이 많이 있습니다. 자세한 내용은 다음에서 확인할 수 있습니다. 아파치 문서.

마지막으로 사이트에 대한 SSL 인증서를 생성해야 합니다. 이는 Let's Encrypt와 같은 도구를 사용하여 수행할 수 있습니다. 자세한 내용은 Apache 설명서를 참조하세요.

위의 파일을 모두 생성한 후에는 docker-compose up -d 배포 명령을 사용하여 WordPress 사이트를 시작할 수 있습니다. 이 명령은 docker-compose.yml 파일의 모든 서비스를 시작하고 WordPress 사이트를 배포합니다.

결론

그게 다야! 이 기사에서는 Docker를 사용하여 WordPress 사이트를 배포하는 방법을 배웠습니다. Docker 이미지를 구축하고 배포하는 것이 얼마나 쉬운지 살펴보았습니다. 또한 Docker를 사용한 배포의 이점도 배웠습니다.

통지서..중요하다!

본 웹사이트에 링크된 모든 외부 사이트는 독립적인 출처입니다. 
이러한 링크는 후원을 받지 않으며 포함에 대한 재정적 기부를 받지 않았습니다. 
본 웹사이트의 모든 정보는 보증 없이 제공됩니다.
이 사이트는 개인 프로젝트입니다. Jan Domke 오로지 개인적인 의견과 경험을 반영합니다.

Jan Domke

프롬프트 엔지니어 | 소셜 미디어 관리자 | 호스팅 관리자 | 웹 관리자

2021년 말부터 온라인 매거진을 비공개로 운영하고 있습니다. SEO4Business 그래서 내 일을 취미로 바꾸었습니다.
2019년부터 직장인으로 일하고 있어요 Senior Hosting Manager, 독일 최대 규모의 인터넷 및 마케팅 대행사 중 하나에서 활동하고 있으며 지속적으로 시야를 넓혀가고 있습니다.

Jan Domke