| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 소프티어
- java
- 1과목
- 백준 알고리즘
- C++
- 공부일지
- kotlin
- MYSQL
- 코딩교육봉사
- 백준알고리즘
- 자바
- 프로그래머스
- python
- softeer
- SQL
- 도커
- 데이터베이스
- 코틀린
- 문제풀이
- 알고리즘
- 회고
- 파이썬
- SW봉사
- 백준
- 코딩봉사
- 정보처리산업기사
- CJ UNIT
- BFS
- docker
- programmers
- Today
- Total
JIE0025
[Docker] 도커의 기본 개념과 전체 흐름 이해하기 본문
비전공자도 이해할 수 있는 Docker 입문 /실전
강의를 듣고 정리한 내용입니다 :)
비전공자도 이해할 수 있는 Docker 입문/실전| JSCODE 박재성 - 인프런 강의
현재 평점 4.9점 수강생 13,994명인 강의를 만나보세요. 비전공자 입장에서도 쉽게 이해할 수 있고, 실전에서 바로 적용 가능한 Docker 입문/실전 강의를 만들어봤습니다! Docker 기본 개념, Spring Boot를
www.inflearn.com
도커는 왜 배워야할까?
장점 == 이식성 때문이다.
특정 프로그램을 다른곳으로 쉽게 옮겨서 설치 및 실행할 수 있기 때문이다.
만약 친구가 컴퓨터에 MYSQL을 깔았다.
근데 내 컴퓨터에서 똑같이 한것 같은데 이상하게 에러가 떳다.
그 이유는 다양한데....
버전을 다른걸 설치했거나, 운영체제가 다르거나, 다른 프로그램과 보안프로그램.. 충돌이 일어나거나..
도커를 이용하면 프로그램을 명령어 한줄로 컴퓨터에 에러없이 설치하고 실행할 수 있게 된다.
귀찮은 설치 과정을 거치지 않아도 되고 항상 같은 설정과 버전으로 설치할 수 있다.
각 프로그램은 독립적인 환경에서 실행되기 때문에 프로그램간 서로 충돌이 일어나지 않는다!!
IP PORT의 기본 개념
특정 컴퓨터를 가리키는 주소를 IP라고 한다.
naver.com 이라는 서비스도 IP주소가 있다.
port : 한 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소
우리가 도메인에 접속할때 IP뒤에 적힌 번호가 포트번호이다.
:3000
한 컴퓨터에서도 여러가지 프로그램이 실행되고 있을텐데
이 프로그램을 구분하는것이 포트이다.
외부에서 SpringBoot 서버에 통신을 하고 싶은데
그걸 IP주소만으로는 접근할수없다 어떤 프로그램이랑 통신하기 위해 해당 프로그램의 포트번호도 필요하게 된다.
그렇다면 브라우저창에 우리가 포트번호를 왜 입력하지 않을까?
주소창에 도메인주소(naver.com)를 입력해 엔터 누르면
브라우저는 기본적으로 80 포트로 통신하도록 보내게 되어있다. (Defualt)
>> 만약 80이 아니라 다른 포트로 통신하고 싶다면 그때 명시하면 된다.
잘알려진 포트 well known port
0~65535 까지 사용할수 있는 포트번호중에
잘 알려진 포트라는 개념이 있다.
바로 0~1023은 주요 통신을 위한 규약에 따라 정해놓은 통신 포트번호를 WellKnown Port라고 한다.
22 : SSH 원격 접속을 위한 포트번호 * Secure Shell
* EC2등 특정 서버에 접속할때 사용하는 포트
80 : http
443 : https
특정 서버와 http 통신을 할 때 80을 안쓰고 3000/ 8080 이런걸 써도 상관은 없다.
이제 기본적인 내용을 알았으니 도커에 대해 알아보자.
도커란 무엇일까?
컨테이너를 사용해 각각의 프로그램을 분리된 환경에서 실행/ 관리할 수 있는 툴이다.
컨테이너(Container)는 무엇일까?
윈도우를 사용하다보면 하나의 컴퓨터에 여러 사용자로 나눠서 사용할 수 있게끔 구성되어있다.

A라는 사용자로 접속해서 카카오톡을 깔면 B라는 사용자로 접속하면 카카오톡이 없어 새로 깔아야한다.
컨테이너도 이와 유사하다.
하나의 컴퓨터 환경 내에서 독립적인 컴퓨터 환경을 구성하여 각 환경에 프로그램을 별도로 설치할 수 있게 만든 개념이다.
미니컴퓨터 = 컨테이너 라고 생각하면 편하게 이해할 수 있을것이다.
이 독립적인 환경을 컨테이너 라고 하고 ,
미니 컴퓨터를 포함하는 전체 컴퓨터 = 호스트 컴퓨터라고 한다.

컨테이너의 독립성
독립성을 갖고있다. 다른 환경과 분리되어 서로 영향을 끼치지 않는다.
어떤것을 독립적으로 분리헀는가?
저장공강 - 서로 각자의 저장공간이 있다. A 컨테이너 내부에서 B컨테이너 내부에 있는 파일에 접근할 수 없다.
네트워크 IP / PORT 도 각자 갖고 있다!
이미지(image) 는 무엇일까?
닌텐도 같은 게임기 보면 여러가지 칩을 꽂으면 여러가지 게임을 즐길 수 있다.
도커에서 닌텐도의 칩과 같은 역할을 하는게 이미지이다.
Node JS 기반의 Express js 서버 프로젝트를 이미지로 만들었다고 가정하자
도커로 이미지를 실행시키면 컨테이너 환경에서 실행된다 > 설치과정 없이 손쉽게 실행이 된다.
mysql 서버를 이미지로 만들었는데 도커에서 이미지를 실행하면 컨테이너 환경에서 실행된다 > mysql 설치할 필요없이 바로 사용할 수 있다.
즉 이미지에는 프로그램 실행하는데 필요한 설치과정/설정/버전정보등을 포함하여
프로그램 실행에 필요한 모든것이 포함 되어있다.
✅ 도커 설치
도커 설치 방법은 다른 블로그 글을 참고했다.
https://happylie.tistory.com/78
[Docker] 맥 OS에 도커 설치하기(Install Docker on MacOS)
맥 OS에 도커 설치하기이번에 MacBook(맥북)을 새로 설치하는 과정에서 Docker(도커)를 다시 설치하게 되어 설치하는 방법에 대해서 알아보도록 하자.우선 Docker(도커)를 설치하기 위해 공식 홈페이
happylie.tistory.com
⏺ 도커 버전 확인

이번에는 도커의 전체흐름을 느껴보자!
✅ Nginx 설치 및 실행
도커를 활용해서 설치및 실행을 해보자.
Nginx는 웹서버 /로드밸런싱/리버스프록시 가 가능한 서버이다
⏺ 이미지 다운로드
docker pull nginx

⏺ 도커 이미지 다운되었는지 확인
docker image ls

⏺ 이미지 실행
docker run --name webserver -d -p 80:80 nginx
⏺ 실행되었는지 확인
http://localhost:80

⏺ 프로세스가 정상적으로 떠있는지 확인

⏺ 도커 stop

'Infra > Cloud, Docker, Kubernetes' 카테고리의 다른 글
| [Docker] 외부에서 접속시 컨테이너 네트워크로 포트 연결 (0) | 2025.10.30 |
|---|---|
| [Docker] 도커 Hub / 자주 사용되는 도커 CLI 명령어 (1) | 2025.10.29 |
| [Docker] 컨테이너 만들고, 내부로 설치파일 옮기기 (0) | 2025.03.15 |
| [Docker] 도커 환경의 이해 - 도커허브, 레지스트리 (0) | 2025.01.29 |
| [Docker] 도커 이미지, 컨테이너, 도커 파일 (0) | 2025.01.28 |