본문 바로가기

도커&쿠버네티스/도커

9. 도커 (link, 데이터베이스)

1. link

  - 같은 호스트에 있고 실행되어 있는 컨테이너끼리 이름으로 접근할 수 있게 한다. 

  - link(링크) 명령어 사용

 

  - 일반적으로 링크 없이 생성하게 되면 ip를 사용해야한다.

컨테이너 생성
컨테이너 이름으로는 핑 불가능

 

  - 링크명령어를 통해 c1과 c2의 이름으로 핑 시도

link로 인해 이름으로 ping이 가능하다.
역은 불가능

 

  - 컨테이너 이름 변경 시 호스트명으로 접근이 불가

        --> IP 변경 시에는 가능

rename 명령어를 통해 컨테이너 이름변경
이름 변경 시 hosts 파일에 존재하지 않아 접근 불가능

 

컨테이너 생성 후 IP 변경을 위해 컨테이너 stop
멈추고 새로운 컨테이너 생성 후 재시작하면 ip를 새로이 받아온다.

 

  - /etc/hosts를 확인하면 호스트명이 들어간 것을 확인

  - 별칭으로도 생성이 가능하다.

기존 link명령어 컨테이너 이름 뒤에 별칭을 붙혀 사용
별칭으로 접근 가능

 

 

  - c1 만들고 c2에서 c1 링크 생성 , 그 다음 c1을 멈춘 후 c3를 생성하여 ip를 변경한 뒤 핑을 하는 스크립트 생성

스크립트 생성

 

스크립트 실행

 

 

 

2. 데이터베이스

  - 실행할 때 -e옵션을 통해 환경 변수 설정을 통해 pw 입력이 필요.

  - 클라이언트 접속 방법

  - mysql 이미지 pull

이미지 설치 확인

  - mysql 컨테이너 실행

 

  - DB 사용을 위해 host pc에는 클라이언트 설치

클라이언트 설치

 

  - 컨테이터로 생성한 sql 서버로 접속

 

 

 

2.1. Docker DB를 통해 웹 페이지 구성.

  - DB 생성 시 -link를 통해 연결하게 되면 ip 대신 명칭이나 별칭으로 연결 가능.

  - http와 php가 동시에 설치되어있는 이미지 다운

해당 이미지를 다운

 

  -  해당 이미지로 아파치 서비스 실행

해당 ip 주소 확인

 

  - 생성해놓은 php 파일을 맞는 데이터베이스 ip와 HTTPD ip 주소로 수정

  - 수정한 php 파일을 scp명령어로 리눅스로 복사.

생성한 디렉토리에 파일 이동 확인

 

  - php파일을 docker 컨테이너 내부로 복사

내부로 이동

  - http 컨테이너 내부로 진입하여 config 파일 수정 

        

index.php 파일로 접속하도록 설정

 

  - 필요한 데이터베이스 생성 및 권한 부여

 

test 데이터베이스 생성
모든 테이블과 데이터베이스에 대한 모든 권한을 root@~를 붙혀서 들어오는 사용자에게 부여

 

member 데이터베이스 생성

 

member 데이터베이스를 사용하여 테이블 생성

 

 

사용자를 생성하여 생성한 사용자에게 권한 부여하는 방법도 있다.( httpd 서비스 )

 

 

  - test 

index.php 화면을 통해 db 접속 상태 확인

 

person1.php 창을 통해 db 입력

 

 

테이블 조회창을 통한 테이블 조회 확인

 

 

insert1.php 도 확인