Why Docker
- 啟動速度快
- 系統資源使用率高
- 可以同時執行更多 AP
Docker Tools
- Docker Machine: 從零到有幫你佈署 Docker 環境
- Docker Swarm: 用 Docker 建立 cluster 應用
- Docker Compose: 定義並執行複雜的 Docker 應用
Terms
- Image: 映像檔,可以稱之為一個 read-only template,如 ubuntu + apache,映像檔可以建立容器
- Container: 容器,執行應用,它可以被啟動、開始、停止、刪除,每個容器都是互相隔離的
- Repository: 倉庫,集中存放映像檔的地方,公開的如 Docker Hub
Note: 映像檔是唯讀的,容器是在映像檔上多加一層可寫層
Usage
FAQ
時區問題
建 image 時執行這個指令:
RUN echo "Asia/Taipei" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata |
或是 container 直接執行也可以:
docker exec -ti containerID echo "Asia/Taipei" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata |
Docker 「進容器」的方法
開啟的時候直接打開 bash shell
docker run -it --name=some-php php:7.0-apache bash |
一般離開是直接打 exit
,但同時會把容器關閉,如果不想關掉的話,可以按 Ctrl + P + Q
回到 host 上
Warning: 這快速鍵好像是 bash 獨有的,不是很確定
要再回去執行 bash 的容器裡的指令
docker attach some-php |
Docker 為容器命名的規則
https://github.com/docker/docker/blob/master/pkg/namesgenerator/names-generator.go
基本上就是形容詞對人名,但最後面有個很有趣的限外規則
Docker stop vs pause
主要是送出信號的差異
https://stackoverflow.com/questions/51466148/pause-vs-stop-in-docker