1) 도커 네트워크 생성하기
docker network create my_network 명령어를 사용하여 도커 네트워크를 생성한다.
docker network create 네트워크명
2) MySQL 구축하기
1) 아래 명령어를 사용하여 MySQL을 구축한다.
docker run -d --name mysql-db \
--network my_network \
-e MYSQL_ROOT_PASSWORD=wordpress \
-e MYSQL_DATABASE=wordpress \
-e MYSQL_USER=myuser \
-e MYSQL_PASSWORD=wordpress \
-p 3306:3306 \
mysql:5.7
- docker run -d: Docker 컨테이너를 백그라운드에서 실행(-d는 detached 모드)합니다.
- --name mysql-db: 컨테이너의 이름을 mysql-db로 지정합니다.
- --network: 네트워크를 my_netowrk로 지정합니다.
- -e MYSQL_ROOT_PASSWORD=wordpress: MySQL의 루트 사용자 계정 비밀번호를 wordpress로 설정합니다.
- -e MYSQL_DATABASE=wordpress: 생성할 기본 데이터베이스의 이름을 wordpress로 설정합니다.
- -e MYSQL_USER=myuser: myuser라는 이름의 새로운 사용자 계정을 생성합니다.
- -e MYSQL_PASSWORD=wordpress: myuser 계정의 비밀번호를 wordpress로 설정합니다.
- -p 3306:3306: 호스트의 포트 3306을 컨테이너의 포트 3306에 매핑하여 외부에서 MySQL에 접속할 수 있게 합니다.
- mysql:5.7: MySQL의 버전 5.7을 사용하여 컨테이너를 생성합니다.
2) MySQL 구축 확인
docker exec -it mysql-db /bin/sh
mysql -u myuser -p
3) MySQL 상태 확인
상태 확인 시 characterset: latin1으로 되어 있는 것을 확인할 수 있다.
참고사항 : 기본 값이 latin1이며, latin1인 경우에는 영어만 사용, utf8mb4은 영어와 한글 사용이 가능하다.
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
3-1) MySQL 구축하기(characterset: latin1 > utf8mb4)
1) 이제는 MySQL 구축 시 characterset: latin1 > utf8mb4으로 구성해보려고 한다.
아래 명령어를 통해서 characterset:utf8mb4으로 구축한다.
docker run -d --name mysql-db \
-e MYSQL_ROOT_PASSWORD=wordpress \
-e MYSQL_DATABASE=wordpress \
-e MYSQL_USER=myuser \
-e MYSQL_PASSWORD=wordpress \
-p 3306:3306 \
mysql:5.7 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
2) MySQL 상태 확인
상태 확인 시 서버와 db는 변경되었지만 client와 connm.은 여전히 latin1이다.
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: latin1
Conn. characterset: latin1
3) echo 명령으로 파일 생성
Bash 쉘에 들어가서 아래의 명령어를 실행하면 /etc/mysql/my.cnf 파일에 설정을 추가
docker exec -it mysql-db bash
echo -e "[client]\ndefault-character-set=utf8mb4\n[mysql]\ndefault-character-set=utf8mb4\n[mysqld]\ncharacter-set-server=utf8mb4\ncollation-server=utf8mb4_unicode_ci" > /etc/mysql/my.cnf
MySQL 상태 재확인 시 모든 항목이 utf8mb4로 변경된 것을 확인 가능하다.
3-2) MySQL 구축하기(characterset: latin1 > utf8mb4)
3-1과는 다른 방법으로 구축 시 characterset: latin1 > utf8mb4으로 구성해보려고 한다.
1) 디렉토리 생성 및 권한 부여
my.conf 파일을 작성하기 위해서 파일이 위치할 디렉토리를 먼저 생성해준다.
mkdir -p /my/custom/config/
chmod 777 /my/custom/config/
2) my.conf 파일 작성하기
vi 편집기를 이용해서 my.conf 파일을 작성한다.
vi /my/custom/config2/my.cnf
3) my.conf 파일을 작성
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
4) -v옵션을 활용한 MySQL 구축
아래 명령어를 통해서 characterset:utf8mb4으로 구축한다.
docker run -d --name mysql-db \
--network my_network \
-e MYSQL_ROOT_PASSWORD=wordpress \
-e MYSQL_DATABASE=wordpress \
-e MYSQL_USER=myuser \
-e MYSQL_PASSWORD=wordpress \
-v /my/custom/config/my.cnf:/etc/mysql/conf.d/my.cnf \
-p 3306:3306 \
mysql:5.7
MySQL에 접속해서 상태 확인 시 모든 항목이 utf8mb4로 변경된 것을 확인 가능하다.
docker exec -it {컨테이너명} /bin/sh
mysql -u root -p
status;
4) Wordpress 구축하기
1) 아래 명령어를 사용하여 Wordpress를 구축한다.
docker run -d --name wordpress \
--network my_network \
-e WORDPRESS_DB_HOST=mysql-db:3306 \
-e WORDPRESS_DB_USER=myuser \
-e WORDPRESS_DB_PASSWORD=wordpress \
-e WORDPRESS_DB_NAME=wordpress \
-p 8080:80 \
wordpress:latest
- docker run: 새로운 컨테이너를 생성하고 실행하는 명령어입니다.
- -d: 컨테이너를 백그라운드에서 실행하라는 옵션입니다. 이 옵션을 사용하면 터미널을 다른 작업에 사용할 수 있습니다.
- --name wordpress: 생성하는 컨테이너의 이름을 wordpress로 지정합니다.
- --network: 네트워크를 my_netowrk로 지정합니다.
환경 변수 설정 부분:
- -e WORDPRESS_DB_HOST=mysql-db:3306: WordPress가 연결할 데이터베이스의 호스트를 지정합니다. 여기서는 mysql-db라는 이름의 컨테이너의 3306 포트를 사용합니다.
- -e WORDPRESS_DB_USER=wp_user: WordPress가 데이터베이스에 연결할 때 사용할 사용자 이름을 지정합니다. 여기서는 wp_user입니다.
- -e WORDPRESS_DB_PASSWORD=wordpress: 데이터베이스 사용자 wp_user의 비밀번호를 지정합니다. 여기서는 wordpress입니다.
- -e WORDPRESS_DB_NAME=wordpress: 사용하려는 데이터베이스의 이름을 지정합니다. 여기서는 wordpress입니다.
포트 매핑 부분:
- -p 8080:80: 호스트의 8080 포트를 컨테이너의 80 포트에 매핑합니다. 이를 통해 호스트의 8080 포트로 접근하면 컨테이너에서 실행 중인 WordPress에 연결됩니다.
- wordpress:latest: 사용할 Docker 이미지의 이름과 태그를 지정합니다. 여기서는 wordpress라는 이미지의 최신 버전(latest)을 사용합니다.
2) 워드프레스 접속 확인하기
퍼블릭 ip:8080으로 접속 시 워드프레스 초기 화면이 나오는지 확인한다.
퍼블릭 ip :8080
'도커&쿠버네티스' 카테고리의 다른 글
로키 리눅스 기반 볼륨 마운트 개념 및 실습 (0) | 2024.10.13 |
---|---|
로키 리눅스 기반 도커 컨터이너와 호스트 간 파일 복사하기 (0) | 2024.10.12 |
로키 리눅스 기반 Mysql, Redmine 구축 및 연동하기 (0) | 2024.10.11 |
로키 리눅스 기반 도커 Private Registry 구축 및 사용해보기 (0) | 2024.10.04 |
로키 리눅스 기반 도커 설치, 컨테이너 생성 및 실행해보기 (0) | 2024.10.03 |