日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker介绍与安装使用(一)

發布時間:2024/4/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker介绍与安装使用(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是Docker?

docker是一個基于LXC容器技術的管理工具,提供一系列更強的功能,如可移植性(定義了標準,可以在任意主機運行)、自動化構建(dockerfile)、版本控制、鏡像管理等。

docker提供應用程序的自動化部署解決方案,能夠迅速創建一個容器,并在容器上部署和運行應用程序,通過配置文件(Dockerfile)可以輕松實現應用程序的自動化安裝、部署和升級

Docker優點?

1.輕量級資源,容器是在進程級別隔離,并使用宿主機的內核,而不需要虛擬化整個操作系統。不需要虛擬化和系統調用復雜的操作。因此節省了很大的額外開銷。不需要額外的hypervisor(虛擬化技術)支持,不需要虛擬硬件,不需要額外完整的系統。

2.可移植性,所需要的應用都在容器中,可以在任意一臺docker主機上運行

3.可預測性,宿主機和容器相互不關心對方都運行什么。只考慮所需的接口標準化。

相關組件及功能?

1.lxc,Linux Container的簡寫,lxc是一種內核虛擬化技術,與宿主機共享內核,用namespace和cgroup實現資源隔離。lxc是linux內核一個特性,它允許進程或進程組運行在一塊獨立的空間,并能對其控制。并實現容器與宿主機資源共享。

2.cgroup,lxc是cgroup的管理工具。限制進程或進程組使用的系統資源管理。提供類似文件的接口,非常方便配置。

3.namespace,cgroup是namespace的用戶空間的管理接口。并對進程或進程組之間隔離,如果net、mnt、pid、user等。

4.aufs(AnotherUnionFS),支持將不同目錄掛載到同一個虛擬文件系統。docker容器分為只讀的鏡像層與上面可寫層,AUFS實現在可寫層上進行增量的修改(增量文件系統)。

在docker中,只讀層及在頂部的讀寫層的組合被稱為Union File System,UFS(聯合文件系統),目前支持的聯合文件系統種類包括 AUFS、btrfs、vfs和DeviceMapper。

5.chroot,使容器運行在指定的目錄內。

組件之間關系?

cgroup是在底層實現資源管理,lxc在cgroup上封裝了一層,docker又在lxc封裝了一層。

工作方式?

當我們啟動一個docker容器時,docker會加載只讀鏡像,并在其上添加一個讀寫層(將鏡像目錄復制一份到/var/lib/docker/aufs/mnt以ID為目錄下,我們可以使用chroot進入此目錄,與容器里面的目錄一樣)。如果運行中的容器修改現有的一個已經存在的文件,那該文件將會從讀寫層下面的只讀層復制到讀寫層,該文件的只讀版本仍然存在,只是已經被讀寫層中的該文件的副本所隱藏,當刪除docker容器,并通過該鏡像重新啟動時,之前的更改將會丟失。


博客地址:http://lizhenliang.blog.51cto.com


Docker安裝與使用:

操作系統:Ubuntu14.04_x64

1、添加秘鑰

$ sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys?58118E89F3A912897C070ADBF76221572C52609D

2、添加docker源

$ sudo vi /etc/apt/sources.list.d/docker.list

# Ubuntu?Precise?

deb https://apt.dockerproject.org/repo ubuntu-precise main?

# Ubuntu?Trusty?

deb https://apt.dockerproject.org/repo ubuntu-trusty main?

# Ubuntu?Vivid?

deb https://apt.dockerproject.org/repo ubuntu-vivid main?

# Ubuntu?Wily?

deb https://apt.dockerproject.org/repo ubuntu-wily main

注意:通過命令lsb_release?-c查看上面對應的版本,不要都添加上

3、更新索引

$ sudo apt-get update

4、安裝docker

$ sudo apt-get install docker-engine

5、下載Ubuntu鏡像

#默認下載最新版

$ sudo docker?pull?ubuntu

#如果想下載14.04版本的,可以這樣指定

$ sudo docker pull ubuntu:14.04

6、在鏡像里打印hello

$ sudo docker?run?ubuntu?/bin/echo?hello

打印出hello說明你已經成功安裝docker并啟動一個容器!

7、熟悉下常用命令

#查看docker環境信息

$ sudo docker version

# sudo docker -D info

#在倉庫中搜索相關的鏡像

$?sudo?docker?search?centos

#查看已下載的鏡像

$?sudo?docker?images

#啟動鏡像并進入容器

$?sudo?docker?run?-itd --name=ubuntu ubuntu

run命令選項:

-t 模擬一個終端,-i進入這個容器,一般結合使用創建一個交互式容器。

-d?后臺運行容器并打印ID,如果不加-i后面就不能附加進入容器

--name 為容器指定名稱

run命令選項很多,先不過多介紹,在使用中你會慢慢了解到!

此時你已經創建并進入容器,怎么能退出呢?

# 按ctrl+d退出容器,會暫停容器,可以再啟動(sudo docker start ID/NAME),里面數據不會丟失。

# 退出暫停容器太不符合常理啊!那么按ctrl+p+q退出docker,將不會暫停

#緊接查看運行的容器

$?sudo?docker?ps

#這時想進入某個容器可通過ps查看的ID進入運行的容器

$?sudo?docker?attach?ID/NAME

#關閉運行的容器(start/restart)

$?sudo?docker?stop ID

#關閉所有運行的容器

$ sudo docker kill $(sudo?docker?ps?-q) ? #-q只顯示ID

#刪除一個容器

$ sudo docker rm ID/NAME

#刪除所有容器

$ sudo docker rm?$(sudo?docker?ps?-q)

#刪除一個鏡像

$ sudo docker rmi ID

#查看Docker操作日志

$ sudo docker ps -a

#查看容器日志

$ sudo docker logs ID/NAME ?

#查看容器配置詳細信息

$ sudo?docker?inspect ID

此時,會返回一個json格式信息,我們可以獲取指定的信息,比如獲取IP地址:

$ sudo?docker?inspect?-f?'{{.NetworkSettings.IPAddress}}'?ID

#列出容器內容文件狀態變化情況

$ sudo docker diff ID

注:A - Add,D - Delet , C - Change

#查看容器資源使用情況

$ sudo docker?stats

#免交互執行命令

$ sudo docker exec ID/NAME command


通過這篇博文,你已經對docker初步認識,可以很輕松的來管理容器了!

后續緊接會更新docker進階內容,歡迎關注,謝謝支持!


總結

以上是生活随笔為你收集整理的Docker介绍与安装使用(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。