共計 3868 個字符,預計需要花費 10 分鐘才能閱讀完成。
本篇內容主要講解“Docker 常用命令怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“Docker 常用命令怎么使用”吧!
什么是 Docker
Docker 是開源的應用容器引擎。
Docker 可以讓你將所有應用軟件以及它的以來打包成軟件開發的標準化單元。
Docker 容器將軟件以及它運行安裝所需的一切文件(代碼、運行時、系統工具、系統庫)打包到一起,這就保證了不管是在什么樣的運行環境,總是能以相同的方式運行。就好像 Java 虛擬機一樣,“一次編寫,到處運行(Write once, run anywhere)”,而 Docker 是“一次構建,到處運行(Build once,run anywhere)”。
Docker 是一種“容器即服務”(Docker Containers as a Service,簡稱 CaaS),使得開發和 IT 運營團隊可以對于應用的構建、發布、運行更加敏捷和可控。
概括的說:Docker 是為開發人員和系統管理員用于構建、發布、并運行分布式應用程序的開放式平臺。該平臺由 Docker 引擎(一個便攜、輕巧的運行時和打包工具)和 Docker Hub(一個共享應用程序和自動化工作流的云服務)等組成。Docker 可以使應用程序從組件迅速組裝并消除了開發、質量保證和生產環境之間的摩擦問題。這樣一來,IT 部門可以更快地發布,而這些應用程序不管是運行在筆記本電腦、數據中心的虛擬機,還是任何的云,其運行過程和結果都是一致的。
我們再來看下 Docker 的 Logo。很明顯,這是一只鯨魚,它托著許多集裝箱。我們可以把宿主機可當做這只鯨魚,把相互隔離的容器可看成集裝箱,每個集裝箱中都包含自己的應用程序。這 Logo 簡直的太形象了!
Docker 的優點
輕量級:所有容器在一臺機器上共享同一個操作系統內核,這樣他們立即開始,并更有效地利用內存。Image 是從分層文件系統的構建,這樣他們能夠共享公共文件,使得磁盤使用率和 Image 的下載更加高效。
開放:Docker 容器是基于開發的標準,允許容器運行在主流的 Linux 發布版和 Microsoft 操作系統作為所有的基礎設施。
安全:容器使得應用程序彼此隔離,而基礎架構同時為應用程序提供了額外的保護層。
Docker 與 虛擬機的區別
容器與虛擬機有著類似的資源隔離和分配的優點,但不同的架構方法使容器能夠更加便攜,高效等。
虛擬機的架構
每個虛擬機都包括應用程序、必要的二進制文件和庫以及一個完整的客戶操作系統 (Guest OS),盡管它們被分離,它們共享并利用主機的硬件資源,將近需要十幾個 GB 的大小。
容器的架構
容器包括應用程序及其所有的依賴,但與其他容器共享內核。它們以獨立的用戶空間進程形式運行在主機操作系統上。他們也不依賴于任何特定的基礎設施,Docker 容器可以運行在任何計算機上,任何基礎設施和任何云上。
Docker 的容器利用了 LXC,管理利用了 namespaces 來做權限的控制和隔離,cgroups 來進行資源的配置,并且還通過 aufs 來進一步提高文件系統的資源利用率,而這些技術都不是 Docker 獨創。
LXC
LXC 與虛擬機的不同之處在于,它是一個操作系統級別的虛擬化環境,而不是硬件虛擬化環境。他們都做同樣的事情,但 LXC 是操作系統級別的虛擬化環境,虛擬環境有它自己的進程和網絡空間,而不是創建一個完整成熟的虛擬機。因此,一個 LXC 虛擬操作系統具有最小的資源需求,并啟動只需幾秒鐘。
正如你可以在下圖中看到的,左側是 LXC 虛擬的 Ubuntu,默認安裝使用 11 MB 大小。
Docker 與 Microservices 的關系
Microservices(微服務)依賴于“基礎設施自動化”,而 Docker 正是“基礎設施自動化”的利器。可以說 Docker 的火爆,一定程度上也帶動了微服務架構的興起,而微服務的廣泛應用也促進了 Docker 繁榮。可以說兩者相輔相成。
為什么要用 Docker
開發更加敏捷:Docker 讓開發人員可以自由定義環境,創建和部署的應用程序更快、更容易,IT 運維人員快速應對變化也更加靈活性。
更加可控:Docker 使得開發人員保存從基礎設施到應用的代碼,幫助 IT 運維人管理擁有標準的、安全的、可擴展的操作環境。
高可移植性:Docker 允許自由選擇,可以是從筆記本電腦到一個團隊,從私人基礎設施到公共云提供商。
這樣,你可以專注于開發應用,其他的繁瑣事交給 Docker 去做吧。
如何使用 Docker
這可真是一個大話題,如果完整闡述足夠寫一本書了。好在我們的目的是做入門普及,因此我們就簡單講一下 Docker 的安裝、基本使用和常用命令。
Docker 安裝
建議在 linux 環境下安裝 Docker,window 環境搭建比較復雜且容易出錯,使用 Centos7+yum 來安裝 Docker 環境很方便。
Docker 軟件包已經包括在默認的 CentOS-Extras 軟件源里。因此想要安裝 docker,只需要運行下面的 yum 命令:
yum install docker
安裝完成后,使用下面的命令來啟動 docker 服務,并將其設置為開機啟動:
service docker start
chkconfig docker on
LCTT 譯注:此處采用了舊式的 sysv 語法,如采用 CentOS 7 中支持的新式 systemd 語法,如下:
service docker start
chkconfig docker on
測試
docker version
輸入上述命令,返回 docker 的版本相關信息,證明 docker 安裝成功。
Hello World
下面,我們通過最簡單的 image 文件 hello world,感受一下 Docker。
因為國內連接 Docker 的官方倉庫很慢,因此我們在日常使用中會使用 Docker 中國加速器。通過 Docker 官方鏡像加速,中國區用戶能夠快速訪問最流行的 Docker 鏡像。該鏡像托管于中國大陸,本地用戶現在將會享受到更快的下載速度和更強的穩定性,從而能夠更敏捷地開發和交付 Docker 化應用。
Docker 中國官方鏡像加速可通過 registry.docker-cn.com 訪問。該鏡像庫只包含流行的公有鏡像,私有鏡像仍需要從美國鏡像庫中拉取。
修改系統中 docker 對應的配置文件即可,如下:
vi /etc/docker/daemon.json
# 添加后
{
registry-mirrors : [https://registry.docker-cn.com],
live-restore : true
}
運行下面的命令,將 image 文件從倉庫抓取到本地。
docker pull library/hello-world
上面代碼中,docker image pull 是抓取 image 文件的命令。library/hello-world 是 image 文件在倉庫里面的位置,其中 library 是 image 文件所在的組,hello-world 是 image 文件的名字。
抓取成功以后,就可以在本機看到這個 image 文件了。
docker images
# 顯示結果
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/hello-world latest f2a91732366c 3 months ago 1.848 kB
現在,運行這個 image 文件。
docker run hello-world
# 顯示結果
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
輸出這段提示以后,hello world 就會停止運行,容器自動終止。有些容器不會自動終止,因為提供的是服務,比如 Mysql 鏡像等。
常用命令
除過以上我們使用的 Docker 命令外,Docker 還有一些其它常用的命令。
拉取 docker 鏡像
docker pull image_name
查看宿主機上的鏡像,Docker 鏡像保存在 /var/lib/docker 目錄下:
docker images
刪除鏡像
docker rmi docker.io/tomcat:7.0.77-jre7 或者 docker rmi b39c68b7af30
查看當前有哪些容器正在運行
docker ps
查看所有容器
docker ps
-a
啟動、停止、重啟容器命令:
docker start container_name/container_id
docker stop container_name/container_id
docker restart container_name/container_id
后臺啟動一個容器后,如果想進入到這個容器,可以使用 attach 命令:
docker attach container_name/container_id
刪除容器的命令
docker rm container_name/container_id
查看當前系統 Docker 信息
docker info
從 Docker hub 上下載某個鏡像:
docker pull centos:latest
docker pull centos:latest
執行 docker pull centos 會將 Centos 這個倉庫下面的所有鏡像下載到本地 repository。
到此,相信大家對“Docker 常用命令怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!