Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[박성재]8월 프리온보딩 사전미션 제출 #82

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 13 additions & 65 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,78 +1,26 @@
# Docker : 나만의 도커 이미지 만들기 부터, 클라우드 배포까지!
8월 원티드 프리 온보딩 챌린지 - docker 뽀개기

## 사전 미션 (박성재)
1. 컨테이너 기술이란 무엇입니까? (100자 이내로 요약)

## I. 사전 미션하는 법
컨테이너 기술이란 논리적인 공간을 만들어 하나의 서버처럼 사용할 수 있게끔 하는 기술입니다. 컨테이너를 사용하면 개발 시 설정했던 여러 환경설정들을 배포나 개발하려는 PC마다 별도로 구성할 필요가 없어지고 최초 1회만 세팅해놓으면 되어 매우 편리합니다. 심지어 호스트의 OS가 달라도 어디서든 구동시킬 수 있다는 장점이 있습니다. 또한 VM과 달리 OS 가상화 개념을 사용하여 동일 OS 위에서 커널을 공유하고, 프로세스로서 실행되게 됩니다. 이에따라 메모리 등의 부담이 적어지고, 실행속도 또한 빠릅니다.

### 방법 1
1. 해당 repository를 fork 하세요.
2. 로컬에서 작업한 커밋을 fork한 repository에 push 하세요.
5. Pull Request를 생성하여, 사전 미션을 제출해주세요.
2. 도커란 무엇입니까? (100자 이내로 요약)

### 방법 2
1. 해당 repository를 clone 하세요:
```
git clone [email protected]:drum-grammer/docker-pro-wanted.git
```
2. 별도의 브랜치를 생성하세요:
```
git checkout -b my-branch-xx
```
3. 아래 사전 미션 내용을 보고 답안을 마크다운 형식으로 작성하시고, `./mission/{nickName}` 디렉토리 저장해주세요.
도커란 리눅스 컨테이너를 빌드, 배포, 실행, 업데이트, 관리할 수 있는 오픈 소스 플랫폼입니다. 0.9버전 부터는 직접 개발한 libcontainer 컨테이너를 사용하고 있습니다. 도커를 통해 애플리케이션 실행 환경을 코드로 작성할 수 있습니다. 특히 Dockerfile을 통해 이미지를 만들어 편리하게 배포환경을 구성할 수 있습니다.

4. 해당 브랜치를 푸쉬해주세요.
```
git push -u origin my-branch-xx
```
5. Pull Request를 생성하여, 사전 미션을 제출해주세요.
3. 도커 파일, 도커 이미지, 도커 컨테이너의 개념은 무엇이고, 서로 어떤 관계입니까?

도커 파일 : 도커에서 이미지를 생성하기 위한 용도로 작성하는 파일입니다. 즉, 만들 이미지에 대한 정보를 기술해 둔 템플릿의 개념이라고할 수 있습니다.
도커 이미지 : 도커에서 컨테이너를 생성할 때 필요한 요소이며, 가상 머신을 생성할 때 사용하는 iso 파일과 비슷한 개념입니다. 이미지는 컨테이너를 생성하고 실행할 때, 읽기 전용으로 사용되며 여러 계층으로 된 바이너리 파일로 존재합니다.
도커 컨테이너 : 도커 이미지로 생성할 수 있고, 컨테이너를 생성하면 호스트 및 다른 컨테이너로부터 격리된 시스템 자원 및 네트워크를 사용할 수 있는 공간이 생성됩니다.

## II. 사전 미션
1. 컨테이너 기술이란 무엇입니까? (100자 이내로 요약)

2. 도커란 무엇입니까? (100자 이내로 요약)

3. 도커 파일, 도커 이미지, 도커 컨테이너의 개념은 무엇이고, 서로 어떤 관계입니까?
도커 이미지와 도커 컨테이너 : 도커 엔진에서 사용하는 기본 단위는 이미지와 컨테이너이며 도커 엔진의 핵심입니다.
도커 이미지 : 컨테이너 -> 1:N 관계입니다.
즉, 도커 이미지 : 컨테이너 -> 운영체제 프로그램 -> 프로세스라고 이해할 수 있습니다.

4. [실전 미션] 도커 설치하기 (참조: [도커 공식 설치 페이지](https://docs.docker.com/engine/install/))
- 아래 `도커 설치부터 실행 튜토리얼`을 참조하여 도커를 설치하고, 도커 컨테이너를 실행한 화면을 캡쳐해서 Pull Request에 올리세요.


## III. 도커 설치부터 실행 튜토리얼
### 도커 설치
#### 1. 도커 공식 웹사이트에서 "[Get Started](https://www.docker.com/get-started)"를 클릭합니다.
#### 2. OS에 맞는 설치 파일을 다운로드 받습니다.
- MacOS의 경우 "Download for Mac"을 클릭합니다.
- Window 일 경우 "Download for Windows"를 클릭합니다.
- 다운로드한 설치 파일을 실행합니다.

### 도커 컨테이너 실행 시키기
#### 1. `나의 사전 미션 폴더`를 만들고 해당 폴더로 이동합니다.
```shell
cd path/to/docker-pro-wanted/mission
mkdir my-name
cd my-name
```

#### 2. "Hello, World!"를 출력하는 도커 파일을 만듭니다.
```shell
vim Dockerfile
```
`i`를 눌러 편집모드로 전환 후 아래 내용을 작성합니다:
```Dockerfile
FROM alpine:latest
CMD ["echo", "Hello, World"]
```
`ESC`를 눌러 명령모드로 전환 후, `:wq` 입력, `enter`키를 눌러 `Dockerfile`을 생성합니다.

#### 3. 도커 파일로 도커 이미지를 빌드합니다.
```shell
docker build -t hello-world .
```
(위 명령어의 의미는 "현재 디렉토리에서 `Dockerfile`을 읽어 도커 이미지를 만들고, 해당 이미지에 `hello-world`라는 `tag` 를 붙혀라" 입니다.)

#### 4. 빌드한 도커 이미지를 실행합니다.
```shell
docker run hello-world
```
이 명령어는 hello-world라는 이름의 도커 이미지를 실행시켜 "Hello, World!"를 출력합니다.
![image](https://github.com/mirea70/docker-training/assets/101246806/a5011b04-820f-4ee6-9fa3-186e7cab6b42)