도커를 이용하여 블로그 앱인 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;
답글 남기기