Docker容器入門


為什么要看docker

從去年起就或多或少的接受了docker的熏陶,主要還是Infoq在去年有很多關於docker的實踐視頻講座,記得有一篇是《Docker在雪球的技術實踐》,當時聽的也不是很明白,就萌生了了解docker的想法。

可惜由於工作的關系,一直沒有接觸到這方面的內容,因此學習的計划也就暫時擱置。直到前不久京東促銷買了本docker的書籍、又上網買了本盜版的電子書,想趁着春節好好學習一番,沒想到回家就玩了。

直到最近抽出時間讀一下《第一本docker書》,就當做先了解了解。

我理解的docker

通過看了前幾章的書,以及百度了解,大體上理解了什么是docker。

按照我的理解,docker其實就是一種虛擬化的技術。就像virtualBox,你可以在windows上安裝,然后通過不同的鏡像裝不同的系統。而docker也是差不多,只不過它不是一種操作系統,而是在原生的系統之上直接虛擬出一個容器。這個容器有獨立的進程、權限、資源、網絡等等。

docker的口號跟java有點像,一次編寫,到處運行。因為docker本身作為一種容器,在什么地方安裝都是一樣的(現在對平台還是有一定要求的),而不管內部裝的是什么。

因此開發者只要寫代碼然后把程序放在容器中運行起來就行;運維人員呢,只需要了解怎么部署docker容器就可以了。

這樣就完全解決了,開發完的東西在開發人員自己電腦上好使,到別人電腦上就不好使的問題。

docker能做什么

通過上面的介紹,大致了解docker的生命周期可能是這樣的:

  • 構建:構建容器
  • 分發:CI持續集成,部署,鏡像
  • 運行:以守護進程的方式運行

那么docker到底都可以做什么呢?

  • 加速本地開發、構建流程
  • 在不同的環境中,得到相同的運行結果
  • 隔離的環境測試
  • 構建Paas

不過需要注意一點的是,docker目前對安裝環境還是有一定要求的。比如:

  • 1 64位CPU
  • 2 3.8+內核
  • 3 存儲驅動,
  • 4 內核開啟cgroup和命名空間

docker的常用命令

運行容器:

sudo docker run -i -t ubuntu /bin/bash

查看容器列表:

docker ps -a

容器命名:sudo docker run --name bob_the_container -i -t ubuntu /bin/bash
重新啟動:

sudo docker start bob_the_container

創建守護容器:

sudo docker run --name daemon_dave -d ubuntu /bin/bash -c "while true;do echo hello world; sleep 1;done"

帶時間查看日志:

sudo docker logs -ft daemon_dave

查看容器內的進程:

sudo docker top daemon_dave

容器內運行進程:

sudo docker exec -d daemon_dave touch /etc/new_config_file

交互式運行進程:

sudo docker exec -t -i daemon_dave /bin/bash

停止守護進程:

sudo docker stop daemon_dave或者sudo docker stop 43wqihds8324

自動重啟容器:

sudo docker run --restart=always --name daemon_dave -d ubuntu /bin/bash -c "while true;do echo hello world; sleep 1;done"

查看容器詳細信息:

sudo docker inspect daemon_dave

刪除容器:

sudo docker rm 823919fdsfdas3

刪除所有容器:

docker rm 'docker ps -a -q'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM