일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 적용우선순위
- docker명령어
- subquery
- EC2
- 컨테이너실행
- 외부키
- 검색
- 참조키
- 메세지수정
- appspec.yml
- 서브쿼리
- 테스트
- querydsl
- 테스트메소드
- Query
- 2 > /dev/null
- WeNews
- 추후정리
- application.yml
- MySQL
- AuthenticationEntryPoint
- foreignkey
- appspec
- ㅔㄴ션
- ubuntu
- 예약
- 포트
- 커밋메세지수정
- 네이티브쿼리
- 메소드명
- Today
- Total
제뉴어리의 모든것
[Section 4] [Cloud] 배포 컨테이너 - 2 본문
위 내용은 본인의 공부를 위한 내용이므로, 정확한 정보가 아닐 수도 있습니다.
감안하여 보도록 합시다.
전체 항목
컨테이너 기술이란?도커(Docker) 란?Docker 핵심 개념- Docker 기본 사용법
- Docker 사용시 기본 명령어
- 추가적으로 알아 볼 사항
Docker 기본 사용법
기본 사용법을 알기 전에 알아야할 개념이 있다
- Docker Engine
"Docker Engine is an open source containerization technology for building and containerizing your applications"
쉽게 생각해서, 그냥 이게 실질적인 도커다.
위에서 본 도커의 기본적인 아키텍쳐의 기능들을 가능하게 해주는 모듈들의 패키지라고 할 수 있겠다.
Docker Host, Docker Client, Docker Registry 같은 것들이 다 설치되는것이다. - Docker Desktop
"Docker Desktop is an easy-to-install application for your Mac, Linux, or Windows environment that enables you to build and share containerized applications and microservices."
Docker에서 제공하는 기능의 설치와, 사용을 손쉽게 해주는 프로그램이다. (패키지라고 할수도 있겠다)
Docker의 여러 모듈을 한번에 설치해주고 해당 기능들을 콘솔같은곳에서 조절할 수 있게 해주는 것이다. - Docker Build
이미지를 생성할때 사용되는 Docker의 모듈 중 하나 - Docker Compose
Docker에서 여러개의 컨테이너를 구동시킬때 사용할 수 있는 도구라고 생각하면 된다. (어쨋든 이것도 모듈이다)
Container를 하나하나 시작 시킬수도 있지만, Compose를 사용하면 구동시킬 컨테이너들을 정의해놓고
한번에 시작시킬 수 있다.
그리고 그러한 정의 내용은 YAML (YML) 파일로 작성한다.
- docker-compose.yml 파일 예시
version: "3.9" # optional since v1.27.0
services:
web:
build: .
ports:
- "8000:5000"
volumes:
- .:/code
- logvolume01:/var/log
depends_on:
- redis
redis:
image: redis
volumes:
logvolume01: {}
정리하자면,
도커 엔진을 깔고 (데스크탑까지 깔면 더 편리하게 사용 가능하다, 마치 MySQL의 워크벤치 같은것이다.)
이미지를 기반으로 컨테이너를 만든다.
그리고 그 이미지는 내가 만들 수도 있고, docker registry에서 다운받을 수도 있다.
즉, 이미지가 있어야 컨테이너를 만들고 컨테이너를 실행시켜서 해당 컨테이너 배포 환경과 똑같이 만들어 놓고
그 컨테이너에 낸 빌드파일들을 올려서 배포환경에서 잘 작동하는지 여러 테스트들을 할 수 있는것이다.
참조 : https://docs.docker.com/desktop/
https://www.daleseo.com/docker/
https://www.44bits.io/ko/post/easy-deploy-with-docker
https://cultivo-hy.github.io/docker/image/usage/2019/03/14/Docker%EC%A0%95%EB%A6%AC/
https://help.iwinv.kr/manual/read.html?idx=583
https://programforlife.tistory.com/67
https://velog.io/@weekbelt/%EB%8F%84%EC%BB%A4%EB%8D%B0%EB%AA%ACDocker-Daemon
https://wooono.tistory.com/123
기본 명령어
다음 명령어들은 리눅스에서 사용할 경우 모두 관리자 권한이 필요하므로, sudo를 붙여줘야 한다.
- 이미지로 도커 컨테이너 생성
생성만 하고 바로 실행시키진 않는다
$ docker create [이미지명]
- 도커 컨테이너 실행
docker start <컨테이너 이름 혹은 아이디>
- 컨테이너 생성 + 실행
위에서 설명한 create 와 start 의 조합이라고 생각하면 된다. 생성하고 바로 실행도 시킨다.
docker run -d -p 80:80 docker/getting-started
: docker : 도커 명령어를 칠때 기본적으로 붙는 부분
: run : docker를 실행시키는 부분
: -d : 지금 실행시키려는 컨테이너를 백그라운드에서 실행시키겠다는 옵션
: -p : 포트에 대한 옵션을 사용하겠음을 명시, 뒤이어 오는 80:80 이 옵션에 대한 설정 값으로
: host pc의 80 포트를 컨테이너의 80 포트와 매핑.
: 즉, hotst pc의 80 포트로 들어오는 요청을 컨테이너의 80 포트로 전달
: docker/getting-started : 실행시키려는 컨테이너에 사용되는 이미지.
참고로, 컨테이너를 실행시키는 명령어는 다음과 같이 두가지 형식이 있다.
docker run [뒤에 내용]
docker container run [뒤에 내용]
위에 두 명령어는 동일하다.
+ create, start, run 차이에 대한 참조 :
https://linuxhandbook.com/docker-run-vs-start-vs-create/
- 실행중인 컨테이너 재시작
sudo docker restart <컨테이너 이름 혹은 아이디>
- 도커 엔진에 존재하는 이미지 확인
docker images
- 이미지 다운
docker pull [이미지명]
https://linuxhandbook.com/docker-run-vs-start-vs-create/
https://stackoverflow.com/questions/51247609/difference-between-docker-run-and-docker-container-run
- 실행 중인 컨테이너 확인 (실행중인것만)
docker ps
-- 옵션
-a : 중지 중인 컨테이너까지 모두 확인
ex ) docker ps -a
- 컨테이너 중지
sudo docker stop <컨테이너 이름 혹은 아이디>
- 컨테이너 접속(attach)
docker attach <컨테이너 이름 혹은 아이디>
추가적으로 알아볼 사항
- docker swarm
- docker service
인스턴스만 개별적으로 실행 시키는것과
서비스로 묶어서 실행시키는 방법이 있는듯하다.
'코드스테이츠 > 정리 블로깅' 카테고리의 다른 글
[Section2] [네트워크] HTTP (0) | 2022.10.17 |
---|---|
[Section1] section1 회고 (0) | 2022.10.17 |
[Section 4] [Cloud] 배포 컨테이너 - 1 (0) | 2022.10.09 |
[Section 4] [Spring Security] 배포 자동화 - 1 [추후 정리] (0) | 2022.10.07 |
[Section 4] [Spring Security] 운영환경 구성 - 2 ( 실습 ) [추후 정리] (0) | 2022.10.05 |