윈도우 10 2004 버전에서 WSL2를 지원하면서 docker desktop에서도 지원을 시작 하였다.


WSL2를 사용할 계획이 있다면 별도의 활성화 명령을 실행시키지 말고 도커설치를 권장합니다.

아주 편리하게 WSL2가 활성화 됩니다.


윈도우 10 버전이 2004 인지 확인한다. 아마도 시스템이 hyper-v 구동이 되는 가상화 지원이 되어야 할 것 같습니다.


설치 파일을 다운로드 받고 설치를 시작한다.
https://www.docker.com/products/docker-desktop


WSL2 체크를 확인한다.

설치 진행중

설치가 완료되면 재시작

로그인 하면 도커가 구동된다.

WSL2 커널 업데이트 안내 창이 실행되면 업데이트를 진행한다.


업데이트 하고 재부팅을 하면 도커가 구동되고 사용법이 안내된다. 이를 따라해보려면 GIT이 설치 되어 있어야한다.


버튼을 클릭하면 명령이 입력되어 실행된다.

받은 소스를 기반으로 이미지 빌드

빌드된 이미지 실행

localhost로 접속이 된다.


구동중인 컨테이너를 관리할 수 있다.


항상 도커를 사용할 계획이 아니라면 Start Docker Desktop when you log in 체크를 해제한다.



CentOS 7에서 docker 사용 중 데이터 경로를 변경해야 해서 찾아보고 다음과 같이 설정해서 변경했습니다.

docker의 기본 데이터 저장 경로는 다음과 같습니다

/var/lib/docker

이 경로를 지정하는 가장 간단한 방법은 다음과 같이 data-root를 지정하면 됩니다.

vim /etc/docker/daemon.json

{  
    "data-root": "/data/docker"  
}

운영 중 변경하신다면 다음과 같이 하시면 됩니다.

 

  • 데몬 중지 ( systemctl stop docker)
  • 데이터 이전
  • daemon.json 생성
  • 데몬 기동 ( systemctl start docker)

 

상세 설명은 다음의 링크를 참고합니다.
https://docs.docker.com/config/daemon/systemd/

ps. 신규 에디터로 작성했는데 블로그 스킨과 뭐가 맞지 않는지 이상해보이네요.

'지식창고 > docker' 카테고리의 다른 글

WSL2 를 사용하는 도커  (0) 2020.06.05
Laradock 샘플 수정 과정 정리  (0) 2016.08.30
LaraDock 샘플 체험 삽질기 with mac  (0) 2016.08.30
LaraDock 샘플 체험 삽질기  (0) 2016.08.24

시작은 도커를 이용한 분산 서비스 아키텍처 맛보기 이 포스팅으로 부터 시작합니다.


우분투 가상머신에서의 네이티브 docker환경, 그리고 맥에서의 삽질끝에 깔끔하게 정리해 봐야 겠다는 생각이 들어서 정리해 봅니다.


1. docker for mac 설치

  

   두가지 설치 방법이 있는데 신규 설치라면 docker for mac을 설치 하고

   기존 설치 환경을 이용하거나 구버전 OS라면 docker toolbox를 설치 합니다.


   이 포스팅은 docker for mac을 기준으로 하며 docker version 1.12.0 이 설치 됩니다.


   https://docs.docker.com/docker-for-mac/ 


   docker.dmg를 다운받아 더블클릭하고 설치 합니다.

  


실행시키면 경고창이 하나 뜹니다. 닫고 다시 실행시키면 잠시후 트레이에 실행중인 모습이 보입니다.




터미널을 열고 docker -v 해보면 버전확인을 할 수 있습니다. 도커 환경 준비 완료!


2. 환경설정

  

   composer가 필요합니다. brew를 이용하거나 직접 설치 합니다.


3. 프로젝트 복제


  원본 프로젝트를 포크 후 clone하고composer를 실행합니다.


  git clone https://github.com/pokev25/quickstart-intermediate.git quickstart

  cd quickstart

  composer install

 

  redis를 사용할 것이니 추가 합니다.

  composer require predis/predis:^1.0


  서브모듈을 설정하기 위해서 원본을 포크 하고 서브모듈을 추가 합니다.


  git submodule add https://github.com/pokev25/laradock.git

 

4. 예제 처럼 프로젝트 수정

 

    예제의 커밋 로그를 확인하고 동일하게 몇 군데 손봅시다.

    DB는 mariadb를 사용합니다.


    .env

  DB_HOST=mariadb

  CACHE_DRIVER=redis
  SESSION_DRIVER=redis

  REDIS_HOST=redis


  docker-compose.yml에서 사용할 부분만 남기고 제거하고  lb와 web을 추가 합니다.


  사용할 부분만 정리 했으니 이미지를 가동합니다.


  docker-compose up


docker-compose ps 로 실행 상태를 확인

          Name                         Command               State                    Ports
-----------------------------------------------------------------------------------------------------------
laradock_lb_1               /sbin/tini -- dockercloud- ...   Up       1936/tcp, 443/tcp, 0.0.0.0:80->80/tcp
laradock_mariadb_1          docker-entrypoint.sh mysqld      Up       0.0.0.0:3306->3306/tcp
laradock_redis_1            docker-entrypoint.sh redis ...   Up       0.0.0.0:6379->6379/tcp
laradock_volumes_data_1     true                             Exit 0
laradock_volumes_source_1   true                             Exit 0
laradock_web_1              /usr/bin/supervisord -c /e ...   Up       443/tcp, 80/tcp, 9000/tcp
laradock_workspace_1        /sbin/my_init                    Up   

 

브라우저로 localhost에 접속해보면 기본 페이지가 보입니다.

5. 분산환경 테스트


워크스페이스로 들어가서artisan을실행합니다.

docker-compose exec workspace bash

php artisan migrate

exit


docker-compose scale web=3


잘 동작한다.!!

 


6. 받아서 실행만 하기


git clone https://github.com/pokev25/quickstart-intermediate.git quickstart

cd quickstart

git submodule init && git submodule update

composer install


cd laradock

docker-compose up

docker-compose exec workspace bash

php artisan migrate

exit


docker-compose scale web=3

  

ps. 우분투에서 테스트 결과 잘 동작함

docker for mac이 나오면서 맥에서 개발한 docker-compose를 그대로 실환경에서 사용가능해짐

  


  

'지식창고 > docker' 카테고리의 다른 글

WSL2 를 사용하는 도커  (0) 2020.06.05
docker 데이터 저장 경로 변경하기  (2) 2019.05.20
LaraDock 샘플 체험 삽질기 with mac  (0) 2016.08.30
LaraDock 샘플 체험 삽질기  (0) 2016.08.24

부트캠프로 윈도우를 주로 사용중이라 오랜만에 맥으로 부팅하고 이거저거 업데이트를 하다보니


docker for mac이 새로나왔다는게 생각나서 설치해봤다.

무척이나 쉽게 설치되며 리눅스에 도커가 설치된 것 처럼 사용 가능하다.




예제가 docker-machine이라서 새로운 방식의 맥용 docker 와는 다르다.


예제와 달리 docker-machine ip를 하면 에러가 난다.


Error: No machine name(s) specified and no "default" machine exists.


한번 삽질 해봤으니 했던 대로 똑같이 테스트를 진행했다.


그런데 data컨테이너가 실패한다.  맥에서는 안되는 모양이다.



LaraDock 저장소의 docker-compose.yml 를 살펴보니 맵핑이 바뀌었다.


그대로 변경을 하니 잘 동작한다.



boot2docker나 docker-machine과는 구조가 많이 달라진 것 같다.



'지식창고 > docker' 카테고리의 다른 글

WSL2 를 사용하는 도커  (0) 2020.06.05
docker 데이터 저장 경로 변경하기  (2) 2019.05.20
Laradock 샘플 수정 과정 정리  (0) 2016.08.30
LaraDock 샘플 체험 삽질기  (0) 2016.08.24

라라벨 개발에 docker를 이용한 LaraDock 이란게 있다는 소리를 들었는데

테스트 해볼 수 있는 좋은 포스팅을 따라해 보기로 했다.


http://blog.appkr.kr/work-n-play/dockerize/


포스팅은 docker-machine에서 실행 하는 것이였는데 나는 VMWare에 우분투를 설치해서 이거 저거 테스트 중이라 샘플 구경할겸 따라 해보기로 했다.

모든 참사는 여기에서 부터 시작한다  '이거 저거 테스트 하던 가상머신' 이라는것이다.


동작하던 아파치와  mariadb를 중지 시키고 하라는 대로 따라했다.


첫번째 벽은 HAProxy에서 시작했다.

도데체 이걸 어떻게 설정 하는거지? 구글링 끝에 찾아낸 설정으로 변경했다.


기존

### HAProxy Container #######################################

    lb:
#        image: dockercloud/haproxy
        build:
            context: ./lb
            dockerfile: Dockerfile
        links:
            - web
        ports:
            - "80:80"
            - "443:443"
        environment:
            - DOCKER_TLS_VERIFY
            - DOCKER_HOST
            - DOCKER_CERT_PATH
        volumes:
            - $DOCKER_CERT_PATH:$DOCKER_CERT_PATH
            - ./logs/supervisor/:/var/log/supervisor
        tty: true


변경  

### HAProxy Container #######################################

    lb:
        # image: dockercloud/haproxy
        build:
            context: ./lb
            dockerfile: Dockerfile
        links:
            - web
        ports:
            - "80:80"
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
            - ./logs/supervisor/:/var/log/supervisor
        tty: true


두번째는 이상한 에러가 나왔다.

.env에 ip를 틀렸나? 이상한데? 여러 삽질끝에 에러 메시지를 다시 천천히 살펴봤다. class가 없단건데...

공식문서를 뒤진다.

composer require predis/predis:^1.0

빙고!


로그인을 하는데 DB접속을 할 수 없다고 나온다. 이상하다.. 분명 설명 블로그에는 외부에서도 된다 했는데 안된다.

이상하다...그러다 문득..기존에 테스트로 쓰던  mysql과 충돌난게 아닌가? 하는 생각이 번쩍 들었다...

/var/lib/mysql를 이동하고 도커를 다시 실행시켰더니 잘 동작한다.


.env에 ip를 적을 필요 없이  mysql, redis등으로 적어도 도커컨테이너를 잘 찾아서 접속된다.


삽질끝에 docker-compose 사용법과 컨테이너간의 연결에대한 이해도가 조금 생겼다.도커 재미있구나