-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDocker-Linux-Introduction.qmd
149 lines (79 loc) · 3.32 KB
/
Docker-Linux-Introduction.qmd
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
---
title: "Docker-Linux-Introduction"
author: Changwoo Lim
date: 2022-08-02
format: revealjs
editor: visual
---
## 도커란?
{fig-align="center" width="300"}
- Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼
- 컨테이너 기반의 가상화 플랫폼
- 컨테이너란?
## Container

## 꼭 써야 하나요?
- 그렇진 않습니다.
- 쓰다 보면 편합니다
- 같은 작업을 반복 할 필요가 없고
- 처음 이미지를 만들었을때와 동일한 실행 환경을 보장합니다.
## 왜 쓰나요?
- 어느 환경이든 상관 없이 동일한 명령어를 사용했을 때 동일한 결과물을 기대할 수 있습니다.
- 단순한 작업을 반복하지 않아도 됩니다.(apt-get install 등)
- 프로그램을 간단히 설치하고, 또 삭제할 수 있습니다.
- 격리된 환경에서 프로그램을 구동할 수 있습니다.
## Linux Introduction
- ₩가 아닌, /로 디렉토리 구분
- 소유권과 권한 개념이 있음.
.png){fig-align="left" width="200"}
## Linux 주요 명령어 - Ubuntu 기준
- apt-get: 패키지 관리 명령어; apt-get update, apt-get install \<패키지명\>; apt-get remove \<패키지명\>
- ls: list, 디렉토리 내용 확인 --a: 전체 파일 보기; -l: 자세한 내용 보기
- wget: 다운로드
- chmod: 권한 수정
- chown: 소유권 수정
- 기타 명령어는 CheatSheet 참조
## Docker 주요 구문
- docker pull \<이미지\>:\<태그\> (\<태그\>는 없으면 lastest)
- docker run \<플래그\> \<이미지\>:\<태그\>
- docker exec \<플래그\> \<컨테이너\>
## Docker 주요 플래그
-d: 백그라운드 실행
-it: 꺼지지 않게 실행
-e: 환경변수 설정
-p: 포트 개방
\--rm: 컨테이너 일회성 실행
-n. \--name: 컨테이너 이름 설정
-v, ---volume: Volume Binding
-t, --tag: Image Tag
## Docker 주요 이미지
- [python](https://hub.docker.com/_/python)
- [node](https://hub.docker.com/_/node)
- [nginx](https://hub.docker.com/_/nginx)
- [mysql](https://hub.docker.com/_/mysql)
## Docker Compose
- 여러 개의 도커 이미지를 한 번에 관리할 수 있는 툴
- 예시: [https://openstat.ai](https://openstat.ai){style="color: black;"} / [Github](https://github.com/zarathucorp/openstat)
## Dockerfile
- Docker Image를 만들 수 있는 스크립트
- 같은 Dockerfile로 Build한 Image는 항상 동일(단, 원본 Image의 태그가 lastest인 경우 제외)
## 나만의 Dockerfile 만들기
- 방법 1. 직접 컨테이너에 접속해서 만들기
- 방법 2. Dockerfile로 빌드하기
## Docker Network

## Docker Volume

## Docker Volume

## Docker Volume

## Docker Volume
- Bind Mount란?
- Bind Mount와의 차이점
{width="400"}
## 실습: jinseob2kim/docker-rshiny
[Github](https://github.com/jinseob2kim/docker-rshiny)
## 참고자료
- [#1](https://www.44bits.io/ko/post/why-should-i-use-docker-container)
- [#2](https://wooono.tistory.com/123)