Fullstack-Study-241204-250625

커리큘럼(12-30/변경)

01. Java
02. git
03. Database 
04. Jsp [Server]

05. HTML,CSS 
07. JS
06. 미니프로젝트-2W

08. SpringFramework , SrpingBoot 
19. 중간프로젝트 (1M)
10. Linux 명령어
11. AWS
12. Docker(v)
13. React JS [Front-end]
14. App - Android
15. 최종프로젝트 (1M)

Docker

CI/CD (Continuous Integration / Continous Delivery)

CI/CD 종류

DevOps

데브옵수 필수개념

  1. 협업(Collaboration)
  1. 자동화(Automation)
  1. 지속적인 통합 및 배포(CI/CD)
  1. 피드백 로프(Feedback Loop)

데브옵수 주요 기술

  1. 버전 관리
  1. CI/CD 도구
  1. 컨테이너 및 오케스트레이션
  1. 모니터링 및 로깅
  1. 클라우드 플랫폼

기존 방식 / 데브옵스 방식

  1. 기존방식
  1. 데브옵스 방식

Docker

도커

  1. Dockerfile작성 : 어떤 앱인지, 어떻게 설치할지 작성
  2. 이미지 빌드(docker build) : 설치 방법을 기반으로 실행 가능한 이미지 생성
  3. 컨테이너 실행 : 이미지 기반으로 실제 앱 실행
  4. 포트 연결, 파일마운트, 네트워크 설정 등(컨테이너 실행시(docker run) 설정)

Docker 이전 운영환경의 가상화 기술

가상 머신

도커와 VM차이

Docker 동작방식

컨테이너

이미지

레이어

도커의 동작방식

Docker 컨테이너 명령문

docker login

docker version
docker info

docker search <찾을이미지>

docker pull <이미지이름:태그>
docker pull tomcat:9
docker image
docker image + 커맨드
docker images
docker inspect <이미지명:태그 or 컨테이너명>
docker inspect tomcat:9

docker create --name <컨테이너명> <이미지명:태그명>

docker run <옵션> <이미지:태그>
docker run --name myserver tomcat:9
docker run --name myserver -d -p 8888:8080 tomcat:9
옵션명 기능
--name[컨테이너 이름] 컨테이너의 이름을 직접 지정
--net[네트워크 명] 네트워크를 추가함
--d 컨테이너를 백그라운드에서 동작하는 애플리케이션을 실행할 때 설정
-p[호스트 포트]:[컨테이너 포트] 호스트의 N번 포트를 컨테이너의 N번 포트와 연결(여러번 사용 가능)
-p[호스트 IP]:[호스트 포트]:[컨테이너 포트] 특정 바인딩 IP인 호스트의 N번 포트를 컨테이너의 N번 포트와 연결(여러번 사용 가능)
-v[호스트 디렉토리]:[컨테이너 디렉토리] 볼륨.호스트의 디렉토리와 컨테이너의 디렉토리 공유
-e[키=값] 컨테이너 실행시 필요한 환경변수 전달

docker ps -a

docker start <아이디 or name명>

docker stop <아이디 or name명>

docker restart <아이디 or name명>

docker rm -f <아이디 or name명>

docker rmi <이미지:태그>
docker rmi tomcat:9

docker system prune -a -f

도커 mysql데이터베이스 설치

docker search mysql

docker pull mysql

docker run --name <container_name> -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=비밀번호 mysql:8.0.41

  1. attach - 가동중인 컨테이너에 연결
  • 백그라운드로 프로세스가 돌고 있으면 가동되는 프로세스 진입
docker ps
docker attach <가동중인컨테이너>
  1. exec - 가동중인 컨테이너에 새로운 프로세스로 연결
  • mysql서버는 백그라운드로 돌기 때문에 이렇게 접근
  • 진입시 우분투 이미지가 설치된 우분투 환경으로 접속
  • -i : 인터렉티브(상호작용), -t : tty(터미널)
docker exec -it <가동중인컨테이너> /bin/bash
docker exec -it <가동중인컨테이너> /bin/sh
docker exec -it <container_name> /bin/bash
mysql -u root -p