본문 바로가기

DevOps

(13)
<Docker> 도커 이미지 만들고 올리기 1. 만들기 * 소개 - 지금까지는 공식적으로 제공되는 이미지만을 사용했다. 하지만 이미 존재하는 컨테이너를 이용하면 누구나 쉽게 이미지를 만들 수 있다. - 이미지를 만드는 방법에는 두 가지가 있다. 첫 번째는 commit 커맨드로 기존 컨테이너를 이미지로 변환하는 방법이고, 두 번째는 Dockerfile 스크립트로 이미지를 만드는 방법이다. docker commit - 위의 명령어를 통해 컨테이너를 이미지로 변환한다. 미리 컨테이너가 준비되어 있어야 한다는 번거로움이 있다. - Dockerfile에 스크립트를 작성하면 스크립트를 빌드하여 이미지를 만들 수 있다. 호스트 컴퓨터의 폴더에 파일을 두고 컨테이너에 넣을 파일들도 함께 넣어 아래의 명령어를 실행한다. docker build -t * 실습 - ..
<Docker> 도커 컨테이너의 실전 사용법 : Volume 1. 소개 - 도커 컨테이너는 일회용으로 동작하는 특징을 가지고 있어서 업데이트나 재시작 시 이전 컨테이너는 폐기되고 새로운 이미지로부터 새로운 컨테이너가 생성된다. 이 과정에서 기존에 편집한 파일이나 데이터는 사라진다. 따라서 컨테이너 밖에 데이터를 저장하고 마운트할 수 있는 기능이 필요하다. 2. 연결 * 파일 복사 - 파일 복사는 도커 컨테이너와 호스트(도커 엔진을 실행 중인 PC) 사이에서 파일을 복사하는 방법이다. 파일 복사는 컨테이너에서 호스트로, 호스트에서 컨테이너로 양방향으로 가능하다. # 컨테이너로 파일을 복사 docker cp : # 호스트로 파일을 복사 docker cp : - 위의 명령어는 cp 커맨드를 사용하여 파일을 복사하는 방법이다. 순서로 작성한다. 이를 실습하기 위해 필자 ..
<Docker> 도커 컨테이너의 연동 사용법 : Network 1. 소개 * 소개 - 이번 글에서는 여러 개의 도커 컨테이너를 연동시키는 방법에 대해 알아보도록 하자. 이를 위해 워드프레스를 구축하는 예제를 통해 배워볼 것이다. - 워드프레스는 워드프레스 프로그램 외에도 아파치나 데이터베이스, PHP 런타임 등을 필요로 한다. 그러므로 이번 장에서 배울 컨테이너 끼리의 연동을 배우기 적합하다. * 워드프레스 - 이번 실습에서는 워드프레스 공식 이미지를 사용하며, 이 이미지 안에는 워드프레스 프로그램 본체와 아파치, PHP 런타임이 포함되어 있다. 이 컨테이너와 MySQL 컨테이너를 DB로 활용하도록 하자. - 워드프레스는 블로그 생성 도구와 같은 것으로, 웹 사이트 작성자가 작성한 내용을 데이터베이스에 저장하고, 웹 사이트 열람자의 요청에 따라 웹 페이지를 보여준다..
<Docker> 도커 컨테이너의 기본 사용법 : Run 1. 생성 및 실행 * 컨테이너 생애주기 - 컨테이너를 생성하고 삭제하며 실행하고 정지시키는 도커 커맨드에 대해 알아보자. 보통은 개별적으로 docker create (또는 docker container create), docker start (또는 docker container start), docker pull (또는 docker image pull) 명령어를 사용하지만, 일반적으로 이러한 기능을 한꺼번에 수행할 수 있는 docker run 명령어를 사용한다. - 컨테이너를 폐기할 때에는 실행 중인 컨테이너를 삭제할 수 없으므로 먼저 정지시켜야 한다. 컨테이너를 정지시키려면 docker stop (또는 docker container stop) 명령어를 사용하고, 컨테이너를 삭제하려면 docker rm..
<Docker> 도커 사용을 위한 준비 1. 소개 * 도커를 사용하려면 - 도커를 사용하려면 먼저 도커 엔진이라는 무료 소프트웨어를 설치해야 한다. 이를 위해서는 리눅스 운영체제가 필요하다. 하지만 리눅스 운영체제를 사용하고 있지 않아도, 가상머신이나 클라우드 환경에 도커를 설치하여 사용할 수 있다. - 또한 윈도우나 MacOS 운영체제를 사용하는 경우에도 도커 데스크탑을 사용하여 도커를 활용할 수 있다. 이번 글에서는 도커 데스크탑을 활용하는 방법을 주로 설명하려고 한다. - 도커 데스크탑은 사용자에게 보이지 않는 가상의 리눅스 환경을 만들고, 이 환경에서 도커 엔진을 구동한다. 도커 데스크탑을 사용하면, 가상화 소프트웨어나 리눅스 운영체제를 별도로 설치하고 관리할 필요 없이, 도커를 간편하게 사용할 수 있게 되는 것이다. * 도커 설치 -..
<Docker> 도커의 구조와 장단점 1. 구조 * Docker의 동작 원리 - 앞선 포스팅에서 봤었던 사진을 다시 들고 왔다. 도커의 기본 동작 원리를 이해하기 위해서는, Docker 엔진이 어떻게 운영체제 위에서 동작하며 컨테이너를 관리하는지 알아야 한다. Docker 엔진은 운영체제 위에서 동작하며, 그 위에서 다양한 컨테이너를 실행시킨다. 각각의 컨테이너는 '리눅스 운영체제와 비슷한' 구조를 가지고 있다. - 운영체제가 하는 일은 소프트웨어나 프로그램의 명령을 하드웨어에 전달하는 것이다. 운영체제는 '커널'과 그 외의 주변 부분으로 구성되며, 주변 부분이 프로그램의 요청을 커널에 전달하고, 커널이 하드웨어를 관리한다. Docker에서는 컨테이너가 완전히 독립적이므로, 이 주변 부분이 컨테이너 내부에 존재하며, 이를 통해 프로그램의 명..
<Docker> 도커란 무엇인가 1. 소개 * 도커란 무엇인가 - 도커를 한마디로 정의하자면, 데이터 또는 프로그램을 격리시키는 기능을 제공하는 소프트웨어이다. 다양한 프로그램과 데이터를 각각 독립된 환경에 격리하는 기능을 제공하며, 운영체제(비슷한 것) 통째로 격리하는 기능을 갖고 있다. 도커를 사용하면 개인 컴퓨터를 마치 독립된 창고로 분리하고 데이터나 프로그램을 두는 것과 같다. 이 창고를 '컨테이너(Container)'라고 하며, 컨테이너를 다루는 기능을 제공하는 소프트웨어가 바로 도커이다. - 도커를 사용하려면 도커 소프트웨어의 본체인 '도커 엔진(Docker Engine)'을 설치해야 한다. 도커 엔진을 사용해 컨테이너를 생성하고 구동시킬 수 있다. 컨테이너를 만드려면 도커 엔진 외에도 컨테이너의 '빵틀'역할을 하는 '이미지..
<Github Actions> 깃헙 액션을 이용한 자동화 봇 만들기 1. 계획 - 최근 깃헙 액션을 통한 웹훅 셋팅을 하는 작업을 했었다. 깃헙액션을 써보긴 했지만 CI용으로만 써왔어서 다양하게 활용해본 것은 이번이 처음이었다. 실제로 트리거를 걸어서 이슈가 생기면 디스코드로 알린다던가 하는 등의 작업은 흔히 하는 것 같았다. 작업을 마치고 깃헙 액션으로 뭔가 더 할 수 없을까 생각했고, 크론잡을 돌릴 수 있다는 것을 알게 되었다. - 크론잡은 특정 기간마다 작업을 수행되게 하거나 특정 시간마다 작업을 반복 시키는 등의 스케줄링 작업을 의미한다. - 크론잡을 돌릴 수 있다는 것을 알게 되어 재밌는 프로젝트가 떠올랐다. 필자는 매일 여러개의 기술블로그를 둘러보는데 이 포스팅들이 한 곳에 모아져있다면 좋겠다는 생각을 종종 했다. 그래서 한 공간에 이 글들을 크롤링해서 매일 ..
<Git> 커밋 메시지 컨벤션 : 깃모지 1. 소개 * 소개 - 깃모지는 Git + Emoji 를 의미한다. 두 단어가 합쳐져 Gitmoji라 부른다. - 즉 커밋 메시지에 이모지를 붙여서 작성한다. - 보다시피 가장 앞에 이모지를 통해 커밋의 목적과 의도를 명확하게 표현한다. * 장점 - 위의 이미지에서도 볼 수 있듯 말하고자 하는바가 명확해진다는 장점이 가장 크다. ✨ 을 통해 기능을 나타내고, 🔧 을 통해 무언가 설정을 했다는 것을 바로 알 수 있다. - 한 메세지에 하나의 내용만 담을 수 있다. 깃모지를 사용함으로써 커밋의 단위가 좀 더 명확해지도록 강제된다. 이를 통해 커밋단위로 생각하게 된다. - 무엇보다 예쁘다. 귀엽다. 보기 좋다. * 단점 - 아마 깃모지를 처음 봤다면 거부감이 벌써 들 것이다. 필자도 그랬다. 어떻게 통일할 것..
<Git> 커밋 메시지 컨벤션 : 유다시티 1. 소개 - 지난 장에서 간단한 깃 커밋 컨벤션에 대해서 알아보았다. 이번 장에서는 가장 흔히 쓰이는 커밋 메시지 스타일인 유다시티의 스타일을 알아보자. 유다시티는 대규모 온라인 코스를 제공하는 교육기관이다. 유다시티는 이상적인 커밋 메시지에 대해 혼란을 겪는 학생들을 위해서 Git Commit Message Style Guide를 제공하고 있다. type: Subject body footer - 구조는 위와 같다. 지난 장에서 본 컨벤션과 다른 점은 제목에서 type을 명시하고 :(콜론)으로 구분한다는 것이다. 2. 구성 * 타입 - 유다시티에서는 타입을 다음 7개중 하나로 쓸 것을 권장하고 있다. - feat : 새로운 기능과 관련된 것을 의미한다. - fix : 오류와 같은 것을 수정했을 때 사용..