[devops]Docker, jenkins
- 서버란 무엇인가?
내 웹 사이트를 다른 사람 또는 컴퓨터에서 전달해주는 프로그램. 그 서버 프로그램이 담겨져서 실행되는 컴퓨터를 서버 컴퓨터라고 한다. 다른 사람이 365일 언제나 서버로부터 정보를 받아올 수 있으려면 서버컴퓨터가 늘 켜져있어야 하고 정상작동 해야한다. 집에 있는 내 컴퓨터에 서버프로그램을 설치하여 서버컴퓨터로 만들어서 켜놓을 수 있다.
이렇게 많은 서버들을 미리 구축해주고 한대 씩 빌려주는 서비스를 서버호스팅이라 한다.
+ 가상머신(Virtual Machine, VM): 한 서버 컴퓨터 안에서 CPU, 메모리, 디스크를 논리적으로 분할해서 별도의 컴퓨터처럼 만든것
기존에는 하나의 컴퓨터 안에서는 운영체제가 하나만 실행될 수 있었지만 가상머신을 여러개 만들어서 컴퓨터안에서 실행시킨다면 가상머신의 수만큼 각각 운영체제를 설치하고 실행할 수 있다.
서버호스팅 업체에서 가상머신만 따로 빌려주는 서비스도 실시했으며 이것을 클라우드 컴퓨팅이다 한다.
데표호스팅 업체는 AWS, GCP, AZURE 등이 있다.
AWS Lightsail
AWS Lightsail에서 제공하는 상품으로는 인스턴스, 컨테이너, 데이터베이스 생성, 네트워킹(고정IP, 배포, 로드밸런서, DNS영역), 스토리지(버킷, 디스크), 스냅샷이 있다.
Docker
도커는 컴퓨터의 다른 환경으로 부터 분리되어 독립된 환경에서 내 애플리케이션을 실행할 수 있다. 컨테이너라는 동일한 형식으로 애플리케이션이 패키징되어서 사용되기 때문에 독립된 환경에서 실행된다. 하나의 이미지를 만들어서 그걸 올리면 컨테이너가 되는 것.
docker run hello-world
docker run -p 80:80 nginx
[option]
-p : 호스트(host) 컴퓨터에서 컨테이너에서 리스닝하고 있는 포트로 접속할 수 있도록 설정해준다(내 80포트와 nginx 80포트와 연결)
- b: 컨테이너를 백그라운드에서 실행
ctrl + c를 누르는 순간 중지가 된다( -b를 하지 않으면)
-f: 실행될때마다 로그 보기
# getting-started 이미지 실행하기
docker run -d -p 80:80 docker/getting-started
# 로그 보기
docker logs -f ecstatic_sanderson
Docker - compose
여러개의 컨테이너를 동시에 묶어서 실행 및 관리할 수 있는 도구
docker-compose.yml 파일
docker compose가 컨테이너를 실행하기 위해 필요한 정보들을 입력해놓는 파일
컨테이너 실행하기
docker compose up
컨테이너 정지하기
docker compose stop
컨테이너 정지 및 삭제하기
docker compose down
docker compose stop # 실행파일이 있는 곳에서 할 때 적용을 받음
docker compose down # 정지 && 삭제
https://medium.com/sjk5766/docker-compose-stop-vs-down-%EC%A0%95%EB%A6%AC-ffc4f64cf75b
[docker compose stop vs down 정리
결론 먼저 이야기하면
medium.com](https://medium.com/sjk5766/docker-compose-stop-vs-down-%EC%A0%95%EB%A6%AC-ffc4f64cf75b)
jenkins는 포트를 두개 쓴다.
docker run -p 8080:8080 -p 50000:50000 -d --restart=on-failure -d jenkins/jenkins:lts-jdk11
# jenkins는 port를 2개쓴다
# --restart=on-failure 실패했을 때 다시 스타트