728x90

1.도커 설치

도커는 기본적으로 리눅스 기반에 맞춰 개발환경이 갖춰져있으므로 만약 윈도우 사용자라면 VM으로 우분투를 설치하여 사용하길 권장합니다.

curl -s https://get.docker.com/ | sudo sh

설치 방법은 여러개가 있겠지만 아래의 명령어로 손쉽게 설치 가능합니다.

 

docker version

위의 명령어로 도커가 설치완료되었는지 확인합니다.

 

2.도커 실행

docker run [OPTIONS] IMAGE:[version] [COMMAND]

 

-option

-d detached mode (백그라운드 모드)
-p 호스트와 컨테이너의 포트를 연결
-v 호스트와 컨테이너의 디렉토리를 연결
-e 컨테이너 내에서 사용할 환경변수 설정
--name 컨테이너 이름 설정
--rm 프로세스 종료시 컨테이너 자동 제거
-it 터미널 입력을 위한 옵션(컨테이너 내부)
--network 네트워크 연결

위와 같은 형식으로 도커를 실행할수 있다.

 

-실행

docker run ubuntu:20.04

위와 같이 실행하면, 우분투 20.04 이미지를 다운받아 실행하게 됩니다. 도커의 실행은 하나의 프로세스 실행과 같아서 위의 명령어로는 실행은 되지만 이외의 동작은 없고 바로 프로세스가 종료되게 됩니다.

 

docker run -it ubuntu:20.04

실행한 우분투 컨테이너 내부에서 터미널 입력이 가능해집니다.

 

docker run -d -p 3306:3306 \ 
 -e MYSQL_ALLOW_EMPTY_PASSWORD=true \ 
 --name mysql \ 
 mysql

mysql최신 버전의 이미지를 mysql이름을 지정후 다운 받은후, 3306(로컬):3306(컨테이너) 포트를 연결시켜주어 백그라운드에서 동작시켰습니다.

 

docker exec -it mysql mysql 
create database wp CHARACTER SET utf8; 
grant all privileges on wp.* to wp@'%' identified by 'wp'; 
flush privileges;

-exec명령어

docker run과는 달리, docker exec는 이미 실행중인 컨테이너에 접속할때 사용되는 명령어입니다. exec로 백그라운드에서 실행중인 mysql에 접속하여 데이터베이스를 생성해주었습니다.

 

3.도커 기본명령어

-ps: 실행중인 도커 컨테이너를 확인하는 명령어

docker ps
docker ps -a # 실행중지된 컨테이너까지 모두 확인가능

-stop: 도커 컨테이너 중지 명령어

docker stop [OPTIONS] CONTAINER [CONTAINER...]

컨테이너 ID or NAME으로 중지명령

 

-rm: 도커 컨테이너 삭제 명령어

docker rm [OPTIONS] CONTAINER [CONTAINER...]

-logs: 실행중인 컨테이너의 로그를 확인하는 명령어

docker logs [OPTIONS] CONTAINER

-images: 다운받은 이미지를 확인하는 명령어

docker images [OPTIONS] [REPOSITORY[:TAG]]

-pull: 도커 이미지를 다운받는 명령어

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

-rmi: 도커 이미지 삭제 명령어

docker rmi [OPTIONS] IMAGE [IMAGE...]

4.도커 network

앞서 설명한 명령어중 --name을 통해 네이밍이 되어있는 컨테이너들끼리 통신을 위한 방식입니다.

웹서비스를 운영할때 80번 외부포트에서 request를 받아주면 내부의 로컬끼리는 포트번호를 통해 통신을 하는데 도커의 컨테이너 통신에서는 컨테이너를 생성할때 지어준 이름으로 통신을 하게 됩니다. 

-network create

docker network create [OPTIONS] NETWORK-NAME

 

-network connet

docker network connect [OPTIONS] NETWORK CONTAINER

네트워크 생성 -> 기존생성된 컨테이너 네트워크에 연결

위와 같은 과정을 거치면 네트워크에 연결한 컨테이너는 서로 통신을 할수 있는 준비가 됩니다.

 

ex)

docker run -d -p 8080:80 \ 
 --network=example \
 ...

ref. 인프런 강의. 초보를 위한 도커 안내서를 보고 참고하여 정리하였습니다.

 

Docker - 도커란 무엇인가

도커, 도커를 사용하는 이유, 도커의 특징 이해

wooody92.github.io

 

 

초보를 위한 도커 안내서 - 인프런 | 강의

도커를 1도 모르는 입문자, 초보자분들을 위한 도커 안내서 입니다. 복잡한 내용을 제외하고 도커가 왜 인기가 많고 어떻게 사용하는지 빠르게 익힐 수 있도록 집중하였습니다., 데브옵스 입문

www.inflearn.com

 

728x90

'기술 > Devops' 카테고리의 다른 글

aws(2)VPC(Virtual Private Cloud)  (0) 2022.04.19
aws(1)S3(Simple Storage Services)  (0) 2022.04.19
도커(4)-이미지  (0) 2022.01.19
도커(3)-도커 컴포즈  (0) 2022.01.17
도커(1)-도커란?  (1) 2022.01.13
728x90

1. 서버를 관리한다는것

  • 어떠한 프로그램이 동작할때 잘돌고 있지만 뒤 즉, 서버단은 매우복잡한 논리의 집합으로 돌아가고 있는것
  • 수많은 로직들중에 하나라도 잘못되어있을경우, 전체가 돌아가지 않는다
  • 서버를 관리한다는것은 이많은 논리의 집합을 오류없이 잘돌아가도록 관리하는것
    • 하지만 너무 잦은 개발환경의 변화로 인해 리소스의 낭비가 심해졌다
    • 이를 해결하기위해 도커가 등장했다.

2. 서버관리 방식의 변화

  • 전통적인 서버관리방식
    • user추가 -> system환경 -> 방화벽 -> ... -> proxy서버 -> 서버 실행
    • 매우 복잡한 여러 방식들을 하나하나 만들어 서버를 실행시켜야함
    • 이중 하나라도 문제가 생겼을때 전체적으로 오류가 발생함
  • 도커의 등장으로 인해..
    • user컨테이너, chat 컨테이너...와 같이 여러 기능들을 하나의 컨테이너처럼 독립적으로 실행시킬수 있음
    • 하나의 오류가 생기더라도 독립적으로 실행되고 있기때문에 문제가 없고 매우 효율적으로 서버 동작
  • 가상머신과 비교
    • 매우빠르다
    • 초기 환경 세팅을 일일이 할필요가 없다
    • 따라서 매우 효율적이다

3. 도커의 등장 배경

  • 서버 실행 방법 문서화
    • 서버를 실행할때 설치할 과정이나 주의점을 문서화를 통해 후임자나 다른사람에게 공유
    • 이문서가 정확할지? 누락된 부분이 있어 그대로 실행안됨...과 같은 문제점이 있음
  • 상태관리 도구 도입(chef, puppet, ansible...)
    • webserver, library등 문서로만 적혀있는것이 아닌 코드로 관리함으로써 환경을 공유하고 쉽게 설치 하게 개선
    • 각각의 서버, 여러 환경때문에 제대로 적용이 안되는 문제점이 있음
  • 가상머신
    • 여러 기능등을 각각의 가상머신에 설치한뒤 이 가상머신을 관리할수 있는 서버에 띄어둠
    • 한서버에 여러개 설치가 가능하고, 현재의 상태를 저장할수 있는 엄청난 이점
    • 처음부터 다시 셋팅할대 어려움이 있음, 매우느림, 공유하기 어려운 문제점이 있음
  • 도커의 등장!
    • 컨테이너: 격리된 환경에서 작동하는 프로세스
    • 하드웨어 가상화 기술보다 가벼움
    • 이미지 단위의 프로세스 실행 환경을 구성
    • 즉, 위의 여러 문제점을 모두 개선한 컨테이너 기술!

4. 도커의 장점

  • 확장성/이식성
    • 도커가 설치되어 있다면 어디서든 컨테이너 실행 가능
    • 쉽게 개발서버를 만들수 있고 테스트서버 생성또한 간편함
  • 표준성
    • 도커를 사용하지 않는 경우 여러 프레임워크로 만든 서비스들의 배포 방식이 매우 다양함
    • 컨테이너라는 표준으로 서버를 배포하므로 모든 서비스들의 배포 과정이 동일해짐
  • 이미지
    • 컨테이너를 실행하기위한 하나의 압축 파일과 같음
    • 이미지에서 컨테이너를 생성하기 때문에 반드시 이미지를 만드는 과정 필요
    • Dockerfile을 이용하여 이미지를 만들고 처음부터 재현 가능
  • 설정관리
    • 설정은 보통 환경변수로 제어
    • 하나의 컨테이너를 띄울때 환경변수를 같이 지정
  • 자원관리
    • 컨테이너는 삭제 후 새로 만들면 모든 데이터가 초기화됨
    • 업로드 파일을 외부 스토리지와 링크하여 사용하거나 s3같은 별도의 저장소가 필요함

 

ref. 인프런 강의. 초보를 위한 도커 안내서를 보고 참고하여 정리하였습니다.

 

Docker - 도커란 무엇인가

도커, 도커를 사용하는 이유, 도커의 특징 이해

wooody92.github.io

 

초보를 위한 도커 안내서 - 인프런 | 강의

도커를 1도 모르는 입문자, 초보자분들을 위한 도커 안내서 입니다. 복잡한 내용을 제외하고 도커가 왜 인기가 많고 어떻게 사용하는지 빠르게 익힐 수 있도록 집중하였습니다., 데브옵스 입문

www.inflearn.com

 

728x90

'기술 > Devops' 카테고리의 다른 글

aws(2)VPC(Virtual Private Cloud)  (0) 2022.04.19
aws(1)S3(Simple Storage Services)  (0) 2022.04.19
도커(4)-이미지  (0) 2022.01.19
도커(3)-도커 컴포즈  (0) 2022.01.17
도커(2)-도커 설치와 실행  (0) 2022.01.17
728x90

TODAY I LEARNED


- python 스터디(일명 pajang)

 

leeceo97/pajang-1

python과 장고 스터디 관련 repository. Contribute to leeceo97/pajang-1 development by creating an account on GitHub.

github.com

동일하다 오늘도 기본문제 for문은 다끝이났고 함수 들어가는데 슬슬 300제 끝이 가까워지고 있다. 300제가 끝나고나면 장고 스터디로 시작하게 되는데 파이썬은 코테 공부용으로 계속해서 해야겠다.

 

-pinterest: django프로젝트

 

leeceo97/pinterest

Contribute to leeceo97/pinterest development by creating an account on GitHub.

github.com

예전에 아무것도 모르던 찐코린이 시절 html css배우던 추억이 돋아나는 단계이다. 이제 프론트 꾸미기는 간단하게 끝이났고 본격적으로 장고를 시작할꺼다. 아무래도 프로젝트글은 시간이 많이 드는단계다보니 주말에 각잡고 2개씩 올리던가 해야겠다!

 

인턴 4일차


역시나 오늘도 힘들었다. 재택근무가 오히려 나같은 들어온지 얼마 안되는 신입에게 불리하다.. 이것저것 새로운것들이라 교육도 받고 실습을 진행해야하는데 메시지로만 하려다보니 이해도 안가고 힘든게 사실이다. 그래도 나름 오늘 용기내서 줌으로 좀 알려달라고 요청드렸더니 사수님이 친절하게 하나하나 알려주셔서 감동받는 바람에 자진 야근을 집에서 하게 되었다. 어느정도 검증이 무슨 작업인지 파악이 됐고 일이 손에 익으면 나한테 이걸 자동화 할수 있는 기회가 있을꺼라고 했으니 그때만 바라보며 열심히 인턴 근무 임해야겠다!!

 

오늘 배운건 traceview를 통해서 로그를 실시간으로 확인하는 작업이었다. 평소 로그의 중요성은 절대 관심이 없었는데 로그가 굉장히 중요하단걸 오늘느끼게 되었다. 

 

-로그란?

컴퓨팅에서 로그파일은 운영 체제나 다른 소프트웨어가 실행 중에 발생하는 이벤트나 각기 다른 사용자의 통신 소프트웨어 간의 메시지를 기록한 파일이다. 로그를 기록하는 행위는 로깅이라고 한다.

 

쉽게 말해 내가 소프트웨어 상에서 실행하고 변경된 모든 사항이 기록되는 것을 말한다. 이러한 로그를 통해 어떤 오류가 발생했고 어떤 사용자가 들어왔는지 확인할 수 있다. 

 

-TraceView란?

트레이스뷰는 모든 함수의 초기화와 각 메소드에서 머문 시간이 기록되며, 이것을 보기 좋게 정렬해서 보여주는 View 입니다.

오늘 내가 진행한 업무는 따로 로그가 찍힌 결과를 UI가 없어 보지 못했는데 이러한 UI의 역할을 해준것이 트레이스뷰이다.

 

+추가로 오늘 GITLAB에서 코드를 내려받아 깃버전 테스트를 해봤는데 깃허브와 별다른건 없다고 느꼈다. 아직 제대로 사용해보진 못해서그런것 같긴한데 자신들만의 망에서만 사용할수 있는 깃허브다? 정도만 느꼈다. 심지어 명령어도 똑같았다. 앞으로 PYTHON을 통해 개발할 그날을 위해!!! 열심히 인턴생활 임해야 겠다!!

728x90

'개발 life > 셀프 부트캠프(WIL)' 카테고리의 다른 글

TIL 8일차-2021.7.8  (0) 2021.07.09
TIL 7일차-2021.7.7  (0) 2021.07.08
TIL 5일차-2021.7.5  (0) 2021.07.06
TIL 4일차-2021.7.4  (0) 2021.07.04
TIL 3일차-2021.7.3  (0) 2021.07.03

+ Recent posts