docker初識 Docker 初識

2021-10-13 12:15:25 字數 3694 閱讀 4663

一、docker 簡介

docker是乙個開源的應用容器,使用者可以將web程式和服務打包到乙個輕量級、可以移植的容器中,然後發布到任務流行的linux伺服器上,實現虛擬化。同時完全是沙箱操作,即docker內部是乙個沙箱操作,專案之間不會有任何介面,並且開銷極低。

二、docker(centos)安裝

1. 移除舊的docker服務

sudo yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-selinux \

docker-engine-selinux \

docker-engine

2. 安裝必要的引數

3. 設定軟體源的**資訊

sudo yum-config-manager --add-repo

4. 更新yum快取

sudo yum makecache fast

5. 安裝 docker-ce

sudo yum -y install docker-ce

6. 啟動

sudo systemctl start docker

7. 設定開機啟動

chkconfig docker on

8. 測試執行 hello-world

docker run hello-world

9. 映象加速,在 /etc/docker/daemon.json中新增下面的內容,沒有改檔案,則建立該檔案。

"registry-mirrors": [""]

# 國內加速映象

# 網易加速器:

# 官方中國加速器:

10. 刪除docker ce

sudo yum remove docker-ce

sudo rm -rf /var/lib/docker

三、docker 基礎

docker重要的基礎概念:倉庫,映象,容器

倉庫:註冊伺服器是存放倉庫的地方,其上往往存放著多個倉庫。每個倉庫集中存放某一類映象,往往包括多個映象檔案,通過不同的標籤(tag)來進行區分。例如存放ubuntu作業系統映象的倉庫,稱為ubuntu倉庫,其中可能包括14.04、12.04等不同版本的映象,很多人會把倉庫與registry混為一談,其實registry是存放repository的地方,倉庫分為公有倉庫與私有倉庫;

映象:docker映象(image)類似於虛擬機器映象,可以將它理解為乙個面向docker引擎的唯讀模板,包含了檔案系統。例如:乙個映象可以只包含乙個完整的ubuntu作業系統環境,可以把它稱為乙個ubuntu映象。

容器:似於乙個輕量的沙箱,docker利用容器來執行和隔離應用;容器是從映象建立的應用執行的例項;容器從映象啟動的時候,docker會在映象的最上層建立乙個可寫層,映象本身保持不變;容器是從映象建立的應用執行例項,可以將其啟動、開始、停止、刪除,而這些容器都是相互隔離、互不可見的。可以從乙個映象建立無數個容器。平時我們主要操作的就是容器。我們也可以把容器打包成映象以方便再次使用。映象自身是唯讀的。容器從映象啟動的時候,docker會在映象的最上層建立乙個可寫層,映象本身將保持不變。

hub**倉庫是乙個公共的庫,可以建立賬號之後,將自己的內容推送到上面,註冊自己賬號

四、docker命令

1. 基礎命令

docker ps -- 檢視當前執行在容器中的程式

docker pull image_names -- 攔截映象檔案 image_name映象檔案的名稱

docker images -- 檢視當前容器中的映象檔案

docker rmi imagename --刪除映象檔案

2. 案例:

執行程式

-d 讓容器在後台中執行

-p 將程式埠對映到主機上

新增自己的hub上賬號

sudo docker login

username: ***

password:

email: ***

使用dockerfile來構建自己的映象

1. mkdir workdir

2. cd workdir

3. touch dockerfile 新增如下內容:

# version: 0.0.1

from ubuntu:14.04

maintainer wangzhe0912 "[email protected]"

run apt-get update

run apt-get install -y nginx

run echo "hi, i am your contrainer" > /usr/share/nginx/html/index.html

expose 80

**含義:

1.每個dockerfile的第一行指令都應該是from開頭。from用於制定乙個已經存在的映象,後續指令都是基於該映象來執行。這個映象我們稱之為基礎映象。

2.maintainer後說明該作者和作者郵箱資訊。

3.接下來是三條run指令。預設情況下,指令後的內容會通過/bin/sh -c來執行。

4.最後設定了expose,該指令用於指定容器內的應用程式會使用哪些埠(可以指定多個)。ps:出於安全考慮,預設docker不會自動開啟這些埠,

5.需要在docker run指令中指定需要開啟的埠

4.構建映象

docker build -t="wangzhe0912/nginx:v1"` . (後面有乙個點,表示執行當前目錄下的dockerfile檔案,-t="wangzhe0912/nginx:v1"指定了新生成映象的映象名稱,也可以從git倉庫中尋找docker build -t="wangzhe0912/nginx:v1"` [email protected]:wangzhe0912/docker_web)

dockerfile構建的好處是如果某一步執行失敗了,以前面的映象儲存於快取中,如果再次構建時會利用該快取,如果不想,則執行

sudo docker build --no-cache -t="wangzhe0912/nginx:v1" .

如果想利用快取,則需要在第乙個run之前指定: env refreshed_at 2018-01-28該命令列。如果該快取變化了,則重新構建,如果沒有變化,則會利用該快取中的映象。

如下:# version: 0.0.1

from ubuntu:14.04

env refreshed_at 2018-01-28

maintainer wangzhe0912 "[email protected]"

run apt-get update

5.將映象推送到hub倉庫中 sudo docker push wangzhe0912/nginx

五、優勢和使用場景

作為一種輕量級的虛擬化方式,docker在執行應用上跟傳統的虛擬機器方式相比具有顯著優勢:

docker容器很快,啟動和停止可以在秒級實現,這相比傳統的虛擬機器方式要快得多。

docker容器對系統資源需求很少,一台主機上可以同時執行數千個docker容器。

docker通過類似git的操作來方便使用者獲取、分發和更新應用映象,指令簡明,學習成本較低。

docker通過dockerfile配置檔案來支援靈活的自動化建立和部署機制,提高工作效率。

docker初識 初識 Docker

docker 學習 docker概述 docker安裝 docker命令映象命令 容器命令 操作命令 docker映象!容器資料卷!dockerfile docker網路原理 idea整合docker docker compose docker swarm 簡化的k8s ci cd jenkins ...

Docker 初識Docker網路

我們每啟動乙個docker容器,docker就會給docker容器分配乙個ip,我們只要安裝了docker,就會有乙個網絡卡docker0。一 啟動兩個tomcat容器 root localhost docker run d p name tomcat01 tomcat 啟動映象,生成tomcat0...

docker 初識 筆記

docker 是乙個輕量級 可攜式 與外界隔離的容器,也是乙個可以在容器中很方便地構建 傳輸 執行應用的引擎。和傳統的虛擬化技術不同的是,docker 引擎並不虛擬出一台虛擬機器,而是直接使用宿主機的核心和硬體,直接在宿主機上執行容器內應用。也正是得益於此,docker 容器內執行的應用和宿主機上執...