ETC Docker container 설정
페이지 정보
작성자 Leesangwoo 아이디로 검색 전체게시물 댓글 0건 조회 3,211회 좋아요 0회 작성일 21-01-28 16:46본문
* Docker container 설정
1 container port forwarding 설정
* 구성은 docker 상의 os에 apache 설치 후 port forwarding으로 외부에서 접속하는 것이다.
1) OS 이미지 준비
pull로 docker 내에 OS 이미지를 다운 받아 준다. ( http://www.chlux.co.kr/bbs/board.php?bo_table=board02&wr_id=120&sca=ETC 참조 )
2) OS 이미지로 port forwarding 옵션 설정하여 컨테이너 생성
docker run -i -t --name mywebserver -p 8000:80 ubuntu:18.04 ( -p 8000:80 - 외부에서 접속할 포트:컨테이너 port forwarding )
=> 만약 -p 옵션에 외부 포트를 지정 안했다면 docker가 임의의 포트를 80 포트와 port forwarding 한다 )
3) 컨테이너 생성 확인
docker ps -a 명령으로 생성 확인
4) 생성한 컨테이너에 apache 설치
ubuntu 패키지 자동 설치 명령이 apt-get install apache2로 apache 설치
5) apache 데몬 기동 후 확인
6) 외부에서 8000번 ( 외부 port forwarding 포트 ) 로 접속해서 apache 접속 테스트
docker가 설치 된 centos가 아닌 사용자 PC에서 8000 포트로 접속 시 컨테이너의 80 포트로 port forwarding이 잘 되었다면 apache 초기 페이지가 나온다.
2 Mysql 환경 설정하여 컨테이너 생성
1) mysql docker 이미지로 환경 설정 옵션 추가하여 컨테이너 생성
mysql docker 이미지에 -e ( 컨테이너 내부 환경 변수 설정 ) 옵션을 통하여 mysql 환경 설정이 가능하다.
- MYSQL_ROOT_PASSWORD=test123 ( mysql root 계정 패스워드 설정 )
- MYSQL_DATABASE=testdb ( mysql에 추가적으로 생성해야될 database )
- 그리고 옵션 -d ( detached ) 로 하면 -i -t ( attach ) 와는 다르게 백그라운드로 실행이 됩니다.
2) 외부에서 mysql 접속 테스트
mysql 컨테이너에 접속하면 추가적으로 'testdb' database도 생성이 되어있다.
3 wordpress와 mysql 연동하기
1) mysql 컨테이너 생성
mysql 컨테이너 생성 시 -v 옵션으로 local volume을 docker에 mount 할 수 있습니다.
-v 옵션으로 local volume의 /db_data/를 docker 의 /var/lib/mysql 로 mount 합니다.
2) mysql 컨테이너의 mount 된 local volume에 저장된 데이터 확인
mysql 컨테이너에 mount 되었던 폴더인 /db_data에 mysql database 데이터가 저장 된 것을 확인 가능합니다.
만약 이렇게 하지 않으면 DB를 재시작 할 때마다 초기 데이터가 올라오게 됩니다.
3) wordpress 컨테이너 mysql 연동하여 생성
wordpress 컨테이너 생성 시 --link 옵션을 사용하여 조금 전에 생성한 mysql과 연동이 가능하다.
4) 웹브라우져에서 wordpress 접속 테스트
해당 웹 페이지가 보이면 정상적으로 연동이 되어서 생성이 된 것이다.
5) wordpress 데이터가 mount 된 local volume에 저장되는지 확인
wordpress 데이터는 /db_data/wordpress 경로에 저장된다.
6) mysql 컨테이너 미기동시 wordpress 기동 에러
현재 mysql에 연동 되어 있기 때문에 mysql이 기동을 안하면 wordpress는 위처럼 기동에 실패를 하게 된다.
mysql을 기동 후 wordpress를 기동하면 문제 없이 기동 된다.
4 docker volume 연동
4.1 - local volume shared
1) test file 만들기
파일 공유를 위하여 테스트 파일 2개를 생성한다.
2) file shared 설정
-v 옵션으로 local에 있는 파일을 docker 상에 파일로 공유가 가능하다. ( 단 경로는 절대 경로만 가능하다. )
3) volume shared 설정
-v 옵션으로 local에 있는 볼륨을 docker 상에 볼륨으로 공유[mount]가 가능하다. ( 단 경로는 절대 경로만 가능하다. )
4) volume container shared 설정
--volumes-from 옵션으로 기존 container의 local volume을 신규 container가 같이 공유하게 설정이 가능하다.
local disk를 shared_volume container가 공유해 사용 중이고,
volumes_from container들은 shared_volume container의 local disk를 공유해 사용하게 된다.
4.2 - docker volume shared
1) docker volume 만들기
volume create 명령어로 docker volume 을 생성 할 수 있다.
2) docker volume mount 하기
container를 생성할 때 -v 옵션으로 조금 전에 생성한 docker_volume을 /test 폴더에 마운트해 줍니다.
테스트로 echo 명령으로 text 파일 한 개를 생성합니다.
container를 하나 더 생성하여 같은 docker volume mount을 /test에 마운트 하여줍니다.
같은 docker volume이기 때문에 조금 전에 생성한 text 파일 한 개가 있습니다.
3) docker auto create volume mount 하기
container를 생성할 때 -v 옵션에 마운트 폴더만 적어주면 docker에서 volume을 자동으로 생성해 줍니다.
4) docker volume 확인하기
docker volume ls 로 volume name을 확인 할 수 있고
docker volume inspect volume name으로 상세정보 확인이 가능합니다.
그리고 mountpoint 경로에 파일을 확인하면 아까 생성한 test volume2 파일이 있는 것을 확인 할 수 있습니다.
5) docker volume 제거
docker volume prune로 사용되지 않는 volume 제거가 가능합니다.
4.3 - docker volume mount 옵션
docker volume mount 옵션으로 마운트가 가능하다.
mount 옵션에 type을 volume,bind 둘 중 하나 지정하고 source,target을 지정하면 된다.
댓글목록
등록된 댓글이 없습니다.