유튜브 채널 어라운드 허브 스튜디오 - Around Hub Studio  의 docker 강의 내용을 실습한 내용 일부입니다.

채널 : https://www.youtube.com/@around.hub.studio

강의 재생목록 : https://www.youtube.com/playlist?list=PLlTylS8uB2fDLJRJCXqUowsOViG-ZKnWy

 

docker container ls

container 목록 확인

docker container ls -a

-a 옵션 : 모든 컨테이너 목록을 보여줌 (default 실행중인 컨테이너만 보임)

 

 

container 목록 확인

실행 화면

 

 

준비
docker-compose.yml 파일
services:
  chris_db:
    image: mariadb:10.6 # mariadb 10.6 버전 이미지 사용
    container_name: db_master # container 이름 설정
    restart: always
    environment:
      MARIADB_ROOT_PASSWORD: 1q2w3e4r
      MARIADB_DATABASE: springboot
      MARIADB_USER: chris1108
      MARIADB_PASSWORD: 1q2w3e4r
    volumes:
      - ./master_db/data:/var/lib/mysql #각종 log와 index등이 volume이 저장되는 디렉토리
      - ./master_db/config/:/etc/mysql/conf.d # 이전에 나왔던 ./master/config/my.cnf 를 써줌으로써 설정을 reference 함.
    ports:
      - "3307:3306" # 이 옵션은 docker engine 에게 각 container 에게 포트를 수
    
  chris_redis:
    image: redis:7.0.0
    restart: always
    ports:
      - "6380:6379"
docker-compose-custom.yml 파일 
services:
  chris_db:
    image: mariadb:10.6 # mariadb 10.6 버전 이미지 사용
    container_name: db_master # container 이름 설정
    restart: always
    environment:
      MARIADB_ROOT_PASSWORD: 1q2w3e4r
      MARIADB_DATABASE: springboot
      MARIADB_USER: chris1108
      MARIADB_PASSWORD: 1q2w3e4r
    volumes:
      - ./master_db/data:/var/lib/mysql #각종 log와 index등이 volume이 저장되는 디렉토리
      - ./master_db/config/:/etc/mysql/conf.d # 이전에 나왔던 ./master/config/my.cnf 를 써줌으로써 설정을 reference 함.
    ports:
      - "3308:3306" # 이 옵션은 docker engine 에게 각 container 에게 포트를 수
    
  chris_redis:
    image: redis:7.0.0
    restart: always
    ports:
      - "6381:6379"

     

 

docker compose up

container 를 만들고 실행한다.

 

docker compose -f 파일명

-f 옵션  : copmose 설정 파일을 설정한다. (없을 경우 docker-compose.yml 파일로 지정됨)

 

 

docker-compose.yml (Default) , docker-compose-custom.yml (지정) 을 실행해본 결과

 

BerReader.zip
1.83MB

 

구글, 네이버에 아무리 찾아도 찾지 못하던 BerReader..

검색 알고리즘 문제인지 무엇이 문제인지 모르겠지만 누군가는 내 블로그를 통해서 필요한 것을 얻어 갔으면 좋겠다..

 

네 줄 요약

1. https://slproweb.com/products/Win32OpenSSL.html에서 운영체제에 맞는(Win64 / Win32) 파일 다운로드.

2. 설치파일로 윈도우에 설치

3. 윈도우 환경변수로 OpenSSl 설치폴더 (C:\Program Files\OpenSSL-Win64\bin) 추가

4. https://slproweb.com은 안전한가? 매우 높은 확률로 Yes

 

 

 

1. OpenSSL 설치파일 다운로드

https://slproweb.com/products/Win32OpenSSL.html

하단 링크 중 운영체제에 맞는 (윈도우 비트수에 맞는) 버전을 다운로드합니다.

가급적이면 최신버전으로 다운로드하는 것을  추천드립니다.

 

링크가 불안하신 분들을 위해 설명을 드리자면 

 

OpenSSL은 오픈소스로 공개되어 있는데 이를 사용하기 위해서는 소스를 직접 빌드해야 사용 가능합니다. 빌드 하는 번거로움을 줄여주고자 일부 사용자들이 각 운영체제별로 사용가능한 OpenSSL로 빌드해서 제공하고 있는데, 위의 slproweb.com는 그중에 윈도우 용 설치파일을 제공하는 사이트입니다.

 

openssl.org의 위키에서 Third party OpenSSl Binary distrubitions로 설명하고 있는 사이트 중 하나이므로 OpenSSL과 같은 오픈소스를 신뢰할 수 있다면, slproweb.com 또한 신뢰해도 될 듯합니다.

 

2. 설치파일 설치 

 

 

 

 

 

 

Donate 는 하지 않더라도 감사한 마음가짐을 갖자

 

 

3. 윈도우 환경변수 추가 

3-1. 아래의 방법 중 하나로 시스템 속성 설정 창 열기

- cmd 창에서 sysdm.cpl

sysdm.cpl 

- 윈도우 키 > '환경 변수' 검색하여 > [시스템 환경 변수 편집 ]

 

3-2. [고급] 탭 > [환경 변수] 를 클릭합니다.

3-3. 'Path' 선택 후 [편집]을 클릭합니다.

3-4. [새로 만들기] 클릭 후 위 설치 과정에서 OpenSSL 설치한 디렉터리의 'bin' 디렉토리 추가

 

 

4. 설치 완료 

4-1. 결과 확인

cmd 창에서 openssl --version  명령어로 정상 설치되어 있는 것을 확인할 수 있습니다.

openssl --version

 

4-2. 설치 디렉터리에서 직접 확인

만약 환경변수 등록을 하지 않았으면 아래와 같이 설치 디렉터리로 이동하여 테스트 가능합니다.

 

'openssl'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
배치 파일이 아닙니다.

환경 변수 등록까지 하였는데도 openssl을 인식하지 못한다면 <4-2>의 방법으로 설치 디렉터리로 가서 설치가 정상적으로 이루어졌는지 테스트 먼저 해봅니다.

 

설치가 정상적으로 되어 있다면 cmd 경우 cmd 창 재시작하면 정상 동작하는 경우 있습니다.

 

 

'Window' 카테고리의 다른 글

특정 포트 프로세스 죽이기  (0) 2023.07.24

2023 다간다 

시간이읍다

 

 

 모던 자바 인 액션 라울-게이브리얼 우르마 , 마리오 푸스코 , 앨런 마이크로프트 우정은 한빛미디어
자바 성능 튜닝 스캇 오크스 최가인 옮김 O'REILLY
자바 성능 튜닝 이야기 이상민   제이펍
자바 트러블 슈팅 이상민   제이
가상 면접 사례로 배우는 대규모 시스템 설계 기초 알렉스 쉬 저자 이병준 인사이트
마이크로서비스 아키텍처 구축 가이드 김용욱   한빛미디어
카프카 핵심 가이드 그웬 샤피라 , 토드 팔리노 , 라지니 시바람 , 크리트 페티 이동진 O'REILLY
더 시스템(The System) 스콧 애덤스 김인수  
Real MySQL 8.0
백은빈, 이성욱 
   

https://product.kyobobook.co.kr/detail/S000001813652

 

아주 작은 습관의 힘 | 제임스 클리어 - 교보문고

아주 작은 습관의 힘 | 더 이상 아무것도 할 수 없을 것 같았던 때 조금씩 시도한 아주 작은 일들이 삶을 바꿨다!단계적이고 체계적인 자기계발 방법을 찾는 사람들을 위한 『아주 작은 습관의

product.kyobobook.co.kr

 

책 제목 : 아주 작은 습관의 힘. 최고의 변화는 어떻게 만들어지는가

추천 : 3.5/5

장점 :

    습관에 관한 많은 이야기들에 대해 새로운 관점을 제공하여 생각할 거리를 준다.

    자기 계발서 중에 다른 책들보다 더 과학적이고 논리적인 근거들을 제시한다.

    자기 계발서답게 나의 습관들에 대해 개선할 여지를 준다.

단점 : 

    논리적이고 과학적인 만큼 자기 계발서 중에서는 쉽게 읽히지 않는 편이다.

    

 

수백 수천 권의 자기 계발서가 시중에 있다.

모든 책은커녕 사실 10권 남짓 혹은 많아야 20권 정도의 자기 계발서를 읽은 와중에 깨닫는 점에는 항상 공통점이 있었다.

그 책들이 말하던 주제는 다양하지만 공통점으로는 이미 그 답을 알고 있었다는 것이다.

습관, 인생 목표, 마음가짐 등 수많은 분야에 대해 좋은 조언을 해준다.

다만 그 조언은 대부분의 사람들이 이미 뻔하게 알고 있는 내용이다.

매번 비슷한 상황을 겪으면서도 그런 책들을 다시 읽고, 그 책들이 베스트셀러가 되는 이유가 무엇인지에 대해 생각해 보았다.

 

자기 계발서를 읽는 동안만큼은 나는 그 책 대로 생활한다.

 

읽고 있는 책에서 새벽 일찍 일어나서 기적을 경험하라고 하면, 나는 아침 알람 시간을 더 이른 시간으로 바꾼다.

읽고 있는 책에서 꾸준한 무언가 사소한 행동이라도 좋은 습관으로 만들라고 하면 나는 내 사소한 습관에 대해 고민하고 바꾸도록 노력한다.

 

사실 누구나 아는 뻔한 이야기지만 누구나 알다시피, 실천하지 못하는 분야들이 많다.

다만 자기 계발서에는 이런 것들을 실천하게 만드는 힘이 있다.

 

이것조차도 사실 뻔한 이야기지만

다시 한번 생각해 보자. 

지금까지 읽었던 자기 계발서를 읽을 때의 나의 모습과

언젠가부터 천천히 그런 모습이 사라지지는 않았는지.

 

그럼 나는 그 달라진 모습을 유지하려면

같은 책 혹은 같은 정답을 말하는 책을 꾸준히 반복적으로 읽어야 할까?

 

그렇지 않다.

동물에게는 습관이라는 것이 있고

인간에게는 그 습관을 만들 수 있는 방법을 학습할 능력이 있다.

 

반복적으로 특정 자기 계발서를 읽지 않고도 그 책에서 말하는 교훈을 계속해서 실천하고 싶다면 이를 습관으로 만들어라. 좋은 행동을 습관으로 정착시킬 수 있는 방법이 이 책에서 다루는 이야기 중 하나다. 

 

이 책을 통해 지금 유지하고 있는 건설적인 행동들의 패턴이 

내 몸에 습관으로 남길 바란다.

Web server failed to start. Port 8080 was already in use.

 

0. 문제의 발단 - 프로세스를 죽이지 않고 인텔리제이 종료

인텔리제이를 종료할 때 인텔리제이의 프로세스가 실행 중이라

실행 중인 프로세스를 종료할지 Disconnect 버튼을 통해 그냥 Intellij만 종료할지를 묻는 화면이 나온다. 

이때 Disconnect를

 

***************************
APPLICATION FAILED TO START
***************************

Description:

Web server failed to start. Port 8080 was already in use.

Action:

Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.


Process finished with exit code 1

 

 

이미 다른 곳에서 8080 포트를 사용 중이라고 나옵니다.

기존에 죽이지 않은 프로세스에서 해당 포트를 사용 중이기 때문에

서버 실행이 안 되는 문제가 발생합니다.

이때 아래의 방법으로 해당 프로세스를 종료시킬 수 있습니다.

 

1. PID 확인하기 

먼저 강제 종료를 시키려면 어느 프로세스에서 8080 포트를 사용 중인지 확인해야 합니다.

찾는 방법은 아래와 같이 cmd 화면에서 

netstat 명령어를 통해 특정 포트를 사용하고 있는 프로그램의  PID를 확인할 수 있습니다.

이때 cmd 콘솔창은 관리자 권한으로 실행시켜야 합니다.

netstat -anbo 명령어를 사용하여 원하는 값을 얻을 수 있고
더 많은 netstat 명령어는 netstat --help 혹은 netstat -? 를 통해 확인 가능합니다.

C:\Windows\System32>netstat -anbo

활성 연결

  프로토콜  로컬 주소              외부 주소              상태            PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       1232
  RpcSs
 [svchost.exe]
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
 소유권 정보를 가져올 수 없습니다.
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       6600
 [mysqld.exe]
  TCP    0.0.0.0:5040           0.0.0.0:0              LISTENING       12412

이때 너무 많은 결과가 나와서 원하는 결과를 찾기 힘들다면 find 명령어를 통해 특정 텍스트를 포함하는 결과만 출력되게 할 수 있습니다.

find 명령어는  linux의 grep과 유사한데 find "찾을 문자"와 같이 "를 통해 입력합니다.
C:\Windows\System32>netstat -anbo | find "8080"
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       47388
  TCP    [::]:8080              [::]:0                 LISTENING       47388

 

이렇게 해서  PID 확인을 완료했습니다.

 

2-1. cmd를 통한 프로세스 kill 

이제 PID를 획득했으니 taskkill이라는 명령어를 통해 특정 프로세스를 종료시킬 수 있습니다.

 

taskkill /pid 포트번호
특정포트번호의 프로세스를 종료시킵니다.

 

 

C:\Users\chris>taskkill /pid 47388
오류: 프로세스(PID 47388)를 종료할 수 없습니다.
원인: 이 프로세스는 /F 옵션을 사용하여 강제로 종료해야 합니다.

해당 프로세스를 종료시켜도 문제가 발생하지 않는다는 것을 알고 있으니 강제 종료를 시켜줍니다.

 

taskkill /pid 포트번호 /f
/f 강제 종료 옵션
옵션을 통해 권한 등의 문제로 인해 간혹 종료시킬 수 없을 때 강제로 종료할 수 있게 해 줍니다.
C:\Users\chris>taskkill /pid 47388 /f
성공: 프로세스(PID 47388)가 종료되었습니다.

 

 

2-2. 작업관리자 이용해서 프로세스 종료하기

cmd 가 아닌 윈도의 작업관리자를 통해서도 프로세스를 종료할 수 있습니다.

기본적으로 작업관리자에서는 PID 가 나오지 않기 때문에 위 필드명 부분에서 우클릭하여 PID를 체크해 줍니다.

 

여기서도 수많은 프로세스로 인해 원하는 프로세스를 찾기 힘들기 때문에 PID를 한번 눌러 PID 기준으로 정렬한 후 

해당 PID 를 통해 프로세스를 찾은 후 우클릭하여 작업 끝내기로 프로세스를 종료시켜 줍니다.

 

사실 이 모든 과정이 번거로우니 

cmd에서 전부 해결합시다.

 

3. 결과 확인

서버 다시 실행해 보면 정상적으로 구동되는 것 확인 완료

'Window' 카테고리의 다른 글

window openssl 설치하기  (1) 2024.06.25

인텔리제이 테스트 실행시 

@DisplayName 을 통해 설정해둔 이름이 한글일 경우 깨지는 현상 해결방법

 

 

요약. 

1. 인텔리제이설치폴더\bin\idea64.exe.vmoptions  파일에

2. -Dfile.encoding=UTF-8 한줄 추가 

 

 

 

@DisplayName 을 통한 테스트 이름 표
한글 깨짐 현상

 

윈도우 기준

인텔리제이 설치경로의 

bin 폴더의 idea64.exe.vmoptions  파일을 수정

 

 

인텔리제이 설치 폴더

 

-Dfile.encoding=UTF-8

추가 

 

UTF-8 설정 추가

 

 

 

완료!

 

 

Mac OS 는 기본적으로 UTF-8 설정이 되어있다. 

 

'Tools > IntelliJ' 카테고리의 다른 글

인텔리제이 대소문자 구분 없이 자동완성  (0) 2023.04.18
IntelliJ 단축키 모음_v1  (0) 2023.04.05

1. H2 DB 실행

2. 윈도우 하단 트레이의 H2 > Create a new database

3. Database path 지정 후 생성

기본 위치는 C:\Users\사용자계정\ 

 C:\Users\사용자계정\DB이름 구성으로

비밀번호 입력 안 하면 생성이 안됨

 

정상적인 생성 확인

 

ALTER USER SA SET PASSWORD ''

4. 비밀번호 제거 방법 

4.1 - DB 접속

 

4.2 - 비밀번호 변경

ALTER USER SA SET PASSWORD '';

 

 

 

 

'DB' 카테고리의 다른 글

heidi SQL 블록선택 단축키  (0) 2022.02.08

+ Recent posts