Docker Machine & Compose & Swarn
Docker 基礎教學
參考資料
- https://coreos.com/
- https://docs.docker.com/engine/installation/linux/ubuntu/#prerequisites
- https://philipzheng.gitbooks.io/docker_practice/content/
- http://www.ithome.com.tw/news/91847 //基本概念
- https://goo.gl/BvrYCg //入門教學
- https://www.gitbook.com/book/joshhu/dockercommands/details //全面易懂docker指令
- http://www.codedata.com.tw/social-coding/docker-layman-abc //門外漢的Docker小試身手
- https://goo.gl/Az9qrx //Docker教學 with macOS
- https://read01.com/4DjkAO.html //CoreOS安裝與配置
- http://www.ithome.com.tw/news/106371 //CoreOS發布開源專案Torus
- http://mycodetub.logdown.com/posts/737534-use-mongodb-docker-image //在docker上使用mongodb
- https://docs.docker.com/engine/reference/builder/#dockerignore-file //Docker官方文件
- http://www.ithome.com.tw/news/113303 //專家深入剖析Docker容器常見攻擊手法與防護對策
- https://blog.fntsr.tw/articles/2016/03/06/10-things-to-avoid-in-docker-containers/ //在 Docker Container 裡應該避免的 10 件事
- https://codefresh.io/blog/node_docker_multistage/ //Create lean Node.js image with Docker multi-stage build
- https://www.likol.idv.tw/docker-container-ip/ //Docker 中為 Container 指定真實IP地址
- https://cola.workxplay.net/devops-docker-development-environment/
- https://lighter.github.io/2016/05/11/from-vagrant-to-docker-how-to-use-docker-for-local-web-development/
- https://goo.gl/Om8FYZ
- https://goo.gl/kfk4j1 //官方Dockerfile 教學
- https://goo.gl/z5FdJU //微軟Docker教學
- https://github.com/pzxwhc/MineKnowContainer/issues/52 //Docker網路模組說明
- http://dockone.io/article/277 //淺顯易懂的docker教學
- https://developers.redhat.com/blog/2016/02/24/10-things-to-avoid-in-docker-containers //Docker的使用建議 Fat or Slim
- https://goo.gl/2Rq1mA //Entrypoint解說
- https://docs.docker.com/engine/admin/logging/fluentd //串接Log伺服器
- http://qiita.com/moaikids/items/8a8ee90e163f14e6e923 //Fluentd Logging 串接
- https://github.com/qianlei90/Blog/issues/36 //深入Dockerfile(二):最佳实践
基本操作
sudo docker login
//登入 hub.docker.com,上傳docker映像檔必須sudo docker logout
//登出 hub.docker.comsudo docker images
//列出本機有的 docker 映像檔sudo docker build
//依據 Dockerfile建立 odcker映像檔sudo docker run ubuntu
//執行ubuntu這個映像檔sudo docker ps
//列出 docker instancessudo docker stop
//停止 docker instancesudo docker rm
//刪除 docker instancesudo docker rm -f $(sudo docker ps -aq)
//一次刪除所有的 docker instancessudo docker rmi
//刪除 docker 映像檔sudo docker rmi -f $(sudo docker images -aq)
//一次刪除所有的 docker 映像檔sudo docker pull
sudo docker push
sudo docker commit -m "First Modify" -a "Sam" a55b50312c52 wafflecity/waffle_mongodb:latest
//必須於 instance 活著的狀態,於另一個視窗 commit- `sudo docekr exec -it a55b50312c52 exec /bin/bash //執行a55b50312c52 instance 內的 /bin/bash
sudo docker cp ./hello.js a55b50312c52:/tmp
//複製hello.js到容器內的/tmp下
Dockerfile範本 // https://goo.gl/46gZsT or https://goo.gl/CVsCL1 or https://goo.gl/HeX40T
FROM redis:latest //映像檔取自 redis的最後一個版本
- MAINTANIER [email protected]
- WORKDIR //為後續的 RUN、CMD、ENTRYPOINT 指令指定工作目錄
- CMD [npm i ] //啟動時執行的命令,只能有一條 CMD 命令
- RUN
- ADD
- COPY
- EXPOSE 6379 //將本地6379埠對應到Docker的6379埠
- ENTRYPOINT //啟動後執行的命令,並且不會其他的參數覆蓋只能有一個 ENTRYPOINT
- VOLUME
- ENV //指定一個環境變數,會被後續 RUN 指令使用,並在容器運行時保持
- USER //指定運行容器時的使用者名稱或 UID,後續的 RUN 也會使用指定使用者
Docker-Compose
Install
sudo apt-get update && sudo apt-get -y upgrade
sudo apt-get install python-pip -y
sudo pip install --upgrade pip
sudo pip install docker-compose
Setting File -> docker-compose.yml
Reference
- https://docs.docker.com/compose/gettingstarted/
- https://yeasy.gitbooks.io/docker_practice/content/compose/commands.html
- https://docs.docker.com/get-started/part3/#your-first-docker-composeyml-file
- https://docs.docker.com/compose/
- http://www.summa.com/blog/docker-for-developers-composing-multi-container-networks
- http://blog.maxkit.com.tw/2017/03/docker-compose.html
- https://goo.gl/XBb6ZF