만쥬의 개발일기
[Docker / Trouble Shooting] - 도커 설치 또는 apt-get update 중 gpg error : NO_PUBKEY XXXXXXXXXXX 해결법 총 정리
🛠️TOOL/🐳Docker 2024. 2. 14. 16:09

본 포스팅에서는 원격 서버에 도커 설치 중 발생한 에러에 대해 다룬다. 도커를 설치하려고 하면, 우선 apt-get update를 실행하게 되는데 이 때 gpg error가 발생할 때가 있다. 에러상황: $ sudo apt-get update Hit:1 bionic InRelease Get:2 bionic InRelease [4,595 B] Get:3 stable InRelease [1,825 B] Err:3 stable InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 4EB27DB2A3B88B8B 그 에러를 해결하던 중 내가 겪은 모든 에러에 대해 다뤄보겠다. ..

[Docker] - 도커가 active 상태이나 빌드에 실패할 때 : ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
🛠️TOOL/🐳Docker 2024. 1. 23. 14:12

상태를 보면 다음과 같이 도커는 문제없이 active 상태이지만, 빌드에 실패할 때가 있다. $ sudo systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2024-01-23 11:51:01 KST; 1min 6s ago Docs: https://docs.docker.com Main PID: 25391 (dockerd) Tasks: 10 CGroup: /system.slice/docker.service ..

article thumbnail
[Docker] - Docker 개념 정리 및 예제로 보는 작동 원리
🛠️TOOL/🐳Docker 2024. 1. 22. 13:44

본 포스트는 Docker에 대해 더 이해하기 위한 글입니다. 개요 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 서비스 관리자는 도커라이징(Dockerizing) 된 컨테이너가 어떤 런타임을 필요로 하는지, 어떤 라이브러리와 코드를 필요로 하는지 전혀 알 필요가 없다. 다시 말해, 도커를 사용하면 OS 환경설정, 언어, 라이브러리, 시스템 도구 등이 설치된 환경을 그대로 이미지로 빌드할 수 있다. 그저 컨테이너를 어딘가에서 가져와서 서비스를 운영할 컴퓨팅 환경에서 실행하기만 하면 된다. 실행된 서비스는 컴퓨팅 환경과 독립된 가상의 환경에서 실행되며, 일관된 결과를 보장한다. Docker는 VS Virtual machine 혼동하기 쉽지만, Docker는 virtual machine과는 아예 다른 개..

[Docker] - 컨테이너 종료 안될 때 : Error response from daemon: cannot stop container: 8b25ecab3b40: tried to kill container, but did not receive an exit event
🛠️TOOL/🐳Docker 2024. 1. 17. 17:58

가끔가다 docker rm이나 docker stop 같은 명령어들이 먹통이 될때가 있다. rm 같은 경우는 docker rm -f 등의 명령어로 해결될 때가 있으나, docker stop같은 경우는 그냥 docker service를 재시작하는 것이 건강에 이롭다. systemctl restart docker 단, 재시작 시 실행 중인 컨테이너들이 종료되어 docker ps -a에서 확인할 수 있다. 그 중 항시 실행시켜줘야 하는 컨테이너들은 다시 docker start로 실행 시켜주자. reference https://stackoverflow.com/questions/70434777/cannot-kill-container-container-id-tried-to-kill-container-but-did-n..

article thumbnail
[Docker] - Docker Volume이 필요한 이유와 로컬 저장 위치
🛠️TOOL/🐳Docker 2024. 1. 17. 17:44

Docker Volume을 설정하는 이유는 여러가지가 있다. host disk의 일정 부분을 Docker에 할당하여 컨테이너가 종료될때 데이터가 손실되지 않도록 로컬에 백업하려고 하는 목적, Docker의 log나 outputfile 등의 결과물을 컨테이너로 접속하지 않고 확인하는 등등 여러 필요성이 있다. |그렇다면 host disk가 할당한 Volume의 실제 위치는 어디있을까? 리눅스의 경우 다음 명령어를 통해 확인 가능하다. docker volume inspect (volume 명) 위와 같이 Mountpoint가 바로 실제 볼륨의 위치인데, 바로 해당 위치로 이동하려고 하면 권한 문제가 생긴다. 이는 docker 경로와 볼륨에 대한 권한을 주어야 하는데, 다음 명령어들로 권한을 준 뒤, 접속해보..

article thumbnail
[Docker] - 배포 서버와 개발 환경의 Platform이 다를때 : The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) ...
🛠️TOOL/🐳Docker 2024. 1. 17. 16:14

문제 상황 개발환경에서 DockerHub에 Docker 이미지를 푸시하고, 배포서버에서 pull해서 사용하려고 하자 실행시 WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested 와 같은 에러가 발생했다. 이는 개발환경은 WSl2 Ubuntu (linux/amd64) 이고, 배포 서버는 linux/arm64 아키텍처이기 때문이다. 따라서 로컬에서 docker image를 빌드 시, 해당 아키텍처용 이미지를 만들어주어야 한다. 이를 위해선 docker buildx가 필요한데, buildx란 다..

article thumbnail
[Project] - Web Sublink Crawler for Dynamic Web
📑Project , 대외활동 2024. 1. 10. 17:47

목표: Dynamic Web도 크롤링 가능한 Web Sublink Crawler 제작 요구사항 불특정 다수의 웹사이트의 하위 링크를 모두 찾는다. SPA에도 통용되어야 한다. 시간이 너무 오래걸려선 안된다. 모듈화 가능하게 제작한다. 첫 번째 시도 : SEO 크롤러 사용 Screaming frogm, Moz 등 다양한 SEO 크롤러 활용 SPA가 아닌 웹사이트의 경우 모든 하위링크를 잘 찾는 모습이다. 여기서는 대략 266개의 하위 링크를 찾았고, 시간은 대략 3분 정도가 걸렸다. SPA의 경우는 하위링크를 잘 찾지 못하는 것으로 확인되었다. 장점 : 사용이 쉽다 SPA가 아니라면 모든 링크를 잘 찾는다. 단점 : 유료 플랜이 있다. 시간이 오래걸린다. SPA의 경우 하위 링크를 찾지 못한다. 두 번째 ..

article thumbnail
[CI/CD] - 도커와 젠킨스를 사용한 CI/CD -2 (도커의 설치부터 자동배포까지)
♾️DevOps/♾️CI & CD 2023. 10. 22. 02:16

2023.10.21 - [분류 전체보기] - [CI/CD] - 도커와 젠킨스를 사용한 CI/CD -1 (도커의 설치부터 자동배포까지) 도커의 설치와 기본 세팅은 위 포스팅에 정리되어있다. 젠킨스 이미지 다운 docker pull jenkins/jenkins:lts 먼저 docker 명령어를 이용해 jenkins 이미지를 다운받는다. docker images 를 통해 내가 다운받은 이미지 목록을 볼 수 있고, 이렇게 젠킨스가 잘 다운된 것을 확인할 수 있다. 젠킨스 이미지를 컨테이너화 docker run -d -p 8088:8080 -v /jenkins:/var/jenkins_home --name anna_jenkins -u root jenkins/jenkins:lts 이제 젠킨스 이미지를 컨테이너에 올려..