DevOps
-
[Docker] Dockerfile 기본 명령어 정리DevOps/Docker 2021. 4. 6. 11:31
Dockerfile 명령어 정리하기 FROM 생성할 이미지의 베이스가 될 이미지를 뜻합니다. FROM 명령어는 Dockerfile을 작성할 때 반드시 한 번 이상 입력해야 합니다. MAINTAINER 이미지를 생성한 개발자 정보를 나타냅니다. RUN 이미지를 만들기 위해 컨테이너 내부에서 명령어를 실행합니다. RUN 명령어에 ["/bin/bash", "echo hello" >> test.html"] 같이 입력하면 /bin/bash 셸을 이용해 'echo hello >> test2.html'을 실행한다는 뜻입니다. ADD 파일을 이미지에 추가합니다. Dockerfile이 위치한 디렉터리에서 파일을 가져옵니다. ex) ADD test.html /var/www/html 이라면 Dockerfile과 같은 디렉토..
-
[Docker] EC2에서 Docker 컨테이너를 활용하여 웹 서버 실행하기DevOps/Docker 2021. 3. 29. 16:04
EC2에 Docker를 이용해서 웹 서버 띄우기 이번 글에서는 EC2 Linux2를 이용해서 실습을 진행해보겠습니다. docker 설치 sudo yum update -y sudo amazon-linux-extras install -y docker sudo service docker start Amazon Linux 2에 LAMP 웹 서버 설치 EC2 linux2 버전에서 웹 서버를 설치하는 명령어를 정리해보겠습니다. sudo yum update -y sudo amazon-linux-extras install -y php7.2 sudo yum install -y httpd sudo systemctl start httpd (Apache 웹 서버 시작(d는 daemon 임)) sudo systemctl ena..
-
[Docker] Docker Image로 Container를 만드는 과정DevOps/Docker 2021. 3. 29. 14:52
이미지로 컨테이너를 만들기 지금까지 이미지를 이용해서 컨테이너를 생성한다고 배웠습니다. 하지만 어떻게 해서 이미지를 이용해 컨테이너를 생성하는지를 이번 글에서 한번 다뤄보겠습니다. 아래와 같이 이미지를 통해 컨테이너를 만들고 컨테이너는 이미지의 인스턴스 정도로 생각하면 된다라고 저번 글에서 소개한 적이 있습니다. 이미지: 응용 프로그램을 실행하는데 필요한 모든 것을 포함하고 있습니다. 여기서 말하는 필요한 모든 것이 무엇일까요? 컨테이너가 시작 될 때 실행되는 명령어(Dockerfile로 관리) 파일 스냅샷(ex: 카카오톡이라면 카카오톡을 실행하는데 필요한 파일) - 디렉토리나 파일을 압축시킨 느낌 ex) 스프링 프로젝트 전체 이미지로 컨테이너 만드는 순서 Docker 클라이언트에 docker run 입..
-
[Docker] Docker 간단한 명령어로 실습해보기DevOps/Docker 2021. 3. 29. 14:43
Docker 클라이언트 명령어 알아보기 docker run 앞에서 위와 같은 명령어를 사용했었습니다. 위의 명령어는 어떤 의미를 가지고 있을까요? 도커 클라이언트에 명령어 입력후 도커 서버로 보냄 도커 서버에서 컨테이너를 위한 이미지가 이미 캐쉬가 되어 있는지 확인 없으면 도커 허브에서 다운 받아옴(Pulling) 있다면 이미 가지고 있는 이미지 컨테이너 생성 docker run alpine ls 위와 같이 뜨는 것을 볼 수 있습니다. 저는 alpine 이미지가 이미 존재하기 때문에 바로 위와 같이 컨테이너가 실행된 것을 볼 수 있습니다. ubuntu 컨테이너 docker run --rm -it ubuntu:20.04 /bin/sh --rm: 컨테이너를 실행하고 바로 삭제하라는 명령어 위와 같이 ubun..
-
[Docker] Docker Image를 직접 만들어 보기DevOps/Docker 2021. 3. 29. 14:38
Docker 이미지를 직접 만들기 Docker 이미지는 컨테이너를 만들기 위해 필요한 설정이나 종속성들을 갖고 있는 소프트웨어 패키지 Docker 이미지는 Dockerhub에 다른 사람들이 만들어놓은 이미지를 다운받아 사용할 수도 있고 직접 이미지를 만들어 사용할 수도 있습니다. 이미지의 읽기 영역 vs 쓰기 영역 여기서 빨간 테두리는 읽기 영역, 초록색 테두리는 쓰기 영역을 할 수 있습니다. 읽기 영역: ubuntu, centOS 등등 (수정할 수 없음) 쓰기 영역: Git 설치, 모듈 설치 등등 (이미지에 추가할 수 있음) docker run -it --name git ubuntu:latest bash 위와 같이 ubuntu:bash 이미지에는 Git이 설치되어 있지 않습니다. apt-get upda..
-
[Docker] Docker와 기존 가상화 기술의 차이 알아보기DevOps/Docker 2021. 3. 29. 14:29
Docker와 기존의 가상화 기술과의 차이를 통한 컨테이너 이해하기 가상화 기술 나오기 전 한대의 서버를 하나의 용도로만 사용 남는 서버 공간 그대로 방치 하나의 서버에 하나의 운영체제, 하나의 프로그램만을 운영 안정적일 수 있지만 비효율적 하이퍼 바이저 기반의 가상화 등장 논리적으로 공간을 분할하여 VM이라는 독립적인 가상 환경의 서버 이용 가능 하이퍼 바이저는 호스트 시스템에서 다수의 게스트 OS를 구동할 수 있는 소프트웨어 하드웨어를 가상화하면서 하드웨어와 각각의 VM을 모니터링하는 중간 관리자 현재 많이 사용하는 VM의 구조는 위와 같습니다. 기존 OS 위에서 하이퍼 바이저를 사용하는 방식입니다. (윈도우 PC에서 VMware 설치한 후에 거기에 ubuntu OS를 설치한다면 위와 같은 구조라고 ..
-
[Docker] Docker란 무엇이고 왜 사용할까?DevOps/Docker 2021. 3. 29. 14:24
Docker를 사용하는 이유 어떤 프로그램을 다운받아 사용한다면 일반적으로 위와 같은 과정을 거치게 됩니다. 하지만 실제로 많은 서버들과 다양한 운영체제, 패키지 버전 등등 이유로 프로그램을 설치하는 과정에서 에러가 발생하게 됩니다. A라는 서버에서는 됐는데 B라는 서버에서는 안될 수도 있고.. 이러한 문제들을 가지고 있습니다. 또한 설치 과정도 그렇게 쉽지만은 않습니다. 도커는 이러한 설치 과정을 엄청나게 단순하게 만들 수 있습니다. Redis 설치 비교해보기 Docker를 이용해서 Redis를 설치할 때와 Redis를 직접다운 받을 때의 차이를 비교해보겠습니다. $ wget https://download.redis.io/releases/redis-6.2.1.tar.gz $ tar xzf redis-6..