공유할 서비스 선택

TECH


TECH

ETC Docker container 설정

페이지 정보

작성자 Leesangwoo 아이디로 검색 전체게시물 댓글 0건 조회 3,211회 좋아요 0회 작성일 21-01-28 16:46

본문

* Docker container 설정

  1 container port forwarding 설정

 

 6624bf1e8348ff33de967fb4062b8bc6_1611820077_8523.png
 

 

 * 구성은 docker 상의 os에 apache 설치 후 port forwarding으로 외부에서 접속하는 것이다.

 

 1) OS 이미지 준비

  6624bf1e8348ff33de967fb4062b8bc6_1611809514_1788.JPG
   pull로 docker 내에 OS 이미지를 다운 받아 준다. ( http://www.chlux.co.kr/bbs/board.php?bo_table=board02&wr_id=120&sca=ETC 참조 )

  

 

  2) OS 이미지로 port forwarding 옵션 설정하여 컨테이너 생성

   6624bf1e8348ff33de967fb4062b8bc6_1611821700_2197.JPG 

   docker run -i -t --name mywebserver -p 8000:80 ubuntu:18.04 ( -p 8000:80 - 외부에서 접속할 포트:컨테이너 port forwarding )

   => 만약 -p 옵션에 외부 포트를 지정 안했다면 docker가 임의의 포트를 80 포트와 port forwarding 한다 )

e509e7f2af95a3ca92d97af02ce45822_1611885958_5672.JPG
 

 

  3) 컨테이너 생성 확인

6624bf1e8348ff33de967fb4062b8bc6_1611821756_158.JPG 

    docker ps -a 명령으로 생성 확인

 

 

  4) 생성한 컨테이너에 apache 설치 

   6624bf1e8348ff33de967fb4062b8bc6_1611822044_0381.JPG
    ubuntu 패키지 자동 설치 명령이 apt-get install apache2로 apache 설치

 

 

  5) apache 데몬 기동 후 확인

   6624bf1e8348ff33de967fb4062b8bc6_1611822365_5418.JPG
   

 

  6) 외부에서 8000번 ( 외부 port forwarding 포트 ) 로 접속해서 apache 접속 테스트   6624bf1e8348ff33de967fb4062b8bc6_1611822871_1674.JPG

  docker가 설치 된 centos가 아닌 사용자 PC에서 8000 포트로 접속 시 컨테이너의 80 포트로 port forwarding이 잘 되었다면 apache 초기 페이지가 나온다.

 

 

 

  2 Mysql 환경 설정하여 컨테이너 생성 

   1) mysql docker 이미지로 환경 설정 옵션 추가하여 컨테이너 생성     e509e7f2af95a3ca92d97af02ce45822_1611883915_4588.JPG

   mysql docker 이미지에 -e ( 컨테이너 내부 환경 변수 설정 ) 옵션을 통하여 mysql 환경 설정이 가능하다.

   - MYSQL_ROOT_PASSWORD=test123 ( mysql root 계정 패스워드 설정 )

   - MYSQL_DATABASE=testdb ( mysql에 추가적으로 생성해야될 database )  

   - 그리고 옵션 -d ( detached ) 로 하면 -i -t ( attach ) 와는 다르게 백그라운드로 실행이 됩니다.
 

 

   2) 외부에서 mysql 접속 테스트

 e509e7f2af95a3ca92d97af02ce45822_1611885178_0428.JPG 

   mysql 컨테이너에 접속하면 추가적으로 'testdb' database도 생성이 되어있다. 

 

  3 wordpress와 mysql 연동하기 

   1) mysql 컨테이너 생성

bbae26ac59778d2ad2e0c5992a3f70f2_1612169770_1551.JPG

bbae26ac59778d2ad2e0c5992a3f70f2_1612169773_638.JPG 

     mysql 컨테이너 생성 시 -v 옵션으로 local volume을 docker에 mount 할 수 있습니다.

     -v 옵션으로 local volume의 /db_data/를 docker 의 /var/lib/mysql 로 mount 합니다.

 

 

   2) mysql 컨테이너의 mount 된 local volume에 저장된 데이터 확인 

  8961e56f9f68532d35bb948b9a7c601f_1612250828_975.JPG

     mysql 컨테이너에 mount 되었던 폴더인 /db_data에 mysql database 데이터가 저장 된 것을 확인 가능합니다. 

     만약 이렇게 하지 않으면 DB를 재시작 할 때마다 초기 데이터가 올라오게 됩니다.

 

 

   3) wordpress 컨테이너 mysql 연동하여 생성 

8961e56f9f68532d35bb948b9a7c601f_1612253373_3333.JPG
     wordpress 컨테이너 생성 시 --link 옵션을 사용하여 조금 전에 생성한 mysql과 연동이 가능하다. 

 

 

   4) 웹브라우져에서 wordpress 접속 테스트 

8961e56f9f68532d35bb948b9a7c601f_1612254075_792.JPG
     해당 웹 페이지가 보이면 정상적으로 연동이 되어서 생성이 된 것이다.

 

 

   5) wordpress 데이터가 mount 된 local volume에 저장되는지 확인

8961e56f9f68532d35bb948b9a7c601f_1612254207_8527.JPG
     wordpress 데이터는 /db_data/wordpress 경로에 저장된다. 

 

 

   6) mysql 컨테이너 미기동시 wordpress 기동 에러

fefb6eec04ed0d0264024024e21313a1_1612332359_6604.JPG

     현재 mysql에 연동 되어 있기 때문에 mysql이 기동을 안하면 wordpress는 위처럼 기동에 실패를 하게 된다.

  fefb6eec04ed0d0264024024e21313a1_1612339117_2611.JPG

     mysql을 기동 후 wordpress를 기동하면 문제 없이 기동 된다.

 

 

 

  4 docker volume 연동 

   4.1 - local volume shared
      1) test file 만들기

       fb6151206b1000ab1a54e287b783c2a0_1612428222_6206.JPG

       파일 공유를 위하여 테스트 파일 2개를 생성한다.


      2) file shared 설정 

      fb6151206b1000ab1a54e287b783c2a0_1612428664_3416.JPG 

       -v 옵션으로 local에 있는 파일을 docker 상에 파일로 공유가 가능하다. ( 단 경로는 절대 경로만 가능하다. )

 

      3) volume shared 설정 

       6d94b6ed9d4744af9c9acccfb2c49530_1613700171_7521.JPG
       -v 옵션으로 local에 있는 볼륨을 docker 상에 볼륨으로 공유[mount]가 가능하다. ( 단 경로는 절대 경로만 가능하다. ) 

 

      4) volume container shared 설정 

      6d94b6ed9d4744af9c9acccfb2c49530_1613712496_0879.JPG 

       --volumes-from 옵션으로 기존 container의  local volume을 신규 container가 같이 공유하게 설정이 가능하다.

 

     6d94b6ed9d4744af9c9acccfb2c49530_1613719408_0546.png

     local disk를 shared_volume container가 공유해 사용 중이고,

     volumes_from container들은 shared_volume container의 local disk를 공유해 사용하게 된다.
 

 

   4.2 - docker volume shared 

      1) docker volume 만들기

      6d94b6ed9d4744af9c9acccfb2c49530_1613718589_8133.JPG 

       volume create 명령어로 docker volume 을 생성 할 수 있다.

 

 

      2) docker volume mount 하기 

      0c7d50a4f293078c378d808d1059c53e_1614056181_2917.JPG

       container를 생성할 때 -v 옵션으로 조금 전에 생성한 docker_volume을 /test 폴더에 마운트해 줍니다.

       테스트로 echo 명령으로 text 파일 한 개를 생성합니다.


      0c7d50a4f293078c378d808d1059c53e_1614056185_788.JPG
       container를 하나 더 생성하여 같은 docker volume mount을 /test에 마운트 하여줍니다. 

       같은 docker volume이기 때문에 조금 전에 생성한 text 파일 한 개가 있습니다. 

 

       3) docker auto create volume mount 하기

      0c7d50a4f293078c378d808d1059c53e_1614066120_2185.JPG 

       container를 생성할 때 -v 옵션에 마운트 폴더만 적어주면 docker에서 volume을 자동으로 생성해 줍니다.

 

 

      4) docker volume 확인하기  

0c7d50a4f293078c378d808d1059c53e_1614066686_7512.JPG
       docker volume ls 로 volume name을 확인 할 수 있고
       docker volume inspect volume name으로 상세정보 확인이 가능합니다. 

       그리고 mountpoint 경로에 파일을 확인하면 아까 생성한 test volume2 파일이 있는 것을 확인 할 수 있습니다.

 

 

      5) docker volume 제거

     0c7d50a4f293078c378d808d1059c53e_1614069315_8802.JPG

       docker volume prune로 사용되지 않는 volume 제거가 가능합니다.

 


   4.3 - docker volume mount 옵션

0c7d50a4f293078c378d808d1059c53e_1614070276_3675.JPG

0c7d50a4f293078c378d808d1059c53e_1614070280_2434.JPG 

       docker volume mount 옵션으로 마운트가 가능하다. 

       mount 옵션에 type을 volume,bind 둘 중 하나 지정하고 source,target을 지정하면 된다. 

 

 

 

 

 

댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
84 Middleware 미들웨어 아이디로 검색 전체게시물 04-19 11996
(SSL-2) SSL 인증서 에러발생시 해결방법 (NSS error-8172, 12276 ??)

카테고리 : Middleware

11,996 0
작성자 : 미들웨어 21/04/19
83 OS LeeHyongDong 아이디로 검색 전체게시물 04-08 7153
[Linux] 재부팅없이 multipath 제거

카테고리 : OS

7,153 0
작성자 : LeeHyongDong 21/04/08
82 Middleware 미들웨어 아이디로 검색 전체게시물 04-08 8211
(SSL-1) 인증서 정상상태인지 확인하는 방법 (openssl s_client 사용)

카테고리 : Middleware

8,211 0
작성자 : 미들웨어 21/04/08
81 ETC Leesangwoo 아이디로 검색 전체게시물 04-07 2839
[ MariaDB ] MariaDB 설치 및 구성

카테고리 : ETC

2,839 0
작성자 : Leesangwoo 21/04/07
80 Middleware 미들웨어 아이디로 검색 전체게시물 03-27 2537
(Monitoring) Grafana를 활용한 batch cpu process minitoring 방법

카테고리 : Middleware

2,537 0
작성자 : 미들웨어 21/03/27
79 Middleware 미들웨어 아이디로 검색 전체게시물 03-17 6064
(오픈소스 활용-21) Jenkins 배포솔루션 설치와 Jenins 이중화 방안, Thinbackup 백업 방법

카테고리 : Middleware

6,064 0
작성자 : 미들웨어 21/03/17
78 OS LeeHyongDong 아이디로 검색 전체게시물 02-23 7086
[Linux] 8버전 HA-LVM 등록

카테고리 : OS

7,086 0
작성자 : LeeHyongDong 21/02/23
77 Middleware 미들웨어 아이디로 검색 전체게시물 02-22 2909
(Cache-2) CDN 개념과 활용방법 정리

카테고리 : Middleware

2,909 0
작성자 : 미들웨어 21/02/22
76 Middleware 미들웨어 아이디로 검색 전체게시물 02-07 4578
(Cache-1) Nginx reverse proxy 로 Cache 기능활용

카테고리 : Middleware

4,578 0
작성자 : 미들웨어 21/02/07
열람중 ETC Leesangwoo 아이디로 검색 전체게시물 01-28 3212
열람중
Docker container 설정

카테고리 : ETC

3,212 0
작성자 : Leesangwoo 21/01/28
Total 234건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 chlux.co.kr All rights reserved.
상단으로Top