docker 7

React 앱 배포하기 (feat. Nginx, Docker, AWS)

React 앱을 만들었다는 가정하에 진행되며 Nginx에 대한 개념없이 단순히 사용하고 있음을 미리 알립니다.Make docker image using NginxNginx 서버를 사용해 제작한 React 앱을 도커 이미지로 만들어보자. 도커 이미지로 만들고 도커 허브에 올리면 Github처럼 어디서든 받아서 컨테이너를 실행시킬 수 있고 수정해서 다시 올릴 수 있다. Create Nginx server Container 먼저 React 앱을 동작시킬 Nginx 서버를 도커 이미지를 통해 생성한다. Nginx는 도커 허브에서 공식 이미지를 지원하고 있으므로 바로 다운받아 실행이 가능하다. 1️⃣ Nginx 컨테이너 생성 로컬 터미널에서 docker run명령을 통해 Nginx 이미지를 받아 컨테이너를 생성한..

Develop/Docker 2021.03.10

[AWS] EC2 인스턴스로 Docker 컨테이너 실행(feat. docker compose)

기본 VPC 설정EC2인스턴스가 가동될 네트워크 환경을 구성하기 위해 기본 VPC 생성한다. 원하는 서브넷이나 게이트웨이 설정이 있다면 VPC를 하나하나 선택해 생성해줘도 상관없다. 인스턴스 생성인스턴스 종류 선택Ubuntu Server 20.04 LTS (HVM), SSD Volume Type지금까지 사용해온 익숙한 환경을 고르도록 한다. 나는 계속 ubuntu를 사용해 연습했으니 ubuntu를 선택했다. 보안 그룹 설정 보안 규칙은 2가지가 필수적으로 요구된다. SSH : AWS EC2 인스턴스에 원격으로 붙어서 사용하기 위해HTTP : docker 컨테이너에서 동작할 웹 서버를 위해위에 2가지는 반드시 추가하고 사용하고 있는 컴퓨터(노트북)만 접속할 수 있도록 소스를 내 PC로 지정해준다. 인스턴스..

Develop/AWS 2021.02.13

[Docker] MongoDB가 설치된 우분투 이미지 만들기(feat. commit)

목표 도커 우분투 이미지로 컨테이너를 생성하고 생성된 이미지에 mongo DB를 설치해 ubuntu:mongodb 이미지를 작성한다. 컨테이너 실행 docker run -it [container] [image] 도커 우분투 이미지를 실행시켜 mongo DB를 설치할 컨테이너를 생성하도록 하자. docker run -it --name ubuntu_mongo ubuntu /bin/bash 설치 방법 패키지 업데이트 apt-get update 설치에 앞서 패키지 업데이트를 진행한다. wget 설치 apt-get install wget 도커 이미지의 경우, 리눅스 이미지를 받아오면 wget명령도 없을 것이다. 없다고 뜨는 것들은 설치한다음 다시 진행해주면 된다. 패키지 매니저 시스템을 사용해 공개키 받아오기 w..

Develop/Docker 2021.02.05

[Docker] zsh테마가 설정된 이미지 만들기 (feat. commit/Dockerfile)

목적 열심히 WSL위에 Docker를 설치하고 Docker로 Ubuntu컨테이너를 만들어 zsh과 oh-my-zsh을 통해 꾸며주었다. 이 과정을 다시 반복하지 않기 위해서이미지로 저장해두는 작업을 하려고 한다. 이미지 저장은 commit을 통해서 쉽게 할 수 있으나 dockerfile을 만들어보고 제대로 동작하는지 확인하는 과정을 거쳐보려고 한다. 방법 docker commit을 이용한 이미지 저장 ⇒ 변경하려면 앞의 모든 작업을 다시 수행 dockerfile을 이용한 이미지 저장 commit으로 저장하기 이미지 생성 docker commit Ubuntu-20.04 ubuntu:zsh Ubuntu-20.04라는 컨테이너를 ubuntu라는 이미지베이스에 zsh이라는 태그를 달아서 저장한다. 생성된 이미지..

Develop/Docker 2021.02.03

[Docker] Dockerfile 명령어

FROMFROM [image](:[tag])베이스이미지 지정tag가 없을 경우, 자동으로 latest태그의 이미지를 지정한다.베이스이미지가 OS가 아닐경우, 해당 이미지가 돌아갈 수 있는 최소한의 패키지가 포함되어있어 운영체제가 베이스가 되지 않아도 돌아갈 수 있다. MAINTAINERMAINTAINER [name]dockerfile을 관리하는 사람의 이름 또는 이메일 정보 지정한다.*빌드에 영향 없음COPY COPY [src] ... [dst]파일이나 디렉토리를 복사하고 없으면 자동 생성한다.ADDADD [src] ... [dst]COPY와 같은 역할src에 URL 입력이 가능하며 압축 파일일 경우 자동 압축 해제 후 복사된다.RUNRUN [command]shell 형식 - 설치해야하는 명령shell ..

Develop/Docker 2021.02.03

[Docker] 명령어

이미지이미지 검색docker search ([option]) [keyword]도커 허브에 존재하는 이미지를 검색한다. --no-trunc : 검색 결과 모두 표시--limit : 검색 결과를 n개로 제한--filter=stars=n : 즐겨찾기 수를 n개로 지정 이미지 다운로드 docker (image) pull ([option]) [image_name](:[tag])도커 허브에서 이미지를 다운받는다. (image는 생략가능)-a : 이미지에 존재하는 모든 태그 이미지 다운 이미지 정보 확인docker image inspect [image]받은 이미지에 대한 환경이나 아키텍쳐, 가상화 크기같은 자세한 정보를 확인한다. 존재하는 이미지 확인docker images 혹은 docker image ls로 확인할..

Develop/Docker 2021.02.03

[Docker] unminimize Ubuntu

man은 명령어에 대한 정보를 확인할 때 자주 쓰인다. docker로 만든 ubuntu 컨테이너에서 man명령어가 동작하지 않으면서 위와 같은 메시지를 출력했다. 대충 내용을 보니 이 시스템은 유저가 로그인하지 않는 시스템에 필요하지 않은 패키지와 내용물들을 제거한 최소화된 버전이다. 맨 페이지를 포함하는 내용을 복구하고 싶다면 unminimize명령을 사용할 수 있다. 이를 위해서 man-db패키지가 필요할 것이다. 라고 적혀있다. (틀릴지도 모른다..) 실제로 찾아보니 도커 깃허브에 해당 이슈와 관련된 내용이 있었고 도커에서 사용하는 기본적인 ubuntu 이미지가 minimal 버전의 ubuntu라는걸 알 수 있었다. unminimizeminimal 버전에서 다시 돌아가려면 메시지에 친절하게 나와있듯..

Develop/Docker 2021.02.02