latest <-- 테그네임

fourfree/testapp<-- 이미지 네임

 

docker pull fourfree/testapp:latest

 

docker images 명령어를 통해서 다운로드 받은 이미지 확인

반응형

'Docker' 카테고리의 다른 글

docker rabbitmq 설치  (0) 2021.01.15
docker , redis설치  (0) 2021.01.14
docker 실행 자동화  (0) 2020.12.11
도커허브 로그인  (0) 2020.12.11
centos7 docker 설치 , docker install  (0) 2020.12.08
블로그 이미지

visualp

c#, java

,

도커허브 로그인

Docker 2020. 12. 11. 11:12

docker login <-- 명령어 입력 후 아이디 패스워드 넣고 로그인

[root@localhost /home/codegen]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: fourfree
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

 

반응형

'Docker' 카테고리의 다른 글

docker rabbitmq 설치  (0) 2021.01.15
docker , redis설치  (0) 2021.01.14
docker 실행 자동화  (0) 2020.12.11
도커허브에서 빌드된 이미지 다운로드  (0) 2020.12.11
centos7 docker 설치 , docker install  (0) 2020.12.08
블로그 이미지

visualp

c#, java

,

centos7 기준 docker설치

1 .  아래 명령어로 실행( 가장 최신의 docker 버전을 설치해줌

curl -s https://get.docker.com | sudo sh

 

2.  systemctl enable docker.service

 - 서버 부팅시 자동으로 docker 서비스가 시작되도록 설정

3. service docker start

 - 설치한 도커서비스 시작

 

4. systemctl status docker.service

 - 도커서비스 상태 확인

[root@localhost /home]#  systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since 화 2020-12-08 12:00:56 KST; 15min ago
     Docs: http://docs.docker.com
 Main PID: 3839 (dockerd-current)
   CGroup: /system.slice/docker.service
           ├─3839 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-c...
           └─3853 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-...

12월 08 12:00:56 localhost.localdomain dockerd-current[3839]: time="2020-12-08T12:00:56.538619829+09:00" level=info msg="Loading containers: start."
12월 08 12:00:56 localhost.localdomain dockerd-current[3839]: time="2020-12-08T12:00:56.550207450+09:00" level=warning msg="Running modprobe bridge br_netfilter failed with message: modprobe: WARNING: Module br_netfilter not found.\n...
12월 08 12:00:56 localhost.localdomain dockerd-current[3839]: time="2020-12-08T12:00:56.554882918+09:00" level=info msg="Firewalld running: false"
12월 08 12:00:56 localhost.localdomain dockerd-current[3839]: time="2020-12-08T12:00:56.602266038+09:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be...red IP address"
12월 08 12:00:56 localhost.localdomain dockerd-current[3839]: time="2020-12-08T12:00:56.631344401+09:00" level=info msg="Loading containers: done."
12월 08 12:00:56 localhost.localdomain dockerd-current[3839]: time="2020-12-08T12:00:56.632363121+09:00" level=warning msg="Not using native diff for overlay2, this may cause degraded performance for building images: o...r later to fix"
12월 08 12:00:56 localhost.localdomain dockerd-current[3839]: time="2020-12-08T12:00:56.637499293+09:00" level=info msg="Daemon has completed initialization"
12월 08 12:00:56 localhost.localdomain dockerd-current[3839]: time="2020-12-08T12:00:56.637517968+09:00" level=info msg="Docker daemon" commit="0be3e21/1.13.1" graphdriver=overlay2 version=1.13.1
12월 08 12:00:56 localhost.localdomain dockerd-current[3839]: time="2020-12-08T12:00:56.642381158+09:00" level=info msg="API listen on /var/run/docker.sock"
12월 08 12:00:56 localhost.localdomain systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.

 

5- docker version

[root@localhost ~/download/docker]# docker -v
Docker version 19.03.14, build 5eb3275d40
[root@localhost ~/download/docker]#

 

6. docker pull centos

- centos기준으로 설치 했음으로 docker centos전용 image 다운받기

 

7 docker images

[root@localhost /home]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              300e315adb2f        2 hours ago         209 MB
반응형

'Docker' 카테고리의 다른 글

docker rabbitmq 설치  (0) 2021.01.15
docker , redis설치  (0) 2021.01.14
docker 실행 자동화  (0) 2020.12.11
도커허브에서 빌드된 이미지 다운로드  (0) 2020.12.11
도커허브 로그인  (0) 2020.12.11
블로그 이미지

visualp

c#, java

,

[참고]

 

https://flutter-ko.dev/docs/get-started/install/windows

 

윈도우에서 설치

 

flutter-ko.dev

1. java jdk 설치 

  cdn.azul.com/zulu/bin/zulu8.50.0.51-ca-jdk8.0.275-win_x64.zip

JAVA_HOME PATH 설정

1.8 설치를 권장 합니다. 

세팅중 잡다한 문제가 발생 될 수 있음 . 우선 1.8 PATH를 잡아 주세요

 

2. Flutter SDK 다운로드

storage.googleapis.com/flutter_infra/releases/stable/windows/flutter_windows_1.22.4-stable.zip

PATH 환경변수에 flutter sdk 추가

flutter/bin  <-- 형태로 넣으면 됨

 

3. intelij plugin 설치

Dart, flutter  플러그인 검색 후 설치

 

4. Tools->Android->Adv Manager api version 29로 생성(애뮬레이터)생성

 

5. CMD >  fluttor doctor 실행 또는 intelij -> tools -> flutter -> flutter doctor 실행

 

CMD > flutter doctor --android-licenses  라이센스 문제 해결됨

반응형
블로그 이미지

visualp

c#, java

,

[상황]

 - rdb를 이용해서 고객관련된 데이터가 구축되어 있음

 - legcy 시스템에서 약 20년 동안 운영하면서 주소 데이터가 엉망이됨

  ( 신주소, 구주소, 회사에서 사용하는 배송을위한 행정구역주소: xxx동 xxx아파트)

 - 주소검색의 필요성  : 간 혹 연락처 맵핑이 안되는 고객이 있음-

     > 조회를 위해서 주소검색을 시도해야 함,

       동일주소에 중복 주문이 발생 할 수 있음 ( 내가 주문하고,  부모님이 주문하고) <-- 중복주문

  

 

@fulltext searching 검색 엔진도입을 고민하게됨

 

[내가 생각했던 검색엔진 후보군]

   1. mariadb에 10.x버전 부터 추가된 plugin mgroonga 

   2. elasticsearch

 

mgroonga 

 - aws에서 free tier 를 이용해서 mariadb서비스를 생성후 테스트 진행 mgroonga plugin지원 안함

 - centos 설치하고 직접 mariadb 설치해서 간단하게 설치 후 테스트

 - 한글 검색 지원 

 - table type -> mgroonga 생성되고  외래키 사용할 수 없음

 - limitation : [참고]mroonga.org/docs/reference/limitations.html#limitations-of-table 

 

elasticsearch

 - 6.4 버전  전 까지만 해도 한글공식지원안됨

 - 7.x 버전 설치해서 테스트 nori elasticsearch에서 공식지원됨

 - uri 방식 or rest 방식으로 curd가능

 - spring data jpa와 연계하여 쉽게 구현 가능

 

 

@ mgroonga vs elasticsearch 사실 비교할 여지가 없음

elasticsearch를 선택한 이유

 - inverted index(역 색인) (매력적임)

 - nori : 한글형태소 분석기 

 - rest api  : 별도로 curd를 구현할 필요 없음 , 연동하기 편함

 - 주소검색 뿐만아니라 다양하게 이용할 가능성이 있음.

 - kibana : visualiztion에 특화된 도구

 등등등 개발자가 해야할 일들이 줄어듬

 

[해결시나리오]

 - 고객의 주소가 변경되면 -> elasicsearch 보내는 scheduler 개발(하루에 2번 정도 실행)

 - elasticsearch로 주소 컬럼에서 검색 후 , 고객코드 리턴

 - 리턴받은 고객코드로 실서비스 rdb에서 조회

 - 주소 컬럼에 데이터를 넣을 떄 주소정보, 건물명(아파트명), 행정구역 , 광역시,시,군,구,동,리 포함

 - 주소 컬럼에  건물명 ngram 2자, 3자 만들어서 추가 , (역 색인용)

   ex) 화정동 힐스테이트 -> 화정 힐스, 화정 힐스테 검색되기위해서

   보통 xxx동 xxx아파트 형태로 검색을 함

 

 이미 개발은 완료 되서 실서비스 하고 있음. 해보고 iessu사항이 있다면 정리해서 공유하도록 하겠습니다.

 

반응형
블로그 이미지

visualp

c#, java

,

@Document 를 지정후 

interface를 이용해서 쿼리를 하던 중

기본검색은 jpa사용하듯 하면되지만

match를 이용하여 모두 조건이 일치할 떄 데이터가 조회해야되는 이슈가 발생

ex) 화정동 현대, 화정동 힐스, 화정 힐스

모두 만족해야되는 상황이 발생

jpa는 match를 이용하면 elasticsearch에서는 기본 or조건이 걸림

 

[순서]

1- elasticsearch에서 Dev tools를 이용하여 쿼리 작성

GET idx_es_address/_search 
{
  "query": {
     "match": {
        "address": { 
          "query": "화정동 힐스",
          "operator": "and",
          "analyzer": "korean"
        }
      }
  }
}

2 - 작성된 쿼리를 query 부분을 제외함

{
  "match": {
      "title": {
        "query": "화정동 힐스",
        "operator": "and"
      }
    }
}

3 - 제외된 query를 

  - codebeautify.org/jsonminifier 가서 minify시킴

{"match":{"title":{"query":"화정동 힐스","operator":"and"}}}

 

4 -"화정동 힐스" -> ?0 로 변경 <-- 0번째 parameter라는 의미

{"match":{"title":{"query":"?0","operator":"and"}}}

 

5. interface작성<최종>

 @Query("{\"match\":{\"address\":{\"query\":\"?0\",\"operator\":\"and\"}}}")
 List<EsAddressVO> findAllByAddressMatches(String addr, Pageable pageable);

 

반드시 Pageable param을 넣어주는것을 권장

기본 pagesize = 10으로 세팅되어 있음

반응형
블로그 이미지

visualp

c#, java

,

ngram 구현하기

Java 2020. 11. 26. 10:02

elasticsearch 색인시키기 위해서  2자 , 3자 색인이 필요한 상황

그래서 간단하게 Stringtokenlizer활용하여 만듬

ex)

input : 힐스테이트2차 

 

//2자 result

힐스 

스테 

테이 

이트 

트2 

2차 

 

//3자 result

힐스테 

스테이 

테이트 

이트2 

트2차

 

/**
     * elastic search 용 ngram 2,3 자르기
     * @param str
     * @param n 자를 글자수
     * @return
     */
    public static String esNgram(String str, int n){
        StringTokenizer stringTokenizer = new StringTokenizer(str.trim()," ");
        List<String> strArr = new ArrayList<>();
        while(stringTokenizer.hasMoreTokens()){
            String token = stringTokenizer.nextToken();
            for(int i=0; i<token.length(); i++){
                if(i+n > token.length()){
                    break;
                }
                strArr.add(token.substring(i,i+n));
            }
        }
        return String.join(" ", strArr);
    }

 

반응형
블로그 이미지

visualp

c#, java

,

elasticsearch jpa연동하여 작업하던중 findAll 사용시 pageable 지정해주지 않고 사용하면 

기본  페이지가 10으로 세팅됨 ,

form 0 , default page size 10 , 

데이터를 한번에 가져와야 할 상황 ~ 1000정도로 세팅함

[참고]

www.elastic.co/guide/en/elasticsearch/reference/6.8/search-request-from-size.html

 

GET /_search
{
    "from" : 0, "size" : 10,
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}

Pageable pageable = PageRequest.of(0,1000);

esAddressRepo.findAllByOaddrMatches(addr,pageable);

이런식으로 사용함.

반응형
블로그 이미지

visualp

c#, java

,