mariadb 컨테이너 실행
1. mariadb 컨테이너 실행
- #1. 이미지 다운로드 : docker pull mariadb
- #2. 컨테이너 실행
- docker run -d --name db -p 3307:3306 --env MARIADB_ROOT_PASSWORD=1234 --rm mariadb:latest
※ MARIADB_ROOT_PASSWORD는 컨테이너 내부에서 사용할 mysql root 계정의 비밀번호
- #3. DB 생성을 위한 컨테이너 내부 진입 : docker exec -it db bash
- #4. mysql 보안 설정 : /usr/bin/mariadb-secure-installation
- 첫 번째 : 위에서 설정한 root 비밀번호
- 두, 세 번째 : n
- 나머지 : y
- #5. mysql 접속 후, 원격 접속용 계정 생성 및 권한 부여 (mysql -u root -p1234로 접속)
- GRANT ALL PRIVILEGES ON *.* TO korea@`%` IDENTIFIED BY 'korea1234';
- SQLyog로 컨테이너 DB에 원격 접속
- host : 리눅스 IP
- port : 3307
- user : korea
- password : korea1234
- #6. sql 작성 및 실행
DROP DATABASE IF EXISTS site1;
CREATE DATABASE site1;
use site1;
CREATE TABLE article (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
reg_date DATETIME NOT NULL,
update_date DATETIME NOT NULL,
title VARCHAR(100) NOT NULL,
`body` TEXT NOT NULL
);
INSERT INTO article
SET reg_date = NOW(),
update_date = NOW(),
title = '제목1',
`body` = '내용1';
INSERT INTO article
SET reg_date = NOW(),
update_date = NOW(),
title = '제목2',
`body` = '내용2';
INSERT INTO article
SET reg_date = NOW(),
update_date = NOW(),
title = '제목3',
`body` = '내용3';
SELECT * FROM article;
- #7. DB에 접근하는 php-fpm 컨테이너의 artice_list.php 파일의 내용을 수정
- vim /work/scripts/artice_list.php
<meta charset="UTF-8" />
<?php
$db_conn = mysqli_connect('172.17.0.1:3307', 'site1', 'korea1234', 'site1');
$sql = "
SELECT *
FROM article
ORDER BY id DESC
";
$rs = mysqli_query($db_conn, $sql);
$articles = [];
while ( $article = mysqli_fetch_assoc($rs) ) {
$articles[] = $article;
}
?>
<ul>
<?php foreach ( $articles as $article ) { ?>
<li><?=$article['id']?>/<?=$article['reg_date']?>/<?=$article['title']?></li>
<?php } ?>
</ul>
- #8. 호스트 PC의 mysql 서비스 내리기 : sudo systemctl stop mysql
- #9. 브라우저로 결과 확인
'Back-End Study > Linux' 카테고리의 다른 글
도커 이미지 생성 (0) | 2022.10.06 |
---|---|
도커 컴포즈를 이용해 컨테이너 관리 (0) | 2022.10.06 |
컨테이너의 네트워크 통신 (0) | 2022.10.01 |
컨테이너의 nginx 설정과 root 폴더 관리하기 (0) | 2022.09.29 |
도커 마운트 볼륨 (0) | 2022.09.29 |