Docker

Docker 설치 및 WordPress 컨테이너 배포하기

JAEJUNG 2021. 9. 7. 15:36

목표

Ubuntu 환경에서 Docker Image를 이용하여 WordPress를 배포한다.

 

설치 환경

도커 설치 환경은 Ubuntu 18.04 이다.

user@ubuntu:~$ cat /etc/issue
Ubuntu 18.04.5 LTS \n \l

 

배포 과정

1. Docker 설치

2. wordpress, mysql image 다운로드

3. docker run을 통한 컨테이너 구성

1. Docker 설치

 

먼저, 패키지 인덱스 및 설치 패키지 업데이트를 수행한다.

user@ubuntu:~$ sudo apt update

user@ubuntu:~$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

 

Docker의 GPG Key를 추가한다.

user@ubuntu:~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK

 

Docker 설치를 위한 Repository를 추가한다.

user@ubuntu:~$ sudo add-apt-repository   "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

 

패키지 리스트 업데이트 후 docker 엔진을 설치한다.

user@ubuntu:~$ sudo apt-get update

user@ubuntu:~$ sudo apt-get install docker-ce docker-ce-cli

 

설치 완료 후 docker 동작 상태를 확인한다.

user@ubuntu:~$ systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2021-06-14 17:44:07 KST; 1min 1s ago
...

 

위 명령어 입력시 아래와 같은 오류가 발생했을 경우엔 sudo service docker start 명령어를 입력해준다.

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

 

docker는 기본적으로 root 권한으로 실행되기 때문에 user로 사용할 땐 sudo를 항상 붙여줘야 한다.

간편하게 사용하기 위해선 user 사용자에 docker 그룹을 추가하여 사용한다.

user@ubuntu:~$ sudo usermod -aG docker user

 

그룹을 추가해준 후엔 sudo service docker restart 명령어를 통해 docker 서비스를 재시작 시켜준다.

+++

마지막으로 재부팅이나 로그아웃을 한 후에 docker 명령어를 정상적으로 사용할 수 있다.

 

2. WordPress, MySQL Image 설치

 

docker pull 명령어를 통해 wordpress 이미지를 설치한다.

user@ubuntu:~$ docker pull wordpress

 

 

동일한 과정으로 mysql 이미지를 설치해준다.

이 포스팅에선 최신 8.0 버전보다 안정적인 5.7 버전을 사용한다.

user@ubuntu:~$ docker pull mysql:5.7

 

3. Container 만들기

 

Mysql 환경 변수

  • MYSQL_DATABASE
  • MYSQL_USER
  • MYSQL_PASSWORD

 

Wordpress 환경 변수

  • WORDPRESS_DB_HOST
  • WORDPRESS_DB_USER
  • WORDPRESS_DB_PASSWORD
  • WORDPRESS_DB_NAME

 

컨테이너 생성 시 위 환경 변수를 참고한다.

 

아래 명령어를 이용하여 WordPress Container를 생성한다.

여기서 포트는 임의로 8080으로 지정해주었고, username과 password 또한 임의로 설정해주도록 한다.

user@ubuntu:~$ docker run -d -p 8080:80 --name wp --link wpdb:wpdb -e WORDPRESS_DB_HOST=wpdb -e WORDPRESS_DB_USER=wpuser -e WORDPRESS_DB_PASSWORD=wppass -e WORDPRESS_DB_NAME=wpdb -v /var/www/html wordpress

 

MySQL Container를 생성해준다.

WordPress와 마찬가지로 DB의 username, password 등의 값은 임의로 설정해준다.

user@ubuntu:~$ docker run -d --name wpdb -e MYSQL_ROOT_PASSWORD=toor -e MYSQL_DATABASE=wpdb -e MYSQL_USER=wpuser -e MYSQL_PASSWORD=wppass -v /var/lib/mysql mysql:5.7

 

생성된 컨테이너를 확인한다.

user@ubuntu:~$ docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED         STATUS         PORTS                                   NAMES
323eae8ce972   wordpress   "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   0.0.0.0:8080->80/tcp, :::8080->80/tcp   wp
a99a4ebeac8e   mysql:5.7   "docker-entrypoint.s…"   5 minutes ago   Up 5 minutes   3306/tcp, 33060/tcp                     wpdb

 

결과

[로컬 IP]:8080으로 접속하면 WordPress 설치 페이지가 나오는 것을 확인할 수 있다.

'Docker' 카테고리의 다른 글

Docker Hub에 내 이미지 업로드하기  (0) 2021.07.30