//////
Search
🍊

[1103] docker 개념, docker 명령어 실습, 워드프레스 띄우기

생성일
2022/11/03 06:01
태그
TodayILearn
Spring
Docker
생성일 1
목차

에라토스테네스 체

소수를 판별하는 알고리즘 소수들을 대량으로 빠르고 정확하게 구하는 방법
소수
1과 자기 자신 이외의 약수를 갖지 않는 1보다 큰 자연수
원리
N까지의 수들을 2부터 차례대로 자기 자신을 제외한 배수를 모두 제외시킨다.
이 방법을 통해, 합성수는 모두 제외 되고 소수만 남게 된다.
예시 2의 배수를 제외
2
3
4
5
6
true
true
false
true
false
→ 위 예시 처럼, 자기 자신을 제외한 자신의 배수를 모두 제외시킨다.

실습

도커(Docker)

도커란? 리눅스 컨테이너에 여러 기능을 추가함으로써 애플리케이션을 컨테이너로서 좀 더 쉽게 사용할 수 있게 만들어진 오픈소스 프로젝트
기존 가상화(VM) vs 도커(Docker)
게스트 OS의 유무
그러나 도커의 경우, Linux에서만 사용 가능

이미지와 컨테이너

도커의 이미지 - 컨테이너 생성 시, 필요한 요소 - 가상 머신을 생성할 때 사용하는 iso 파일과 유사한 개념 - 여러 개의 계층으로 된 바이너리 파일로 존재, 컨테이너 생성 및 실행할 때 읽기 전용
컨테이너란? 리눅스 + 애플리케이션 필요한 라이브러리나 어플리케이션 등을 하나로 모아 별도의 서버인 것처럼 사용할 수 있게 만든 것
도커 이미지의 종류
우분투, CentOS 등 기본적인 리눅스 운영체제
아파치, MySQL, 등의 각종 애플리케이션
하둡, 스파크 등의 빅데이터 분석 도구

도커 볼륨

도커 이미지로 컨테이너 생성 시, 이미지는 읽기 전용
컨테이너에서 활동은 컨테이너 내의 컨테이너 레이어에 기록됨
→ 컨테이너 삭제 시, 데이터가 모두 사라짐
→ 해결방안: 볼륨 이용
리눅스와 도커 컨테이너간에 같은 디렉토리를 바라보도록 하는 것
도커 생성 시, -v 옵션을 사용하여 공유 가능
[호스트의 공유 디렉토리]:[컨테이너의 공유디렉토리]
-v /root/mysql_data:/var/lib/mysql mysql:5.7
Shell
복사

실습

1. Ubuntu 22.04 이미지 생성 및 컨테이너 생성하여 환경변수 출력하기

docker run -i -t ubuntu:22.04 printenv
Shell
복사
docker ps -a 명령어를 통해 컨테이너 목록 확인 가능
-i 옵션
표준 입력(stdin)을 활성화하며, 컨테이너와 연결되어 있지 않더라도 표준 입력을 유지
-t 옵션
TTY모드 사용

2. -e 옵션을 통해 환경변수 생성

docker run -i -t ubuntu:22.04 -e SPRING_DATASOURCE_URL=jdbc
Shell
복사

3. 컨테이너 삭제

docker kill <container_id> docker ps -a docker rm <container_id>
Shell
복사

4. 도커 이미지 지우기

docker rmi <image_name>:<version>
Shell
복사

5. 도커를 사용하여 wordpress 띄우기

docker run -d --name wordpressdb\ -e MYSQL_ROOT_PASSWORD=password \ -e MYSQL_DATABASE=wordpress \ mysql:5.7
Shell
복사
mysql 컨테이너를 생성하여 실행
wordpress라는 db 생성
docker run -d\ -e WORDPRESS_DB_HOST=mysql\ -e WORDPRESS_DB_SUER=root\ -e WORDPRESS_DB_PASSWORD=password\ --name wordpress\ --link wordpressdb:mysql\ -p 80\ wordpress
Shell
복사
앞에서 생성한 mysql과 연동하여 wordpress 컨테이너 생성 및 실행
-p 옵션 -p [호스트의 포트]:[컨테이너 포트] → 호스트의 포트를 컨테이너 포트에 연결한다는 의미

스프링 부트 설정 파일 우선 순위

OS 환경 변수가 application.yml의 우선순위보다 높기 때문에 OS 환경변수의 설정 값이 먼저 들어가게 된다.
No
Priority
Property
1
Low
기본 속성(SpringApplication.setDefaultProperties)
2
@Configuration 클래스
3
application.properties 파일
4
OS 환경 변수
5
자바 시스템 변수(System.getProperteis())
6
JNDI attributes(java:comp/env)
7
ServletContext 초기화를 위한 매개변수
8
ServletConfig 초기화를 위한 매개변수
9
SPRING_APPLICATION_JSON(환경 변수 또는 시스템 변수에 포함된 인라인 JSON)
10
Command Line Arguments
11
@SpringBootTest와 함께 사용된 properties
12
@TestPropertySource
13
High
devtools 활성 상태일 때 $HOME/.config/spring-boot 디렉토리 내 devtools 전역 설정