도커 이미지를 사용함에 있어서 조직 내에서 컨테이너 서비스를 이용할 때 이미지의 관리와 공유가 중요하게 되었다. 이미지의 관리와 공유를 도와주는 서비스가 이미지 저장소이다. 이미지 저장소 중 도커 허브 (Docker Hub) 를 이용하여 이미지를 관리하는 방법을 알아본다. 다음 링크에 접속하면 도커 허브의 홈 페이지가 보인다. https://hub.docker.com Docker Hub Container Image Library | App Containerization Build and Ship any Application Anywhere Docker Hub is the world's easiest way to create, manage, and deliver your teams' container ap..
이번 글에서는 도커 컨테이너를 실제 배포하기 위해 도커 이미지로 빌드하는 것에 대해 알아보려고 한다. 도커 이미지 구조를 알아보고, Dockerfile에 대해 알아본다. 도커 이미지 구조 다음 이미지는 도커 이미지의 구조를 도식화한 그림이다. 왼쪽은 도커 이미지이고, 오른쪽은 도커 컨테이너이다. Docker Image에는 ubuntu, nginx, web app 의 세 가지 이미지로 구성되어 있다. nginx는 ubuntu 를 기반으로 만들어졌다고 가정하고, web app 이미지는 nginx 이미지를 기반으로 만들어졌다고 가정하겠다. Ubuntu 이미지의 경우 Layer A, B, C 의 세 레이어로 구성되어 있는 것을 볼 수 있는데, 실제로 도커 이미지의 구조는 레이어 아키텍처로, 새로운 변경 사항이 ..
컨테이너를 관리함에 있어 로그를 어떻게 관리할 것인가는 운영 측면에서 중요한 사항이다. 이번 글에서는 컨테이너의 로그를 확인하고, 호스트 운영체제에서 로그는 어디에 저장되는지, 로그 용량 관리 등에 대해 알아보고자 한다. 표준 출력 (STDOUT), 표준 에러 (STDERR) 애플리케이션에서 로그를 다룰 때, 일반적으로 해당 언어에서 지원하는 로그 프레임워크를 사용하여 표준 출력이나 ElasticSearch 와 같은 서비스와 연동하는 등 다양한 방법이 있는데, 도커 컨테이너에서는 STDOUT과 STDERR 로 내보내는 것을 표준으로 삼아야 한다. 도커가 해당 출력 로그를 쌓아 로깅 드라이버가 처리할 수 있도록 하는데, 로깅 드라이버를 다양하게 제공한다. 본인의 사용 목적에 맞는 드라이버를 선택하여 사용하..
도커의 네트워크 구조를 알아보고, 실행시키는 컨테이너의 포트를 노출시키는 방법을 알아보고, Expose 와 Publish 에 대해 알아본다. 도커 네트워크 구조 도커를 호스트 운영체제에 설치하면 기본적으로 여러 네트워크 드라이버가 설치된다. 기본적으로 도커 컨테이너를 실행할 때 사용할 네트워크를 지정할 수 있다. eth0 : 호스트에서 사용하고 있는 기본 네트워크인데, EC2를 사용하고 있다면 EC2 의 private IP 가 설정되어 있는 네트워크 장치이다. 컨테이너를 실행한 후 네트워크 장치 목록을 확인해 보면 eth0과 l0 의 두 가지 네트워크가 설치되어 있는 것을 확인할 수 있다. docker0 : 네트워크를 따로 지정하지 않으면 기본적으로 생성되는 docker0 이라고 하는 브릿지 네트워크를 ..
이번 글에서는 도커의 명령어 중 exec 명령어에 대해 다루어 보고자 한다. exec 명령어는 실행 중인 컨테이너에 특정 명령어를 실행하는 도커 명령어이다. 기존에 실행 중인 컨테이너에 대해 특정 이슈를 해결하기 위해 빈번하게 사용되는 명령어이다. 기본적인 명령어 체계는 다음과 같다. docker exec [container] [command] 우선 실습을 위해 test-container 의 이름을 가진 nginx 이미지 기반의 컨테이너를 하나 띄워 본다. docker run -d --name test-container nginx 현재 실행 중인 것을 확인한 후, exec 명령어를 이용하여 env 명령어를 전달해 본다. 다음과 같이 컨테이너의 환경변수가 나열되는 것을 확인할 수 있다. docker exe..
이번 글에서는 도커 컨테이너의 환경변수에 대해 공부해보려고 한다. 도커 컨테이너를 실행할 때 필요한 변수, 파일과 같은 것들을 주입하여야 하는데, 컨테이너에 변수를 주입하는 방법으로 가장 대표적인 방법이 환경변수를 통한 방법이다. 환경변수를 어떻게 주입할 수 있는지 다루어 본다. 도커를 통해 환경변수를 주입하는 방법은 두 가지가 있다. -e 옵션을 이용하여 docker run 시에 환경변수 주입 -e 라는 옵션을 이용하여 환경 변수를 주입할 수 있다. 다음 명령어를 통해 MY_HOST=tistory.com 이라는 환경변수를 주입한 ubuntu:focal 이미지를 기반으로 하는 컨테이너를 실행하고, bash 쉘로 접속할 수 있다. docker run -i -t -e MY_HOST=tistory.com ub..
이번 글에서는 도커 컨테이너의 엔터리포인트와 커맨드에 대해 알아보고자 한다. 엔트리포인트와 커맨드의 개념이 Dockerfile 과 도커 명령어에서 사용될 수 있다. 엔트리포인트 (Entrypoint) 도커 컨테이너가 실행될 때 하나의 프로세스로서 실행되게 된다. 이때 고정적으로 실행되는 스크립트 혹은 명령어를 말한다. 이는 생략할 수 있으며, 생략할 경우 커맨드에 지정된 명령어로 수행된다. 엔트리포인트를 지정할 경우, 다음과 같은 형식으로 엔트리포인트가 prefix 처럼 실행되고, 그 뒤에 커맨드가 실행된다. [Entrypoint] [Command] 커맨드 (Command) 도커 컨테이너가 실행할 때 수행할 명령어 혹은 엔트리포인트에 지정된 명령어에 대한 인자 값으로 사용된다. 엔트리포인트와 커맨드는 D..
최근 들어 많은 기술 회사들에서 DevOps와 컨테이너 가상화 기술을 강조하면서, 많은 개발자들이 DevOps 에 관심을 가지고 있다. DevOps 를 하게 되면 자연스럽게 MSA (Micro-Service Architecture) 를 접하게 되는데, 컨테이너 가상화 기술은 MSA 를 구성함에 있어 없어서는 안될 기술이라 할 수 있다. 그럼 컨테이너 가상화 기술은 무엇이고, docker 는 왜 써야 할까? 전통적인 배포 환경 (Traditional Deployment) 컨테이너나 가상화와 같은 기술을 사용하기 전에는, 흔히 리눅스 인스턴스에 바로 서비스를 배포하는 방식을 사용한다. AWS 와 같은 클라우드 서비스를 사용한다면, LightSail 이나 EC2 와 같은 가상 인스턴스 환경을 통해 배포하기도 ..
- Total
- Today
- Yesterday
- Container
- 자료형
- dockerfile
- EC2
- cmd
- dockerhub
- Operator
- env
- 도커
- Android
- main
- 안드로이드
- uiux
- 디자인
- entrypoint
- 메터리얼
- 스타트업
- 머티리얼
- Java
- 컨테이너
- 자격증명
- Material
- 테라폼
- ecr
- DESIGN
- 자바
- Terraform
- HCL
- AWS
- docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |