티스토리 뷰
이번 프로젝트에서 Docker와 Jenkins를 이용하여 CI/CD를 구축하고 이후에는 무중단배포까지 해보려고 한다.
그 전에 도커와 젠킨스에 대해 공부하면서 실습을 해보며 정리를 하고자 한다!
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 포트 옆에 # 주석을 달아서 오류 발생
- 80 포트 옆에 # 주석을 달아서 오류 발생
- 오류를 해결한 후 다시 빌드하면 정상 동작
- 이미지 잘 만들어졌는지 확인
docker images
- 내가 만든 이미지 컨테이너에 올려서 구동해보기
- 왼쪽 80은 Host 포트, 오른쪽은 컨테이너 포트
- 80번 포트로 접속했을 때 사용자는 컨테이너 포트로 연결됨
docker run -p 80:80 example
- 내 EC2 IP로 접속해보면 아파치 디폴트 페이지가 나온다!
vi 단축키
- 명령모드 (esc 눌렀을때, vi 처음 들어갔을때)
- 파일의 끝으로 이동할때는 - G
- 한줄 잘라내기 - dd
- 세줄 잘라내기 - 3dd
- 붙여넣기 - p
- 한글자 삭제 - x
- 단어 삭제 - dw
- 실행취소! - u
- 줄의 맨 앞 - o
- 줄의 맨 뒤 - $
(G, $ 이거 개꿀)
- 마지막행 모드 (esc -> : 눌렀을때)
(명령어 뒤에 !를 붙이면 강제로 수행하니까, vi가 궁시렁 궁시렁 거리면 " ! "붙여서 실행)
- 저장만 : w
- 종료만 : q
- 저장 후 종료 : wq
- 라인 번호좀 보자 : set nu
- 커서 위치 뒤로 문자열좀 찾자 : ?문자열
- 커서 위치 앞으로 문자열좀 찾자 : /문자열
(set nu, wq! 개꿀)
반응형
'개발냥이 > etc' 카테고리의 다른 글
정적 리소스 경로 설정해주기, 로컬에 저장된 업로드 이미지가 서버 재시작해야만 반영되는 문제 (2) | 2022.11.07 |
---|---|
[CI/CD] Docker & Jenkins를 이용해 Springboot CI/CD 구축해보기 (0) | 2022.11.05 |
🐬돌고돌래🐋 여행 추천 서비스 OPEN! (0) | 2022.10.21 |
[회고] 프론트와 첫 협업 프로젝트 (0) | 2022.09.11 |
Stackoverflow: null, 무한로그, 양방향 순환참조 에러 (0) | 2022.09.11 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- CS
- 이분탐색
- JPA
- SQL
- 해시맵
- DP
- BFS
- java
- 리액트
- 스프링부트
- 알고리즘
- 자바
- 백준
- 자바스크립트
- dfs
- 정렬
- Spring
- 자바bfs
- 형변환
- JavaScript
- Queue
- Nest
- 자바트리
- 타입스크립트
- 프로그래머스
- Comparator
- SQLD
- 스프링
- Algorithm
- 자바dp
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함