[Docker] permission denied while trying to connect to the Docker daemon socket at unix 에러 해결
·
DevOps/Docker
Docker를 컨테이너에서 실행하거나, 호스트의 Docker 소켓(/var/run/docker.sock)을 컨테이너에 마운트하여 사용하는 경우, 예상치 못한 권한 문제로 인해 Docker 명령이 작동하지 않을 때가 있습니다. 이 글에서는 Docker 소켓 접근 권한 문제를 해결하는 방법을 단계별로 안내합니다.1. 증상[runner@ae8762224dd7 /]$ docker pspermission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.45/containers/json": dial unix /var/run/do..
[참고] centos 버전을 7이 아닌 8을 사용하는 이유 : /actions-runner/externals/node20/bin/node: /lib64/libm.so.6: version GLIBC_2.27' not found (required by /actions-runner/externals/node20/bin/node)
·
DevOps
Self-hosted runner 를 구축하기 위해서 Centos7을 컨테이너로 띄웠고 ci/cd 파이프라인을 도는 과정에서 오류가 발생하였다.🎃 발생 오류 Run actions/checkout@v2 with: repository: token: *** ssh-strict: true persist-credentials: true clean: true fetch-depth: 1 lfs: false submodules: false set-safe-directory: true /actions-runner/externals/node20/bin/node: /lib64/libm.so.6: version GLIBC_2.27' n..
[Centos] Failed to download metadata for repo 'appstream' 에러 해결
·
DevOps/Linux
🎃 발생 에러[root@e12ebc3453d8 /]# yum updateFailed to set locale, defaulting to C.UTF-8CentOS Linux 8 - AppStream 0.0 B/s | 0 B 00:00Errors during downloading metadata for repository 'appstream': - Curl error (6): Couldn't resolve host name for [Could not resolve host: mirrorlist.centos.org]Error: Failed to download metad..
[CI/CD] GitHub-hosted runner 와 Self-hosted runner 란?
·
DevOps
GitHub-hosted runner: GitHub에서 제공하는 서버에서 작업을 실행하는 방식. 사용자는 인프라를 관리할 필요 없이 자동으로 제공된 환경에서 빌드, 테스트, 배포 작업을 수행할 수 있다.Self-hosted runner: 사용자가 직접 서버를 설정하고 관리하여 GitHub Actions의 작업을 실행하는 방식. 자신의 인프라에서 작업을 처리하므로 사용자 제어가 가능하지만 유지 관리와 리소스 관리는 사용자의 책임이 된다.항목 GitHub-hosted Runner Self-hosted Runner인프라 제공 및 관리GitHub에서 제공하는 인프라에서 자동 실행사용자가 runner 서버를 지정하여 직접 서버를 설정 및 관리하여 실행비용제한된 무료 실행 시간 제공, 추가 리소스는 유료 플랜 필요..
[DevOps] Jenkins로 CI/CD 구축하기-1 (Jenkins 설치편)
·
DevOps
0. 들어가기 전에회사에서 하고 있는 프로젝트에 바로 ci/cd를 구축하면 좋겠다만 ci/cd가 처음인 나는 전에 했던 프로젝트를 가지고 ci/cd를 구축해보려고 한다.플리보따리 라는 프로젝트인데 이 프로젝트는 현재 팀원이 gitAction으로 cicd를 구축해두어서 나는 따로 포크해와 jenkins로 구성해보려고 한다.위와 같은 구조를 가지도록 목표하고 있다.기회가 된다면 Nginx도 추가해보고 싶다.우선 대충 이 정도만 띄워서 되는지만 확인해보는 것이 단기 목표이다!가보자고1. Jenkins 컨테이너 생성하기젠킨스 도커 컨테이너를 생성할 것이다.서버에는 이미 도커가 설치되어 있었다. 도커를 설치하는 과정은 넘어간다.swapfile 도 2기가 설정해두었다. 이 과정도 기록하지는 않는다. 참고링크에서 참..
[DevOps] CI/CD란..?
·
DevOps
0. 배경회사에서 참여하게 된 프로젝트로 인해 CI/CD를 공부 해야겠다는 생각이 들었다.프로젝트에서 나는 A 서비스를 제공하는 웹서버(간단하게 A서버라고하자)를 구축하고 수정해야 했다. ( 물론 내가 다하진 않는다. 나의 기여도는 개미 눈물만큼? )근데 A 서비스 서버는 대략 8개 ..? 정도 되는 서비스로 이루어져 있었다. (자세히는 모르지만 이게 MSA?)그래서 소스코드를 수정하고 테스트 서버에서 수정사항이 반영됐는지 확인하기 위해서는 1번 서비스에서 war 파일을 생성해서 옮기고…2번 서비스에서는 jar 파일을 생성해서 올리고…엔진엑스를 다시 실행시키고 ..어쩌구 저쩌구 하는 상당히 복잡한 과정 ,, 워드로 두, 세장이 작성될 만큼에 서버 구축 과정이 다시 수행되어야 한다.. ( 물론 생략하는 부..
[Docker] DockerHub에 이미지 올리기
·
DevOps/Docker
🐳이미지 저장소도커는 빌드한 이미지를 서버에 배포하기 위해 직접 파일을 복사하는 방법 대신 도커 레지스트리(Docker Registr)y라는 이미지 저장소를 사용한다.도커 명령어를 이용하여 이미지를 레지스트리에 push 하고 다른 서버에서 pull 받아 사용하는 구조로 git과 비슷하다고 생각하면 될 것 같다.도커 레지스트리는 오픈소스로 무료로 설치할 수 있고 설치형이 싫다면 도커(Docker Inc.)에서 서비스 중인 도커 허브Docker Hub를 사용할 수 있다.🐳Docker Hub도커 허브는 도커에서 제공하는 기본 이미지 저장소로 ubuntu, centos, debian등의 베이스 이미지와 ruby, golang, java, python 등의 공식 이미지가 저장되어 있다.일반 사용자들이 만든 이..
[Docker] Docker 권한 설정하기
·
DevOps/Docker
실행 환경Ubuntu 22.04🐳Docker 권한 설정Docker 에서 모든 도커 관련된 작업이 root 사용자에게만 권한이 허용되어 있기 때문에도커 명령어를 입력하기 위해서는sudo를 앞에 붙여주어야만 가능하다.이를 root 계정이 Host의 기본 유저에게 권한을 주도록 바꿔볼 것이다.아래 명령어는 새로운 터미널을 띄어서 수행하도록 하자!sudo usermod -a -G docker [사용자 이름] # [사용자이름]에게 권한주기sudo service docker restart위 처럼 명령어를 입력한 후 vm을 다시 시작해보자.아까와 똑같은 명령어를 sudo를 적지 않아도 잘 실행 됨을 확인 할 수 있다.이제 도커 세팅을 마쳤으니 제대로 실습해보자 !다음게시글 -> [Docker] Docker 컨테..
[Docker] 도커 설치하기
·
DevOps/Docker
실행 환경Ubuntu 22.04🐳Docker 설치⭐공식 문서 링크1. 우분투 시스템 패키지 업데이트리눅스 계열 운영체제에서 쓰이는 패키지 관리 툴인 apt를 최신 버전으로 업데이트 한다sudo apt-get update2. 필요한 패키지 설치sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-commonapt-transport-https : https를 통해 데이터나 패키지에 접근할 수 있다. (링크)ca-certificates : Certificate Authority - certificates라는 뜻으로 SSL기반 웹 애플리케이션이 SSL연결의 진위여부를 판별할 수 있게 해준다.cur..
[Docker] 버츄얼박스(VirtualBox) & 우분투(Ubuntu) 설치
·
DevOps/Docker
🐳버츄얼박스(VirtualBox) & 우분투(Ubuntu) 다운로드도커는 리눅스 컨테이너 기반의 기술이기 때문에 윈도우나 맥에서 실습하기 위해서는 가상의 리눅스 환경을 만들어 주어야한다.이를 위해 Vitrual Box와 Ubuntu를 사용하여 실습을 진행하려 한다.버츄얼 박스 버전 : VirtualBox-6.1.50-161033-Win우분투 버전 : ubuntu-22.04.3-desktop-amd64🔻 Ubuntu 다운로드🔻 Virtual Box 다운로드이전에 VirtualBox 7.0을 깔았을때는 아래와 같은 오류가 났다.설치 파일을 실행시켰을 때 아래와 같은 오류가 뜬다면 Microsoft Visual C++ 2019를 설치하자.🔻  Microsoft Visual C++ 2019 다운로드ARM..
[Ubuntu] 우분투 ↔ 윈도우 클립보드 공유 안됨 문제, VirtualBox 가상 광 디스크 삽입 문제
·
DevOps/Linux
⚙ 우분투↔ 윈도우 클립보드 공유 안됨 문제⚙ VirtualBox 가상 광 디스크 삽입 문제VirturalBox 의 Ubuntu에서 도커를 설치하는 실습을 하던 중우분투와 윈도우간의 클립보드가 공유되지 않은 것에 대한 불편함을 느끼게 되었다.전에 가상머신을 사용했을때 내 기억으론 복붙이 공유가 되었던거 같은데 왜 그런지 문제를 찾아보았다.첫 번째로는 [장치] - [클립보드 공유] - [양방향]전혀 먹지 않았다.또 검색해본 결과 이걸 해소하기 위한 게스트 확장을 설치하는 것이었다.[장치] - [게스트 확장 CD 이미지 삽입]띠용오류가 났다.이상태로 나는 우분투 버전도 바꿔서 다시 깔아보고VBox도 다시 깔아보고블로그에서 입력하라는 명령어들도 다 입력해보았지만 안됐다..찾아보니 자세한 정보를 봤을때 VERR..
[CI/CD] gitHub Action으로 CI/CD 구축하고 인간젠킨스 탈출하다! (feat. Self-hosted runner)
·
DevOps
0. 들어가기 전1. 환경Host 서버CentOS Linux 7 (Core)Linux 3.10.0-862.el7.x86_64Docker 버전Docker version 19.03.4Self-hosted runner 컨테이너CentOS Linux 8프로젝트Java 11Maven 2. 배경나는야 인간 젠킨스 … 수동 배포를 맡고 있지. 😎😂두 프로젝트를 진행하면서 본사 외부에서 본사 개발 서버에 배포 요청이 들어올 때마다 곤란하곤 했다. 또 작업 후에 배포까지 바로 못해드리는 경우가 있어서 수정사항 확인이 늦어지곤 했는데 이를 해결 하기 위해 CI/CD를 구축해보고자 마음먹었다. 3. 설계 히스토리gitAciton 을 선택하게 된 배경더보기CI/CD 툴은 Jenkins와 gitAction 중에 고민하였다...
[Docker] Dockerfile 기본 명령어와 최적화
·
DevOps/Docker
실행 환경VirtualBox 6.1.50CentOS🐳Dockerfile 기본 명령어FROMFROM :FROM ubuntu:16.04베이스 이미지를 지정한다.반드시 지정해야 하며 어떤 이미지도 베이스 이미지가 될 수 있다.tag 는 될 수 있으면 latest(기본값)보다 구체적인 버전(16.04)를 지정하는 것이 좋다이미 만들어진 다양한 베이스 이미지는 도커 허브에서 더 볼 수 있다. MAINTAINERMAINTAINER MAINTAINER anna@anna.comDockerfile을 관리하는 사람의 이름 또는 이메일을 정보를 적는다.빌드에 영향은 주지 않는다. COPYCOPY ... COPY . /usr/src/app파일이나 디렉토리를 이미지로 복사한다.일반적으로 소스를 복사하는데 사용한다.타겟 디렉토..
[Docker] Docker 이미지 만들고 컨테이너 생성하기
·
DevOps/Docker
실행 환경 VirtualBox 6.1.50 Ubuntu 22 🐳Docker 이미지 만들기 ( = Dockerizing) 도커는 하나의 어플리케이션을 이미지로 만들기 위해 컨테이너 상태를 그대로 이미지로 저장한다. 즉, 이미지로 만들 어플리케이션을 리눅스만 설치된 컨테이너에 설치하고 그걸 그상태 그대로 이미지로 저장한다. 가상머신의 스냅샷과 비스므리한 방식이다. 복잡한 과정이지만 좋은 샘플이 많이 공개되어 있어서 다행이다. 또한 컨테이너의 가벼운 특성과 레이어 개념을 이용하여 생성과 테스트를 빠르게 수행할 수 있다. 샘플은 Ruby로 만들어진 간단한 웹 어플리케이션을 이용할 것이다. Sinatra라는 가벼운 웹 프레임워크를 사용할 것이다. 1. 웹 어플리케이션 컨테이너 생성 들어가기에 앞서 다음 과정은 간..
[Docker] Docker 컨테이너 실행하기
·
DevOps/Docker
실행 환경 VirtualBox 6.1.50 Ubuntu 22.04 🐳Docker 버전 확인 Input sudo docker version Output Client: Docker Engine - Community Version: 25.0.1 API version: 1.44 Go version: go1.21.6 Git commit: 29cf629 Built: Tue Jan 23 23:09:23 2024 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 25.0.1 API version: 1.44 (minimum version 1.24) Go version: go1.21.6 Git commit: 71f..
[Linux] 우분투 터미널 안열림 문제 해결
·
DevOps/Linux
[좌측 하단의 메뉴버튼] - Terminal 기다려도 안열린다… 찾아보니 무인 설치 했을 경우 발생하는현상이라고 한다. Terminal 아래의 setting을 눌러서 아래와 같이 언어를 English - Canada로 바꿔주자! 짜잔
[Linux] sudo 명령어에 권한이 없을 때
·
DevOps/Linux
⚙ sudo 명령어에 권한이 없을때 sudo 명령어를 입력했을 때 위와 같은 오류가 뜬다면 root 권한이 없어서이다. $ su위 명령어를 입력하면 패스워드를 입력하라고 하는데 입력을 해준다. $ vi /etc/sudoers명령어를 입력해서 etc 디렉토리에 있는 sudoers 파일명을 가진 파일을 연다. 내리다 보면 아래 사진과 같이 적힌 부분을 찾을 수 있는데 이 부분 아래에 (username) ALL=(ALL:ALL) ALL이라고 추가해준다. username은 본인의 상황에 맞게 수정한다. 나는 username을 user로 해두어서 아래와 같이 작성해주었다. 결과 아주 잘된다.
[Docker] 도커의 기본 명령어
·
DevOps/Docker
🐳도커 명령어의 구조 docker [대상] [액션] [대상] : container(생략가능), image, volume, network 등 [액션] : ls, inspect, start, run 등 🐳도커 명령어 docker (container) create [이미지] 컨테이너를 생성하고 자동으로 시작하지는 않음 —name 옵션을 통해 컨테이너 명을 정할 수 있다. docker ps 실행(Up) 중인 컨테이너들의 목록을 확인 docker container ls 와 같음 docker start 컨테이너를 시작 생성해둔 컨테이너를 시작할 수 있다. docker stop 실행 중인 컨테이너를 종료 docker run 컨테이너를 시작하고 command를 실행 로컬에 이미지가 있다면 해당 이미지로 실행하고 없으면..
[Docker] 도커 엔진 아키텍처
·
DevOps/Docker
[Docker] 도커 이미지(Image)와 컨테이너(Container)
·
DevOps/Docker
🐳도커 이미지(Image)와 컨테이너(Container) 도커에서 가장 중요한 개념은 컨테이너와 이미지라는 개념이다. 이미지 (Image) 컨테이너를 만드는데 필요한 모든 파일과 설정값을 가진 읽기전용(Read-only) 템플릿. 실행에 필요한 파일과 설정값 등을 포함하고 있는 도커파일을 만든 후 DockerFile을 빌드하여 이미지를 생성한다. 하나의 이미지로 여러 개의 도커 컨테이너를 생성할 수 있으며 도커 이미지를 수정하여도 이미 생성하여 실행 중인 도커 컨테이너에는 영향을 주지 않는다. 마치 도넛 레시피로 도넛을 만들고 도넛 레시피를 변경한 것과 같다. Docker 레이어(Layer) 저장방식 도커 이미지의 내용이 일부 수정되었을 때 도커 이미지에 들어있는 모든 파일들을 다시 다운 받는 것은 매우..
[Docker] Docker와 컨테이너(Container) 그리고 어플리케이션의 배포 환경의 변화 (VM vs Docker)
·
DevOps/Docker
🐳Docker 란 ? 컨테이너 기반의 오픈소스 가상화 플랫폼 도커는 컨테이너를 관리하는 도구인 “컨테이너 런타임” 중 하나로 가장 유명한다. 컨테이너 (Container) 구동하려는 어플리케이션의 코드 뿐만 아니라 그 외에 필요한 부수적인 실행 환경까지 감싸서, 어디서든 쉽게 실행 할 수 있도록 해주는 제공하는 소프트웨어의 표준단위 컨테이너 박스에 다양한 화물을 넣을 수 있도록 규격화 되어 있고 트레일러와 같이 다양한 운송 수단으로 쉽게 옮길 수 있듯이 다양한 프로그램, 실행환경을 컨테이너로 추상화 하고 동일한 인터페이스르 제공해 프로그램의 배포와 관리를 단순하게 해주는 기술이다. 컨테이너 하나면 ! 조립PC, AWS, Azure, Google Cloud 등 어디서든 빠르고 안정적으로 실행할 수 있다. ..