'분류 전체보기'에 해당되는 글 1583건

  1. 2020.04.01 [Kibana] Docker Compose 설정 시 environment 중
  2. 2020.04.01 [Elasticsearch] Docker Compose 구성 시 주의 사항.
  3. 2020.03.31 [Docker] Ubuntu 에 Docker & Docker Compose 설치 하기
  4. 2020.03.31 [Docker] Amazon Linux 에 Docker & Compose 설치 하기.
  5. 2020.03.30 [Docker] Docker Compose 에서 volume 사용 하기
  6. 2020.03.30 [Docker] Image 다운로드 및 로컬 설치 하기
  7. 2020.03.27 [Elasticsearch] Single node 실행
  8. 2020.03.27 [Docker] Docker Registry 구성 키워드
  9. 2020.03.26 [AWS] Spring Cloud Config S3 Backend 사용하기
  10. 2020.03.25 [Ubuntu] add-apt-repository: command not found 발생 시

[Kibana] Docker Compose 설정 시 environment 중

Elastic/Kibana 2020. 4. 1. 09:47

kibana docker compose 에서 아래 변수가 어떤 값을 참조 하는지 확인 하시기 바랍니다.

 

참고 문서)

https://www.elastic.co/guide/en/kibana/current/docker.html

environment:
    ELASTICSEARCH_URL: http://${SERVICE-NAME}:9200
    ELASTICSEARCH_HOSTS: http://${SERVICE-NAME}:9200
또는
    ELASTICSEARCH_URL: http://${CONTAINER-NAME}:9200
    ELASTICSEARCH_HOSTS: http://${CONTAINER-NAME}:9200

단일 노드에 Elasticsearch 와 Kibana 두 개의 컨테이너를 띄울 때 Kibana 에서는 Elasticsearch 의 Service 명 또는 Container 명으로 Elasticsearch 를 찾습니다.

:

[Elasticsearch] Docker Compose 구성 시 주의 사항.

Elastic/Elasticsearch 2020. 4. 1. 09:02

정답이라기 보다는 구성 하면서 경험한 내용을 작성 한 것입니다.

나중에 기억이 나지 않을 수도 있으니 정상 동작 했던 내용을 기록 합니다.

 

Elasticsearch Docker Compose 구성 중 주의 사항)

- volume 구성 시 bind mount 를 사용할 경우는 mount 할 storage 를 미리 생성해 두어야 합니다.
- bind mount 사용 시 absolute path 설정을 하셔야 합니다.
- single node 구성 시 network.publish_host 설정은 하지 않아도 됩니다.
- cluster 구성 시 (물리적으로 node 3개) 개별 node 에서 clustering 을 하기 
위해서는 network.publish_host 설정을 하셔야 합니다.
- cluster 구성 시 컨테이너 내부 node 설정에는 private ip 를 등록 합니다.
- sysctls 옵션 에서 vm.max_map_count 설정이 되지 않기 때문에 host 에서 
$ sudo sysctl -w vm.max_map_count=262144 를 실행 해야 합니다.

 

:

[Docker] Ubuntu 에 Docker & Docker Compose 설치 하기

Cloud&Container 2020. 3. 31. 15:59

ubuntu 18.04 에 docker & docker compose 설치)

 

# ubuntu user 로 설치
# https://docs.docker.com/install/linux/docker-ce/ubuntu/
$ sudo apt-get remove docker docker-engine docker.io containerd runc
$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
$ apt-cache madison docker-ce
5:19.03.8~3-0~ubuntu-bionic

$ sudo apt-get install docker-ce=5:19.03.8~3-0~ubuntu-bionic docker-ce-cli=5:19.03.8~3-0~ubuntu-bionic containerd.io
$ sudo docker run hello-world

# https://docs.docker.com/compose/install/
# https://github.com/docker/compose 에서 latest version 을 확인 합니다.
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
$ docker-compose --version

$ docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
$ sudo usermod -aG docker ubuntu
$ newgrp docker
:

[Docker] Amazon Linux 에 Docker & Compose 설치 하기.

Cloud&Container/IaC 2020. 3. 31. 14:06

Amazon linux docker & docker-compose 설치)

$ sudo yum update
$ sudo yum install docker
$ docker version
...중략...
Cannot connect to the Docker daemon at unix:///var/run/docker.sock.
Is the docker daemon running?
$ sudo service docker start
$ docker version
Got permission denied while trying to connect to the Docker daemon socket at 
unix:///var/run/docker.sock: 
Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: dial unix /var/run/docker.sock: 
connect: permission denied
$ sudo docker version
$ sudo usermod -a -G docker ec2-user

# https://github.com/docker/compose 에서 latest version 을 확인 합니다.
$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

$ docker-compose up
Couldn't connect to Docker daemon at http+docker://localhost - is it running?

$ sudo groupadd docker
$ sudo usermod -aG docker $USER
$ newgrp docker 

$ docker-compose up
:

[Docker] Docker Compose 에서 volume 사용 하기

Cloud&Container 2020. 3. 30. 14:40

기본 문서는 아래 링크 참고 하시면 됩니다.

 

Reference)

https://docs.docker.com/compose/compose-file/#volumes
https://docs.docker.com/compose/compose-file/#volume-configuration-reference

 

두 가지의 syntax 를 제공 하고 있습니다.

  1. Short Syntax
  2. Long Syntax

1. Short Syntax 

https://docs.docker.com/compose/compose-file/#short-syntax-3

valumes:
  - ${SOURCE-PATH}:${DESTINATION-PATH}:${MODE}

${SOURCE-PATH} 에는 Host의 Path 또는 Volume Name 을 사용 할 수 있습니다.

 

Case 1) bind mount 형식으로 volume 생성이 됩니다.

services:
...중략...
  volumes:
    - /mount/data:/usr/share/elasticsearch/mnt:rw
    
    
$ docker inspect ${SERVICE-NAME}
...중략...
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/mount/data",
                "Destination": "/usr/share/elasticsearch/mnt",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            }
        ]
...중략...

 

Case 2) volume 형식으로 volume 생성이 됩니다.

- volume 사용 시 주의 사항은 Container 내부에 이미 생성 되어 있는 File System 을 사용

services:
...중략...
  volumes:
    - mount01:/usr/share/elasticsearch/data:rw
...중략...

volumes:
  mount01:
    driver: local      

$ docker volume ls --format "{{.Name}} : {{.Mountpoint}}"
megatoi-monitor-elasticsearch_mount01 : /var/lib/docker/volumes/megatoi-monitor-elasticsearch_mount01/_data

$ docker inspect ${SERVICE-NAME}
...중략...
        "Mounts": [
            {
                "Type": "volume",
                "Name": "megatoi-monitor-elasticsearch_mount01",
                "Source": "/var/lib/docker/volumes/megatoi-monitor-elasticsearch_mount01/_data",
                "Destination": "/usr/share/elasticsearch/data",
                "Driver": "local",
                "Mode": "rw",
                "RW": true,
                "Propagation": ""
            }
        ],
...중략...

 

2. Long Syntax

https://docs.docker.com/compose/compose-file/#long-syntax-3

기본 옵션만 살펴 보겠습니다.

자세한건 위 문서를 참고하세요.

  • type
    • volume
      • Volume 선언 시 Source 는 volumes: syntax 에서 named volume 선언이 되어 있어야 합니다.
    • bind
      • Source File System 이 만들어져 있어야 합니다.
  • source
    • Host File System  을 작성 합니다. 
    • Short Syntax 에서 처럼 Host 의 Path 또는 Volume Name 을 사용 할 수 있습니다.
  • target
    • Container File System 을 작성 합니다.

Case 1) bind mount 형식으로 volume 생성이 됩니다.

services:
...중략...
    volumes:
        - type: bind
          source: /mount/data
          target: /usr/share/elasticsearch/mnt
...중략...


$ docker inspect ${SERVICE-NAME}
...중략...
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/mount/data",
                "Destination": "/usr/share/elasticsearch/mnt",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
...중략...

 

Case 2) volume 형식으로 volume 생성이 됩니다.

- volume 사용 시 주의 사항은 Container 내부에 이미 생성 되어 있는 File System 을 사용

services:
...중략...
    volumes:
        - type: volume
          source: mount01
          target: /usr/share/elasticsearch/data
...중략...
volumes:
  mount01:
    driver: local
...중략...


$ docker inspect ${SERVICE-NAME}
...중략...
        "Mounts": [
            {
                "Type": "volume",
                "Name": "megatoi-monitor-elasticsearch_mount01",
                "Source": "/var/lib/docker/volumes/megatoi-monitor-elasticsearch_mount01/_data",
                "Destination": "/usr/share/elasticsearch/data",
                "Driver": "local",
                "Mode": "z",
                "RW": true,
                "Propagation": ""
            }
        ],
...중략...

hort Syntax 의 Case 2) 와 같이 사용도 가능 합니다.

:

[Docker] Image 다운로드 및 로컬 설치 하기

Cloud&Container/IaC 2020. 3. 30. 08:41

인터넷이 안되는 환경에서 설치를 해야 할 경우가 있을 수도 있어서 이미지를 다운로드 받아 설치 하는 명령어를 작성해 보았습니다.

찾아 보면 다 나와 있는 거라서 그냥 기억력을 돕는 차원에서 간단하게 작성 합니다.

 

- root 로 안할 경우 누락 되는 파일이 있을 수 있음.
- save : load
- export : import

 

로컬로 다운로드 받기)

$ sudo docker save [옵션] <파일명> [이미지명]
$ sudo docker save -o elasticsearch.tar docker.elastic.co/elasticsearch/elasticsearch:7.6.1

# docker-compose.yml 파일 안에 
# image: docker.elastic.co/elasticsearch/elasticsearch:7.6.1


이미지 올리기)

$ sudo docker load -i tar파일명
$ sudo docker load -i elasticsearch.tar


컨테이너 자체를 파일로 내리기)

$ sudo docker export <컨테이너명 or 컨테이너ID> > xxx.tar


컨테이너 올리기)

$ sudo docker import <파일 or URL> - [image name[:tag name]]

 

:

[Elasticsearch] Single node 실행

Elastic/Elasticsearch 2020. 3. 27. 16:05

Elasticsearch 버전이 올라 가면서 master node 를 최소 쿼럼 구성으로 해야 하는데요.

아마 잘 아시겠지만 Single node 구성을 원하시는 분은 아래 설정을 통해서 실행 하시면 됩니다.

 

[Single node 설정]

discovery.type=single-node

 

이 설정은 아래 설정이 포함되어 있을 경우 충돌이 납니다.

cluster.initial_master_nodes

 

본 설정을 주석 처리 하거나 삭제 하신 후 실행 시키면 정상 동작 합니다.

 

Elastic 공식 문서에 자세한 설명이 나와 있으니 참고 하시면 좋습니다.

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery-settings.html#modules-discovery-settings

:

[Docker] Docker Registry 구성 키워드

Cloud&Container/IaC 2020. 3. 27. 10:50
  • Nexus3
  • Harbor
  • S3

 

참고문서)

https://velog.io/@king/%EC%82%AC%EB%82%B4-Docker-Registry-%EB%A7%8C%EB%93%A4%EA%B8%B0-Nexus3-%EA%B8%B0%EB%B0%98-e9k69evm4a

https://engineering.linecorp.com/ko/blog/harbor-for-private-docker-registry/

https://goharbor.io/

 

:

[AWS] Spring Cloud Config S3 Backend 사용하기

Cloud&Container/AWS 2020. 3. 26. 10:57

Spring Cloud Config Server 설정)

 

[S3 설정]
- S3 버킷 생성
- 접근권한 부여

[ConfigApplication.java]

@SpringBootApplication
@EnableConfigServer
public class ConfigApplication {
  public static void main(String[] args) {
	SpringApplication.run(ConfigApplication.class, args);
  }
}


[build.gradle]

compile 'com.amazonaws:aws-java-sdk-s3'


[application.yml]

server:
port: 8888

spring:
  profiles:
    active: awss3
  cloud:
    config:
      server:
        awss3:
          region: ap-northeast-2
          bucket: s3config


[Config Server 접근 URL]

http://localhost:8888/${S3-FILE-NAME}/${PROFILE-NAME}

- 생성한 버킷 하위로 설정 파일 목록이 존재 해야 합니다.
- ${S3-FILE-NAME} 는 생성한 Bucket 아래 만든 설정 파일명 입니다.
- backoffice
- ${PROFILE-NAME} 은 설정 파일에 대한 프로필명 입니다.
- app1, app2

예제)
Config Server URL : 
http://localhost:8888/backoffice/app1

S3 :
megatoidiscons3config/backoffice-app1.yml
or
megatoidiscons3config/backoffice-app1.properties


[backoffice-app1.yml]

project.app1="backoffice-app1"


[backoffice-app2.yml]

project.app2="backoffice-app2"

 

Spring Cloud Config Client 설정)

[application.yml]

spring:
  cloud:
    config:
      name: backoffice
      uri: http://localhost:8888
      profile: app1,app2


[HelloController.java]

@RestController
public class HelloController {

  @Value ("${project.app1}")
  String projectApp1;

  @Value ("${project.app2}")
  String projectApp2;

  @RequestMapping("/app1")
  public String helloApp1() {
    return projectApp1;
  }

  @RequestMapping("/app2")
  public String helloApp2() {
    return projectApp2;
  }
}

 

git 사용 하는 건 문서들이 많이 나와 있어서 s3 로 정리해 봤습니다.

:

[Ubuntu] add-apt-repository: command not found 발생 시

ITWeb/개발일반 2020. 3. 25. 18:32

# add-apt-repository: command not found 에러가 발생 하면 아래와 같이 설치 하시면 됩니다.
$ sudo apt-get install software-properties-common

: