# Docker簡介 ### 主講人:黃夙賢 --- ## [Docker](https://www.docker.com/) - 2013年由Docker Inc公司基於GO語言開發,2019年被Mirantis公司收購 - 最多個人使用的容器化技術,也最簡單 ![](https://i.imgur.com/Z9FTWtn.png) --- ## Docker架構 ![](https://i.imgur.com/DeXGVqD.png) --- - <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>進行儲存。 ![](https://i.imgur.com/DeXGVqD.png =300x) --- ## <font color=maroon>Docker Hub</font> - 儲存Docker image的地方 - https://hub.docker.com/ - 所有程式需要用的的docker映像檔,都從docker hub下載 ![](https://i.imgur.com/WfE5orI.png =600x) --- ## <font color=red>Docker Image</font> - 儲存在docker hub的程式檔案 - 有官方、私人提供的檔案,讓需要的人下載 - 官方、Stars越高,代表image正確、受歡迎 - 可自行設計自己的docker image ![](https://i.imgur.com/GDC16oz.png =550x) --- ## <font color=#1589ff>Docker Container</font> - 由Docker image執行起來的服務 - 通常由docker run命令執行 - 一個映像檔可以執行好幾個docker container - 一個word程式,可以開啟好幾個word檔案 ![](https://i.imgur.com/3LpwugE.png =900x) ![](https://i.imgur.com/gno6VZ2.png =900x) --- ## <font color=brown>Docker Volume</font> - Docker Volume資料卷,用來儲存容器資料 - 資料捲跟容器服務可以分開來,獨立管理資料 - 容器服務會當機,但資料卷在硬碟不會消失 - 只要容器服務重啟,連結上資料卷,依舊可以回復容器狀態 ![](https://i.imgur.com/awN1o0P.png) --- ## <font color=green>Docker Network</font> - docker network是將容器連上網路的方法 ![](https://i.imgur.com/Kwk3p7G.png) --- ## 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系統與套件) ![](https://i.imgur.com/j8NziMh.png) --- - sudo apt upgrade (升級系統與相關套件) ![](https://i.imgur.com/FFcBB12.png =500x) ![](https://i.imgur.com/tQkqVzf.png =500x) --- - curl -fsSL https://get.docker.com -o get-docker.sh (下載docker安裝檔) - sudo sh get-docker.sh (執行docker安裝檔) ![](https://i.imgur.com/2esXdoP.png =450x) ![](https://i.imgur.com/xiuaYzE.png =450x) --- - sudo usermod -aG docker $USER (把docker加入使用者群組) - exit(先離開環境再進去,exit之後再vagrant ssh) ![](https://i.imgur.com/nWUzM01.png) --- - docker version (檢查docker是否安裝成功) ![](https://i.imgur.com/0OAVwTp.png =450x) --- ## Docker in Windows - [Docker Desktop](https://www.docker.com/products/docker-desktop/) ![](https://i.imgur.com/VEv6554.png =700x) --- ![](https://i.imgur.com/e8OarTN.png =400x) ![](https://i.imgur.com/oY3bO2z.png =400x) ![](https://i.imgur.com/tGX3HyP.png =400x) ![](https://i.imgur.com/WfwzKAj.png =390x) --- ## WSL 與 Ubuntu整合 - 設定->Resource->WSL Integration ![](https://i.imgur.com/4AfZ4ju.png =650x) --- ## Docker初體驗 ``` docker run hello-world ``` - 最簡單的hello-world docker - docker會先去docker hub抓取一份hello-world的image到本地端執行,有了image,以後重複執行hello-world容器就不需去docker hub抓取 ![](https://i.imgur.com/BR53wWO.png =600x) --- ## Hello-World in Windows Docker ![](https://i.imgur.com/VlNsIWO.png =800x) --- ## 移除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}]"}
    166 views