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 |