전체 글 65

[MariaDB] ERROR 2002 (HY000): Can't connect to local server through socket '/tmp/mysql.sock'

mariadb 설치 후 실행하려고 하니 위와 같이 에러가 계속 반복되었다. 혹시 mariadb가 정상적으로 동작은 하는 지 궁금해서 확인해보았더니 status가 stopped로 되어 있었다. Github 이랑 Google에 검색해봐도 명확한 답은 없었다. 대부분의 답변들이, "몇몇 프로그램들은 /var/mysql/mysql.sock 파일을 찾는다. 그런데 mac은 /tmp/mysql.sock에 존재하기 때문에 저 위치에 링크를 걸어둬야된다." 라고 했다. 힌트를 찾은 것 같다. ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 해결할 수 없었다. 그런데 대부분의 답변이 mysql.sock가 없을 것이라고 했는데 파일이 존재한다고? 그러면 mysql.sock 파일이 손상..

Database. 2022.01.31

[Docker] MariaDB 도커 이미지 생성하기

위 Dockerfile이 정상적으로 동작하려면 우선 /usr/local/var/mysql 디렉토리에서 db파일을 ./mysql 디렉토리에 백업해놓아야한다. 위와 같이, 이전에 생성했던 데이터베이스 'mydb'가 해당 디렉토리에 포함되어 있는 것을 확인해 볼 수 있다. 그러면 다음과 같이, 해당 mysql 디렉토리를 현재 docker-files 디렉토리에 copy 해보자. 정상적으로 copy가 된 것을 확인해볼 수 있다. 이제 Dockerfile을 작성해보자. 빌드가 정상적으로 완료되었다. 만약, 빌드가 정상적으로 동작하지 않고 상태가 Exited가 되었다면 다음과 같이 ENTRYPOINT에 "--user=root"를 작성해주고 다시 빌드하면 된다. $ docker run -d -p 3306:3306 --..

DevOps./Docker 2022.01.29

[Docker] ApiGateway Service 도커 이미지 생성하기

각각의 정보가 127.0.0.1 또는 localhost로 되어 있는데 컨테이너 내부에서 이렇게 사용하게 되면 컨테이너 자체가 되버리기 때문에, 외부에 있는 서비스를 뜻하는게 아니다. 그래서 다른 컨테이너 서비스의 ip adress를 사용해야하는데, 해당 ip adress는 동적으로 바뀔 수 있기 때문에 컨테이너 명을 명시하도록 한다. docker build -t gyeom/apigateway-service:1.0 . docker push gyeom/apigateway-service docker run -d -p 8000:8000 --network ecommerce-network \ -e "spring.cloud.config.uri=http://config-service:8888" \ -e "spring...

DevOps./Docker 2022.01.29

비대칭키를 이용한 Config Server 암호화/복호화 기능 구현

JDK KeyTool을 이용하여 Public, Private Key 생성할 수 있다. Private Key부터 생성해보자. keytool -genkeypair -alias apiEncryptionKey -keyalg RSA -Dname "CN=Daegyeom Kim, OU=API Development, O=ecplatform.co.kr, L=Seoul, C=KR" -keypass "test1234" -keystore apiEncryptionKey.jks -storepass "test1234" Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 90 days for: CN=Daegyeo..

Spring Framework. 2022.01.29

[Docker] docker: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:4369: bind: address already in use.

docker run 을 실행하던 중, 이미 4369 포트를 사용 중이라는 에러가 발생했다. lsof -i TCP:4369 // 해당포트의 사용중인 프로세스 리스트 조회 kill -9 21856 // 해당 프로세스 Kill 해당포트에서 사용중인 프로세스를 kill 한 뒤, 다시 프로세스 리스트를 조회한 결과 실행중인 프로세스는 없는 것을 확인했다. 그리고, 아까 에러를 발생하면서 Created 상태를 갖고 있는 Container를 삭제 해주었다. 다시 docker run 명령어 실행, 정상적으로 동작한 결과를 볼 수 있다.

DevOps./Docker 2022.01.28