[Docker] wordpress 와 mysql을 wsl2 UBUNTU 에 설치 하기

도커를 이용하여 블로그 앱인 wordpress 설치하는 것이 간단하다고 하여 따라해 보았습니다. Ubuntu에 직접 설치하게 되면 여러가지 설정을 해야 하고 연동하기 과정도 거쳐야 하는데 yml 설정 파일 하나로 해결이 되니 엄청 간편 했답니다.

WSL2 (Windows Subsystem for Linux) 환경의 Ubuntu에 도커 콤포즈, MySQL과 함께 WordPress를 설치하는 방법

​​

1. WSL 및 Ubuntu 설치:

윈도우 10/11에 WSL이 설치되어 있지 않다면 먼저 WSL을 설치합니다. PowerShell을 관리자 권한으로 열고 다음 명령어를 실행합니다.

PowerShell

wsl --install

Ubuntu를 설치합니다. Microsoft Store에서 Ubuntu 24.04 LTS 또는 원하는 버전을 검색하여 설치합니다.

2. Ubuntu 초기 설정:

설치된 Ubuntu를 실행하고 사용자 계정 및 비밀번호를 설정합니다.

Ubuntu 패키지 목록을 업데이트합니다.

Bash

​$ sudo apt update

필요한 패키지를 설치합니다. (wget curl은 이미 있음)

Bash

​$ sudo apt install -y gnupg lsb-release

​​

3. Docker 설치:

Docker의 GPG 키를 추가합니다.

Bash

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Docker 저장소를 추가합니다.

Bash

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

패키지 목록을 업데이트하고 Docker를 설치합니다.

Bash

$ sudo apt update
$ sudo apt install -y docker-ce docker-ce-cli containerd.io

The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8 또는 apt install 오류발생시

다음의 명령어를 실행하고, Docker의 GPG 키를 추가, Docker 저장소를 추가 , 다시 install

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7EA0A9C3F273FCD8

Docker 서비스를 시작하고 부팅 시 자동 실행되도록 설정합니다.

Bash

​$ sudo systemctl start docker
$ sudo systemctl enable docker

# WSL 환경에서 start 되지 않는 경우 : 다음의 명령어 실행 후 /etc/wsl.conf 파일 내용 확인

wsl --update

/etc/wsl.conf 파일 내용 확인

cat /etc/wsl.conf

​[boot]

systemd=true

현재 사용자에게 Docker 사용 권한을 부여합니다.

Bash

$ sudo usermod -aG docker $USER
$ newgrp docker

​​

설치 확인하기

$ sudo docker run hello-world

4. 도커 콤포즈 설치:

​$ sudo curl -SL https://github.com/docker/compose/releases/download/v2.33.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

설치완료 확인

$ sudo docker-compose -v

5. 도커 콤포즈로 mysql/wordpress 생성 후 mysql 연결하기

docker-compose.yml 파일

version: ‘3.9’
services:
db:
image: mysql:8
volumes:
– db:/var/lib/mysql
restart: unless-stopped
environment:
– MYSQL_ROOT_PASSWORD=mypassword
– MYSQL_DATABASE=wordpress
– MYSQL_USER=myid
– MYSQL_PASSWORD=mypassword
networks:
– wordpress
wordpress:
depends_on:
– db
image: wordpress:latest
ports:
– “8000:80”
restart: unless-stopped
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: myid
WORDPRESS_DB_PASSWORD: mypassword
WORDPRESS_DB_NAME: wordpress
networks:
– wordpress
volumes:
db: {}
networks:
wordpress: {}

$ docker-compose up -d

[+] Running 4/4

✔ Network docker_yml_wordpress Created 0.2s

✔ Volume “docker_yml_db” Created 0.0s

✔ Container docker_yml-db-1 Started 1.0s

✔ Container docker_yml-wordpress-1 Started 0.8s

도커 컨테이너 리스트 출력

$ docker-compose ps

MySQL 도커 컨테이너 시작/중지/재시작

# MySQL Docker 컨테이너 중지

$ docker stop docker_yml-db-1

# MySQL Docker 컨테이너 시작

$ docker start docker_yml-db-1

# MySQL Docker 컨테이너 재시작

$ docker restart docker_yml-db-1

MySQL Docker 컨테이너 접속

$ docker exec -it docker_yml-db-1 bash
​bash-5.1# mysql -uroot -p

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> show schemas;

+——————–+

| Database |

+——————–+

| information_schema |

| mysql |

| performance_schema |

| sys |

| wordpress |

+——————–+

5 rows in set (0.00 sec)

mysql> use wordpress

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql>

mysql> show tables;


게시됨

카테고리

작성자

태그:

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다