티스토리 뷰

이번 프로젝트에서 Docker와 Jenkins를 이용하여 CI/CD를 구축하고 이후에는 무중단배포까지 해보려고 한다.
그 전에 도커와 젠킨스에 대해 공부하면서 실습을 해보며 정리를 하고자 한다!

EC2 인스턴스 시작

EC2 인스턴스 시작하기 참고 사이트

ssh 프로토콜로 연결하기

  • 키페어 관리자 설정
    • "키페어.pem" 우클릭 -> 속성
    • 보안탭 -> 고급 -> 상속사용안함 -> 명시적 사용 권한으로 변환
    • Administrators와 SYSTEM 제외하고 삭제
  • 터미널로 ssh 이용하여 접속
    • 터미널 관리자모드로 실행
    • 키페어 위치로 이동 cd 위치
    • EC2 인스턴스 체크한 후 연결 클릭하고 아래와 같은 문구 복사 후 터미널에 입력하면 연결됨
ssh -i "devcat.pem" ubuntu@ec2-13-209-42-67.ap-northeast-2.compute.amazonaws.com
  • 명령어로 확인해보기
    • pwd (현재위치 확인)
    • ls -a (해당 위치 파일 리스트로 모두 보기)
    • df -h (현재 메모리 확인)

Docker 설치하기

  • apt 업데이트
    sudo apt update

sudo apt install apt -transport-https
sudo apt install ca-certificates

  • curl : 특정 웹사이트에서 데이터 다운받을 때 사용
    sudo apt install curl
    sudo apt install software-properties-common

도커 설치 과정

curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg) | sudo apt-key add -

  • 레포지토리 리스트에 추가
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
    sudo apt update'apt-cache policy docker-cesudo apt install docker-ce` # 설치
  • 도커 설치 시 자동으로 시스템 서비스로 등록 된다.
    sudo systemctl status docker

테스트해보기

docker pull hello-world

  • "Got permission denied while trying to connect to the Docker daemon socket" Error 발생시
  • linux에서 root 권한이 아닌 상태로 docker를 실행하여서 권한 문제가 발생한 것이므로, docker group에 해당 유저 추가
    sudo usermod -aG docker $USER
  • 이미지가 잘 받아졌는지 확인
    docker images
  • 컨테이너로 만들어서 실행
    docker run hello-world

dockerfile 작성해서 서버 이미지 만들기

  • /homoe/ubuntu 폴더로 이동
    cd /home/ubuntu
  • example 폴더 만들고 이동
    mkdir example
    cd example

sudo vi Dockerfile

FROM ubuntu:18.04
MAINTAINER g4dalcom <g4dalcom@gmail.com>

RUN apt-get update
RUN apt-get install -y apache2 
# Install Apache web server (Only 'yes')

EXPOSE 80 # Open HTTP Port

CMD ["apachectl", "-D", "FOREGROUND"]
# 아파치가 항상 실행중인 상태로(데몬 상태)
  • 빌드하기(현재 경로에서 example이라는 태그로 빌드)
    docker build -t example .
  • 오류
    • 80 포트 옆에 # 주석을 달아서 오류 발생
  • 오류를 해결한 후 다시 빌드하면 정상 동작
  • 이미지 잘 만들어졌는지 확인
    docker images
  • 내가 만든 이미지 컨테이너에 올려서 구동해보기
    • 왼쪽 80은 Host 포트, 오른쪽은 컨테이너 포트
    • 80번 포트로 접속했을 때 사용자는 컨테이너 포트로 연결됨
      docker run -p 80:80 example
  • 내 EC2 IP로 접속해보면 아파치 디폴트 페이지가 나온다!

vi 단축키

  • 명령모드 (esc 눌렀을때, vi 처음 들어갔을때)
  1. 파일의 끝으로 이동할때는 - G
  2. 한줄 잘라내기 - dd
  3. 세줄 잘라내기 - 3dd
  4. 붙여넣기 - p
  5. 한글자 삭제 - x
  6. 단어 삭제 - dw
  7. 실행취소! - u
  8. 줄의 맨 앞 - o
  9. 줄의 맨 뒤 - $
    (G, $ 이거 개꿀)
  • 마지막행 모드 (esc -> : 눌렀을때)
    (명령어 뒤에 !를 붙이면 강제로 수행하니까, vi가 궁시렁 궁시렁 거리면 " ! "붙여서 실행)
  1. 저장만 : w
  2. 종료만 : q
  3. 저장 후 종료 : wq
  4. 라인 번호좀 보자 : set nu
  5. 커서 위치 뒤로 문자열좀 찾자 : ?문자열
  6. 커서 위치 앞으로 문자열좀 찾자 : /문자열
    (set nu, wq! 개꿀)
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함