docker基础知识
Docker 是一個能夠把開發應用程序自動部署到容器的開源引擎。Docker 項目的目標是實現輕量級的操作系統虛擬化解決方案。 Docker 的基礎是 Linux 容器(LXC)等技術,它提供了一個簡單、輕量的建模方式,使開發生命周期更高效快速,鼓勵了面向服務的架構設計。在 LXC 的基礎上 Docker 進行了進一步的封裝,讓用戶不需要去關心容器的管理,使得操作更為簡便。用戶操作 Docker 的容器就像操作一個快速輕量級的虛擬機一樣簡單。:
Docker 容器本質上是宿主機上的一個進程。Docker 通過 namespace 實現了資源隔離,通過 cgroups 實現了資源的限制,通過寫時復制機制(copy-on-write)實現了高效的文件操作。
Docker有五個命名空間:進程、網絡、掛載、宿主和共享內存,為了隔離有問題的應用,Docker運用Namespace將進程隔離,為進程或進程組創建已隔離的運行空間,為進程提供不同的命名空間視圖。這樣,每一個隔離出來的進程組,對外就表現為一個container(容器)。需要注意的是,Docker讓用戶誤以為自己占據了全部資源,但這并不是”虛擬機”。
安裝
DockerHub可以注冊賬號
docker可以在運行在window、mac、linux平臺,并都有自己的客戶端進行管理。注意要配置國內鏡像加速
文檔
docker官網文檔寫的很詳細,還有Docker菜鳥教程
play with docker是一個在線學習使用docker的網頁,每次可以免費使用4個小時,在里面可以盡情嘗試使用docker的命令。
docker術語
1.鏡像(image):Docker 鏡像就是一個只讀的模板,鏡像可以用來創建 Docker 容器。Docker 提供了一個很簡單的機制來創建鏡像或者更新現有的鏡像,用戶甚至可以直接從其他人那里下載一個已經做好的鏡像來直接使用。
鏡像是一種文件結構。Dockerfile中的每條命令都會在文件系統中創建一個新的層次結構,文件系統在這些層次上構建起來,鏡像就構建于這些聯合的文件系統之上。Docker官方網站DockerHub專門存儲所有可用的鏡像。
2.容器( Container):容器是從鏡像創建的運行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。可以把容器看做是一個簡易版的 Linux 環境,Docker 利用容器來運行應用。鏡像是只讀的,容器在啟動的時候創建一層可寫層作為最上層。
3.倉庫:倉庫是集中存放鏡像文件的場所,倉庫注冊服務器(Registry)上往往存放著多個倉庫,每個倉庫中又包含了多個鏡像,每個鏡像有不同的標簽(tag)。目前最大的公開倉庫是 Docker Hub,存放了數量龐大的鏡像供用戶下載。Docker倉庫用來保存我們的images,當我們創建了自己的image之后我們就可以使用push命令將它上傳到公有或者私有倉庫,這樣下次要在另外一臺機器上使用這個image時候,只需要從倉庫上pull下來就可以了。Docker 倉庫的概念跟 Git 類似,注冊服務器可以理解為 GitHub 這樣的托管服務。
4. tar文件
docker常用命令
docker version 版本信息
docker info 查看docker安裝信息
docker stats 查看cpu 內存占用信息
-
鏡像操作:
docker search -s 10 java 查找點贊數大于10 的java鏡像
docker pull nginx:latest 下載nginx最新版本的鏡像
docker images 查看當前所有的鏡像
docker rmi 刪除本地一個或多個鏡像 ,注意如果有基于這個鏡像的容器,必須先刪除這個容器
docker history 查看dockerfile構建信息docker commit dockerID my_nginx 將一個容器打包成鏡像
可以通過save、load的方式從同事那里拷貝鏡像
docker save -o /usr/share/my_ubuntu_v3.tar runoob/ubuntu:v3 將指定鏡像保存成 tar 歸檔文件, -o指定保存的地方和文件名
docker load -i my_ubuntu_v3.tar 導入使用 docker save命令導出的鏡像,(都會加載到docker指定的地方,不用關心加載到那里)
也可以使用export、import導出導出,導入和導出鏡像
-
容器操作:
docker run -d -p 80:80 --name my_nginx -v /home/docker-nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/docker-nginx/log:/var/log/nginx dockerID 指定端口和名字,使用宿主機上的配置文件,后臺 運行docker。還可以加上--rm,即當容器停止后,自動刪除這個容器,運維工作經驗推薦。docker ps 查看當前正在運行的docker容器, -a列出所有狀態的容器,已經停止的容器可以start ,restart,pause ,unpause ,create
docker stop dockerID 停止一個運行的容器
docker container prune docker新出的命令,快速刪除所有已經退出的容器,docker port dockerID 查看容器的端口映射
docker logs -f dockerID 查看容器內部的標準輸出
docker top dockerID 查看容器內部運行的進程
docker inspect dockerID 查看容器的底層信息,挺有用的docker exec -it dockerID /bin/bash 進入docker容器內部 ,exit退出容器
docker exec -ti -u root 4650e8d1bcca bash root用戶進入
總結
以上是生活随笔為你收集整理的docker基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: emqx—mqtt消息服务器
- 下一篇: 工作中必须要知道的git高级用法