DOCKER學習筆記

2021-10-01 03:06:03 字數 2008 閱讀 7585

docker學習筆記

操作:一. 修改容器並打包成映象

1.進入映象

docker run -it 映象名稱 /bin/bash

[root@afcaf46e8305 /]#

注意afcaf46e8305是產生的容器id,修改完成後,exit。

2.把容器打包成映象

docker commit 容器id 新映象名稱

3.options說明

-a :提交的映象作者;

-c :使用dockerfile指令來建立映象;

-m :提交時的說明文字;

-p :在commit時,將容器暫停。

將容器a404c6c174a2 儲存為新的映象,並新增提交人資訊和說明資訊。

docker commit -a 「runoob.com」 -m 「my apache」 a404c6c174a2 mymysql:v1

二.容器操作

1/啟動乙個容器

docker start container_id

2/停止容器

docker stop container_id

3/檢視容器

docker ps -a

4/進入容器

docker exec -it container_id /bin/bash(需要先啟動容器才行)

刪除映象操作

1.停止所有的container,這樣才能夠刪除其中的images:

docker stop $(docker ps -a -q)

如果想要刪除所有container的話再加乙個指令:

docker rm $(docker ps -a -q)

2.檢視當前有些什麼images

docker images

3.刪除images,通過image的id來指定刪除誰

docker rmi

想要刪除untagged images,也就是那些id為的image的話可以用

docker rmi $(docker images | grep 「^」 | awk 「」)

要刪除全部image的話

docker rmi $(docker images -q)

概念介紹

從上圖我們可以看到,docker 中包括三個基本的概念:

• image(映象)

• container(容器)

• repository(倉庫)

映象是 docker 執行容器的前提,倉庫是存放映象的場所,可見映象更是 docker 的核心。

image (映象)

那麼映象到底是什麼呢?

docker 映象可以看作是乙個特殊的檔案系統,除了提供容器執行時所需的程式、庫、資源、配置等檔案外,還包含了一些為執行時準備的一些配置引數(如匿名卷、環境變數、使用者等)。映象不包含任何動態資料,其內容在構建之後也不會被改變。

映象(image)就是一堆唯讀層(read-only layer)的統一視角

container (容器)

容器 (container) 的定義和映象 (image) 幾乎一模一樣,也是一堆層的統一視角,唯一區別在於容器的最上面那一層是可讀可寫的。

repository (倉庫)

docker 倉庫是集中存放映象檔案的場所。映象構建完成後,可以很容易的在當前宿主上執行,但是, 如果需要在其它伺服器上使用這個映象,我們就需要乙個集中的儲存、分發映象的服務,docker registry (倉庫註冊伺服器)就是這樣的服務。有時候會把倉庫 (repository) 和倉庫註冊伺服器 (registry) 混為一談,並不嚴格區分。docker 倉庫的概念跟 git 類似,註冊伺服器可以理解為 github 這樣的託管服務。實際上,乙個 docker registry 中可以包含多個倉庫 (repository) ,每個倉庫可以包含多個標籤 (tag),每個標籤對應著乙個映象。所以說,映象倉庫是 docker 用來集中存放映象檔案的地方類似於我們之前常用的**倉庫。

docker學習筆記

1 docker依賴於linux核心,無法直接安裝在windows環境中,否則需要安裝docker toolbox 2 相關操作 docker create 建立乙個容器但是不啟動它 docker run 建立並啟動乙個容器 docker stop id 停止容器執行,傳送訊號sigterm doc...

Docker學習筆記

一 docker是什麼 docker是乙個開源的引擎,可以輕鬆的為任何應用建立乙個輕量級的 可移植的 自給自足的容器。就相當於書包可以裝書,水杯可以盛水。二 docker解決了什麼問題 我本地沒有問題啊 本地和線上的環境不一致問題,哪個哥們又寫死迴圈了 其他專案的出錯不影響你本身的專案 雙十一伺服器...

docker學習筆記

1.怎麼給執行中的docker容器新增新的埠 解決 1 獲得容器ip docker inspect container name grep ipaddress 2 iptable埠 將容器的8000埠對映到主機的8001埠 iptables tnat adocker ptcp dport 8001 ...