Docker入門教程(一)介紹

2022-08-19 19:42:09 字數 3577 閱讀 9399

一談到容器,我們都會想到 docker。

docker 現在幾乎是容器的代名詞。確實,是 docker 將容器技術發揚光大。同時,我們也需要知道圍繞 docker 還有乙個生態系統。docker 是這個生態系統的基石,但完善的生態系統才是保障 docker 以及容器技術能夠真正健康發展的決定因素。

docker是通過核心虛擬化技術(namespaces及cgroups cpu、記憶體、磁碟io等)來提供容器的資源隔離與安全保障等。由於docker通過作業系統層的虛擬化實現隔離,所以docker容器在執行時,不需要類似虛擬機器(vm)額外的作業系統開銷,提高資源利用率。

build once, configure once and run anywhere(譯者注:這個就不翻譯了,翻譯出來味道就沒了)

docker 將貨櫃思想運用到軟體打包上,為**提供了乙個基於容器的標準化輸出系統。docker 可以將任何應用及其依賴打包成乙個輕量級,可移植,自包含的容器。容器可以執行在幾乎所有的作業系統上

構建:做乙個docker映象

運輸:docker pull

執行:啟動乙個容器

每乙個容器,他都有自己的檔案系統rootfs.

docker的核心元件包括

● docker 客戶端:client

● docker 伺服器:docker daemon

● docker 映象: image

● registry

● docker 容器 :container

view code

docker 架構如圖:

docker 採用的是 client/server 架構。客戶端向伺服器傳送請求,伺服器負責構建,執行和分發容器。客戶端和伺服器可以執行在同乙個host上,客戶端也可以通過 socket 或 restapi 與遠端的伺服器通訊。

最常用的docker客戶端是docker命令。通過docker我們可以方便地在 host上構建和執行容器。

docker支援很多操作(子命令)

除了docker命令列工具,使用者也可以通過 rest api 與伺服器通訊

docker daemon 是伺服器元件,以linux後台服務的方式執行,如圖

docker daemon 執行在docker host 上,負責建立,執行,監控容器,構建,儲存映象。

預設情況下,docker守護程序會生成乙個socket(/var/run/docker.sock)檔案來進行本地程序通訊,而不會監聽任何埠,因此只能在本地使用docker客戶端或者使用docker api進行操作。 

如果想在其他主機上操作docker主機,就需要讓docker守護程序監聽乙個埠,這樣才能實現遠端通訊。

預設配置下,docker daemon 只能響應來自本地host 的客戶端請求。如果要允許遠端客戶端請求,需要在配置檔案中開啟tcp監聽,步驟如下

(1). vim /usr/lib/systemd/system/docker.service

execstart=/usr/bin/dockerd -h unix:///var/run/docker.sock -h tcp:  >>>> ps 2375埠會引發漏洞

(2). 重啟 docker daemon

systemctl daemon-reload

systemctl restart docker.service

修改以後可以遠端連線docker

如在另一台伺服器檢視10.0.0.11上docker的資訊

docker -h 10.0.0.11 info 

可將docker映象看成唯讀模板,通過它可以建立docker容器。

映象有多種生成方法:

(1.)從無到有開始建立映象;

(3.)在現有映象上建立新的映象。

可以將映象的內容和建立步驟描述在乙個文字檔案中,這個檔案被稱為dockerfile,通過執行docker build  命令可以構建出docker映象。

ps:build

build命令

usage:docker build [options] path | url | -options:

-t ,--tag list  #構建後的映象名稱

-f, --file string

#指定dockerfiile檔案位置

示例:1

,docker build .

2,docker build -t nginx:v10 .

3,docker build -t nginx:v10 -f /path/dockerfile /path

docker容器就是docker映象的執行例項

使用者可以通過cli(docker)或是api啟動,停止,移動或刪除容器。可以這麼認為,對於應用軟體,映象是軟體

生命週期的構建和打包階段,而容器則是啟動和執行階段

容器是通過 image 建立的,需要有乙個倉庫來統一存放 image,這個倉庫就叫做 registry

registry是存放docker映象的倉庫,registry分私有和公有兩種。

出於對速度或安全的考慮,使用者也可以建立自己的私有registry。

環境:[root@docker1 ~]# cat /etc/redhat-release

centos linux release 7.5.1804 (core)

[root@docker1 ~]# uname -r

3.10.0-862.2.3.el7.x86_64

yum install epel-release -y

wget -o /etc/yum.repos.d/docker-ce.repo 

sed -i 's#download.docker.com#mirrors.ustc.edu.cn/docker-ce#g

' /etc/yum.repos.d/docker-ce.repo

yum install docker-ce -y

(5).修改docker啟動檔案

docker啟動檔案

/usr/lib/systemd/system/docker.service

systemd詳解:

vim /usr/lib/systemd/system/docker.service

execstart=/usr/bin/dockerd -h unix:///var/run/docker.sock -h tcp: 

修改以後可以遠端連線docker

如在另一台伺服器檢視10.0.0.11上docker的資訊

docker -h 10.0.0.11 info

#啟動docker

systemctl daemon-reload

systemctl restart docker.service

至此配置完成

Docker入門教程(一)介紹

docker入門教程 一 介紹 docker入門教程 二 命令 docker入門教程 三 dockerfile docker入門教程 四 docker registry docker入門教程 五 docker安全 docker入門教程 六 另外的15個docker命令 docker入門教程 七 do...

Hadoop入門 一 介紹Hadoop

the apache hadoop project develops open source software for reliable,scalable,distributed computing.hadoop是做可靠的 可擴充套件的 分布式計算,說白了就是處理海量資料問題的解決方案。海量資料的儲...

OpenCV學習教程入門篇 一 介紹

opencv,是inter公司開發的免費開源專門因為影象處理和機器視覺的c c 庫,英文全稱是open source computer vision。1.視覺化語言matlab與opencv都能夠用於影象處理,學哪種比較好?matlab是主要面對高校做科研的一種視覺化數學處理工具箱。opencv在有...