[Docker] 도커 실습 1.1 - 컨테이너 연동

20 Sep 2023 - juno

#cloud  #docker 


2023-09-20 클라우드 프로그래밍 3주차 강의 2


실습 1

  1. 컨테이너 연동
  2. 파일 복사
  3. 볼륨 마운트
  4. 도커 이미지 생성

컨테이너 연동

컨테이너 연동 실습 시나리오

워드 프레스

도커 네트워크 생성

# 네트워크 생성
docker network create wordpress000net1

참고: 특별한 네트워크에 포함 시키느냐 아니냐에 따라서 사용하는 네트워크의 대역폭이 달라진다. 172.17.0.2, 172.18.0.2

docker inspect [컨테이너 이름]

를 통해서 네트워크 대역폭을 확인 할 수 있다.

MySQL 컨테이너 생성

#MySQL 컨테이너 생성
docker run --name mysql000ex11 
-dit 
--net=wordpress000net1 
-e MYSQL_ROOT_PASSWORD=myrootpass 
-e MYSQL_DATABASE=wordpress000db 
-e MYSQL_USER=wordpress000kun 
-e MYSQL_PASSWORD=wkunpass mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password

MySQL 컨테이너 생성시 각 옵션 및 인자의 역할

–net=wordpress000net1 -> “wordpress000net1” 네트워크에 컨테이너 연결

** -e : 환경변수 설정

-e MYSQL_ROOT_PASSWORD=myrootpass -> root계정 비번 설정

-e MYSQL_DATABASE=wordpress000db -> db이름 설정

-e MYSQL_USER=wordpress000kun -> 사용자 계정 유저이름 설정

-e MYSQL_PASSWORD=wkunpass mysql -> 위 사용자 계정비번

–character-set-server=utf8mb4 -> 서버 기본 문자셋 설정

–collation-server=utf8mb4_unicode_ci -> 서버의 기본 콜레이션 설정

* 콜레이션: 문자열 비교와 정렬방식을 지정한다.

–default-authentication-plugin=mysql_native_password -> 사용자 계정 기본 인증 플러그인을 native로 설정, 내가 설정한 계정과 비번으로 접속되게 하는 옵션

워드프레스 컨테이너 생성

# 워드프레스 컨테이너 생성
docker run --name wordpress000ex12 -dit --net=wordpress000net1 -p 8085:80 
-e WORDPRESS_DB_HOST=mysql000ex11 
-e WORDPRESS_DB_NAME=wordpress000db 
-e WORDPRESS_DB_USER=wordpress000kun 
-e WORDPRESS_DB_PASSWORD=wkunpass wordpress

워드프레스 컨테이너 생성시 각 옵션 및 인자의 역할

–net=wordpress000net1 -> “wordpress000net1” 네트워크에 컨테이너 연결

-p 8085:80 -> 호스트의 8085포트와 컨테이너의 80 포트를 매핑하여 외부에서 컨테이너에 접근 가능하게함

-e WORDPRESS_DB_HOST=mysql000ex11 -> 워드프레스가 사용할 Mysql 데이터베이스 호스트 주소 설정

-e WORDPRESS_DB_NAME=wordpress000db -> 워드프레스가 사용할 데이터베이스 이름 지정

-e WORDPRESS_DB_USER=wordpress000kun -> 워드프레스와 연결할 데이터베이스 사용자 계정이름 지정

-e WORDPRESS_DB_PASSWORD=wkunpass -> 위 사용자 계정의 비밀번호 지정

워드프레스 가입

Pasted Graphic

설치성공 후

MySQL 컨테이너 내부에 접속하여 워드프레스와 연동이 되어 있는지 가입한 계정 정보 확인

# MySQL 컨테이너 내부로 들어가서 'bash'라는 셸 프로그램 실행
docker exec -it mysql000ex11 bash

image

-> 접속성공(bash-4.4#)

이후 MySQL 데이터베이스 서버에 컨테이너 run(생성) 할 때 설정한 ‘wordpress000kun’ USER로 접속

mysql -u wordpress000kun -p

참고: mysql 에서 최소한의 리눅스를 구성한 컨테이너를 제공하기 때문에 mysql000ex11이란 이름으로 만든 컨테이너 속 리눅스의 bash에 들어갈 수 있음

그 bash에서 MySQL 서버에 접속하는 것

계정 정보가 있는 데이터베이스 및 테이블 확인

# 사용할 데이터베이스 선택
use wordpress000db;

# 계정에 있는 모든 테이블 확인
show tables;

Pasted Graphic 1

근데 저 테이블들은 왜 생성되어있지?..

계정정보가 있는 테이블 확인

select * from wp_users;

Pasted Graphic 2

-> http://localhost:8085 를 통해 가입한 정보가 테이블에 들어있다.

MySQL 서버 및 컨테이너 에서 나가기

# 나가기
mysql> exit

bash-4.4# exit

워드프레스 사이트 구축 정리



reference

개발자 hull.kr, 교수님 강의블로그