본문 바로가기
Docker

Docker : MySQL:5.7 +php 설치

by Nirah 2022. 12. 9.

 

mysql 5.7 버전 다운로드

docker pull mysql:5.7

 

mysql 이미지 정보 확인

docker inspect mysql:5.7

사용하는 포트 등도 확인 가능

읽기 전용인 레이어 계층 구조가 보인다.

이미지를 콘테이너로 실행시키면 그건 쓰기가 가능해지는 원리다.

 

 

 

mysql 컨테이너 실행

이렇게 컨테이너를 실행하면 아래와 같이 exited로 실행되기 때문에 꽝이다.

루트 패스워드가 있어야 동작하기 때문에 안되는 것이다.

docker run -itd --name m1 mysql:5.7

 

mysql에 루트 패스워드를 환경변수로 지정해주고 제대로 실행해보자.

docker run -itd -e MYSQL_ROOT_PASSWORD=It12345! --name m2 mysql:5.7

 

 

Linux mysql-community-client 설치

 

mysql 서버 확인을 위해서 리눅스 쪽에도 mysql-community-client 프로그램을 설치하자.

https://raid-1.tistory.com/101

MySQP 설치와 WEB 구성방법 등은 이쪽의 이전 글을 참고한다.

 

yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

sed -i '35s/gpgcheck=1/gpgcheck=0/g' /etc/yum.repos.d/mysql-community.repo

yum install -y mysql-community-client

 

m2 컨테이너의 ip 확인 -> 172.17.0.2

docker inspect m2

 

docker의 mysql m2컨테이너로 접속 가능

mysql -uroot -pIt12345! -h 172.17.0.2

 

 

php 설치 및 실행

 

docker hub 에서 아래 이미지 다운로드

https://hub.docker.com/r/polinux/httpd-php

docker pull polinux/httpd-php

 

polinux/httpd-php 컨테이너 실행

docker run -itd -p 60080:80 --name p11 polinux/httpd-php

 

 

 

 

 하나의 컨테이너에선 하나의 프로세스

 

참고로 httpd 컨테이너와 Mysql 컨테이너를 각각 만들어 돌리다 보면 이런 의문이 들 수도 있다.

Linux 안에 도커로 Linux컨테이너를 만들고 그 안에서 httpd와 Mysql 등을 다 돌리면 안되나?

 

docker run -itd --name c1 centos7

docker attach c1

yum install -y httpd

systemctl start httpd 하면 동작하지 않는다.

도커에선 하나의 컨테이너에선 하나의 프로세스만 실행되게 만들어졌다.

컨테이너는 프로세스 단위로 실행하기 때문에 다른 서비스 실행이 불가능한 것이다.

억지로 여러개 실행 되게 할 수 있지만 권장하진 않는다.

 

 

'Docker' 카테고리의 다른 글

Docker : Network  (0) 2022.12.09
Volume / bind mount ( Container Data 공유)  (0) 2022.12.09
다른 container로 image 옮기기 (export, import, 환경변수)  (0) 2022.12.08
HAProxy - WEB 연습  (0) 2022.12.08
Docker nginx-WEB  (0) 2022.12.08