목록현대 오토에버 클라우드 스쿨 (41)
Gom3rye

Docker ComposeDockerfile은 하나의 애플리케이션을 이미지로 만드는 수단여러 개의 애플리케이션을 패키징하는 경우 Dockerfile을 이용하게 되면 여러 개의 Dockerfile을 이용해야 한다.여러 개의 애플리케이션을 한 번에 패키징하는 도구가 Docker Compose이다.시스템 구축과 관련된 명령어를 하나의 텍스트 파일에 기재해 한 번에 시스템 전체를 실행하고 폐기까지 한 번에 하도록 도와주는 도구공통의 목적을 갖는 애플리케이션 스택을 docker compose yaml 코드로 정의해서 한 번에 서비스를 올리고 관리할 수 있는 도구가 docker compose이다.backend-read/write, frontend, db-mongo/mysql ⇒ 총 5개의 dockerfile이 필요..

Git Action을 이용해서 Docker Image를 DockerHub에 배포소스 파일을 작성하고 실행 후 Dockerfile을 이용해서 이미지 생성go 버전 확인 및 설치Mac M1의 경우는 아키텍쳐가 다르므로 확인하고 다운로드 해야 한다.apt를 이용해서 설치하는 경우는 최신 버전이 아닐 수 있으니 유의go version# 최신 버전 설치sudo snap install go --classic소스 파일 만들기 vi main.gopackage mainimport( "fmt" "os")func main(){ fmt.Fprintln(os.Stdout, "Go Go Go")}실행 시켜서 확인해보기go run main.go # Go Go Go이미지 생성 및 컨테이너 구동컨테이너를 만들고 commit 명령을 이..
Dockerfile 작성 시 유의 사항docker build 명령을 통해 Dockerfile에 작성한 명령을 순서대로 읽으면서 처리하고 자동으로 이미지를 생성하는데 이미지 빌드는 사용자와의 대화식 처리가 아니라 자동화된 빌드이다.따라서 패키지를 설치할 때 -y 옵션을 이용해서 대화식으로 설치하지 않고 자동으로 설치하도록 해야 한다.Python 이미지 빌드Dockerfile 만들어서 우분투에 python 설치FROM ubuntu:20.04 # 우분투 버전 명시RUN apt updateRUN apt install -y python 이미지 빌드docker build -t mypython:1.0 .파일명이 Dockerfile이 아니거나 다른 디렉토리에 있는 도커 파일을 빌드할 때는 -f 옵션을 이용해서 경로를 ..

IaC코드형 인프라수동 프로세스가 아닌 코드를 통해 인프라를 구축하고 관리하고 프로비저닝 하는 것인프라 사양을 담은 구성 파일이 생성되므로 구성을 편집하고 배포하기가 쉬워지고 동일한 환경을 프로비저닝 하도록 보장한다.구성 사양을 코드화하고 문서화함으로써 구성 변경 사항을 문서화하지 않고 임시로 변경하는 일을 막을 수 있다.버전 제어는 IaC의 중요한 부분으로 다른 소프트웨어 소스 코드 파일과 마찬가지로 구성 파일도 소스 제어가 필요하다.코드로 인프라를 배포한다는 것은 인프라를 모듈식 구성 요소로 분할하고 자동화를 통해 다양한 방식으로 결합을 할 수 있다는 의미이다.IaC로 인프라 프로비저닝(구성, 배포)을 자동화하면 애플리케이션을 개발하거나 배포할 때마다 개발자가 직접 서버, 운영체제, 스토리지, 기타 ..

MySQL 영속성 유지✅ 핵심 개념: 데이터는 컨테이너가 아닌 볼륨에 저장된다.컨테이너 = 프로그램 실행 환경볼륨 = 데이터 저장소 (외부 저장 공간)MySQL 컨테이너를 만들어서 데이터를 저장하고 컨테이너를 삭제하고 다시 생성해도 이전 데이터가 유지되도록MySQL 데이터는 /var/lib/mysql 디렉토리에 데이터베이스 별로 저장된다.이 경로를 호스트의 볼륨이나 디렉토리에 마운트해 놓으면, 컨테이너가 삭제되더라도 데이터는 사라지지 않는다.볼륨 생성docker volume create mysql-data-vol볼륨 확인docker volume ls볼륨을 사용하는 MySQL 컨테이너 생성docker run -dit --name=mysql-vtest -e MYSQL_ROOT_PASSWORD=비밀번호 -e ..

생성한 컨테이너에 접근외부에서 컨테이너 내부에 개방된 포트에 접근하려면 외부와 접속하기 위한 설정이 필요한데 이를 위해서 포트를 설정해줘야 한다.port forwarding호스트 머신의 포트를 Container 포트와 연결해 Container 밖에서 온 통신을 Container 포트로 전달한다.Container 포트를 Container 외부에서도 사용이 가능하다.-p 외부포트: 내부포트 형태로 작성한다.apache 컨테이너를 이용해서 웹서버를 만들어서 외부에서 접근한다. 이때 image 이름은 httpd 이고 내부 포트는 80번을 이용한다.docker run --name apa000ex2 -d -p 8080:80 httpd→ 항상 서버는 -d를 줘야 한다.컨테이너 중지 & 삭제docker stop apa..