Windows 開發者生態系的 Docker 入門介紹,從下載安裝到實際使用。以開發者的觀點探討 Docker 可以為開發流程與應用所帶來的便利與革新;從營運人員的角度探討 Docker 的容器化技術如何使 Infra as Code 以及 MicroServices 如何可能,從而也觸及 Docker 之間交互作用,引導出為什麼我們需要 Kubernetes Orchestration 來達到複雜的管理與調度 😀

說明
Docker Desktop
- WSL2 Backend (Win Home / Win Pro)
- HypverV Backend (Win Pro)
Windows Container
- Windows Server Container (共用核心)
- HyperV Container (獨立核心、完全隔離)
安裝方式 (WSL2 Backend)
開啟 Windows 子系統 Linux 版、Windows Hypervisor 平台、虛擬機器平台
使用 Dcoker Desktop 進行安裝
如果切換成 Windows Containers 模式,因為 Windows Home 不支援 HyperV 會出現錯誤,使 Docker Engine 無法啟動。
Scenario
WordPress & MySQL
參考 vc7 所分享筆記的 compose.yml,並且在結合 phpmyadmin
docker-compose.yml
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: admin
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress@
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress@
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "8080:80"
depends_on:
- db
environment:
PMA_HOST: db
PMA_PORT: 3306
volumes:
db_data:
啟動 docker compose
docker-compose up -d
清除 Volume 資源的方式
docker volume ls
dcoker volume rm wp_db_data
docker volume prune
OWASP Juice
打靶機、練滲透測試不需要大費周章地準備環境了,Docker 起,Image 落,juice-shop 就完成部署了 🙂
docker pull bkimminich/juice-shop
docker run --rm -p 3000:3000 bkimminich/juice-shop
參考資料
Windows 10 Home家用版安裝 Hyper-V 與 Docker
Introducing the Docker Desktop WSL 2 Backend | docker
用 Docker Compose 快速生成一個 WordPress 網站(筆記,無細節說明)
容器初體驗 - 搞個 IIS Container 來部署網站
在 WSL 2 上開始使用 Docker 遠端容器 | learn.microsoft
用 Docker 建立不同 Angular CLI 版本的開發環境
時代在變 Docker 要會:台北 Docker 一日入門篇
快速上手 Windows Containers 容器技術 (Docker Taipei)
開發人員不可不知的 Windows Container 容器技術預覽
Windows Container 101: dotNET, Container, Kubernetes
iThome
Container技術三部曲(一)迎接下一個雲端火紅技術Docker