# Docker簡介
### 主講人:黃夙賢
---
## [Docker](https://www.docker.com/)
- 2013年由Docker Inc公司基於GO語言開發,2019年被Mirantis公司收購
- 最多個人使用的容器化技術,也最簡單

---
## Docker架構

---
- <font color=maroon>Docker Hub</font>雲端儲存<font color=red>Docker Image(映像檔)</font>
- 需要<font color=red>docker image</font>時,會從<font color=maroon>docker hub</font>抓取(Pull)一份<font color=red>Docker image</font>至本地端硬碟
- 執行(Docker run)<font color=red>docker iamge</font>變成的<font color=#1589ff>Dcoker Container(容器)</font>。一份<font color=red>docker image</font>可執行成多份的<font color=#1589ff>docker container</font>
- <font color=#1589ff>Docker container</font>之間透過<font color=green>Docker Network</font>聯外以及容器間互相溝通
- 而資料則透過<font color=brown>Docker Volume</font>進行儲存。

---
## <font color=maroon>Docker Hub</font>
- 儲存Docker image的地方
- https://hub.docker.com/
- 所有程式需要用的的docker映像檔,都從docker hub下載

---
## <font color=red>Docker Image</font>
- 儲存在docker hub的程式檔案
- 有官方、私人提供的檔案,讓需要的人下載
- 官方、Stars越高,代表image正確、受歡迎
- 可自行設計自己的docker image

---
## <font color=#1589ff>Docker Container</font>
- 由Docker image執行起來的服務
- 通常由docker run命令執行
- 一個映像檔可以執行好幾個docker container
- 一個word程式,可以開啟好幾個word檔案


---
## <font color=brown>Docker Volume</font>
- Docker Volume資料卷,用來儲存容器資料
- 資料捲跟容器服務可以分開來,獨立管理資料
- 容器服務會當機,但資料卷在硬碟不會消失
- 只要容器服務重啟,連結上資料卷,依舊可以回復容器狀態

---
## <font color=green>Docker Network</font>
- docker network是將容器連上網路的方法

---
## Docker安裝
- 找一台linux (Ubuntu 22.04)
- sudo apt update (更新ubuntu系統與套件)
- sudo apt upgrade (升級系統與相關套件)
- curl -fsSL https://get.docker.com -o get-docker.sh (下載docker安裝檔)
- sudo sh get-docker.sh (執行docker安裝檔)
- sudo usermod -aG docker $USER (把docker加入使用者群組)
- exit(先離開環境再進去,exit之後再vagrant ssh)
- docker version (檢查docker是否安裝成功)
---
- sudo apt update (更新ubuntu系統與套件)

---
- sudo apt upgrade (升級系統與相關套件)


---
- curl -fsSL https://get.docker.com -o get-docker.sh (下載docker安裝檔)
- sudo sh get-docker.sh (執行docker安裝檔)


---
- sudo usermod -aG docker $USER (把docker加入使用者群組)
- exit(先離開環境再進去,exit之後再vagrant ssh)

---
- docker version (檢查docker是否安裝成功)

---
## Docker in Windows
- [Docker Desktop](https://www.docker.com/products/docker-desktop/)

---
 
 
---
## WSL 與 Ubuntu整合
- 設定->Resource->WSL Integration

---
## Docker初體驗
```
docker run hello-world
```
- 最簡單的hello-world docker
- docker會先去docker hub抓取一份hello-world的image到本地端執行,有了image,以後重複執行hello-world容器就不需去docker hub抓取

---
## Hello-World in Windows Docker

---
## 移除docker套件
```
sudo apt-get remove --auto-remove docker
sudo apt-get purge docker-ce
sudo rm -rf /var/lib/docker
```
---
{"metaMigratedAt":"2023-06-17T18:26:39.504Z","metaMigratedFrom":"YAML","title":"Docker簡介","breaks":true,"contributors":"[{\"id\":\"ef0225b9-6c2a-4012-82c9-fa1031d2c4db\",\"add\":3633,\"del\":22}]"}