docker可以分為三部分:docker映象 docker倉庫 docker容器
docker容器:容器是從image中建立的,可以執行啟動、開始、停止、刪除等操作,可以理解為image建立的乙個虛擬機器
開始正題:
docker安裝:centos 7 ------------yum -y install docker-io
檢視docker目前有哪些映象:
docker images
檢視docker庫中有哪些images
docker search 「images-name」 例如: docker search centos7
我們看到下圖出現很多引數,其中包括image的名字、描述、stars(受歡迎程度) 是否為官方建立 是否為自動建立等
docker official images指docker標準庫, 由docker 官方建立. 使用者建立的image則會有userid的prefix.
automated builds 則是通過**版本管理**結合docker hub提供的介面生成的, 例如github, bitbucket,
你需要註冊docker hub, 然後使用github或bitbucket的在賬戶鏈結到docker hub, 然後就可以選擇在github或bitbucket裡面的專案自動build docker image, 這樣的話只要**版本管理**的專案有更新, 就會觸發自動建立image.
拉取映象
啟動容器並進入到容器中
docker run -it /bin/bash #也可以新增-d引數後台執行
假如容器在後台執行,這個時候就需要進入到該容器進行操作
1. docker attach 容器id
不常用:但在,使用該命令有乙個問題。當多個視窗同時使用該命令進入該容器時,所有的視窗都會同步顯示。如果有乙個視窗阻塞了,那麼其他視窗也無法再進行操作。
2.容器中安裝sshd進行遠端
不常用:為了保證安全性,不建議開啟sshd服務
3.使用nsenter進行遠端(預設已經安裝,如果沒有可以手動安裝)
docker inspect -f '}' 容器id
nsenter --target 容器pid --mount --uts --ipc --net --pid
例如:
4.使用 exec進入docker容器
docker exec -it 容器id /bin/bash
(1) docker commit來生成新映象
引數詳解:
舉例說明:
docker commit -a "guohaidong" -m "vsftpd" f8315ebb750b vsftpd:v1
使用dockerfile建立新映象
指令的一般格式為instrunction arguments,指令包括from、maintainer、run等。具體指令及說明如下:
指令說明
from
指定所建立映象的基礎映象
maintainer
指定維護者資訊
run執行命令
cmd指定啟動容器時預設執行的命令
label
指定生成映象的元資料標籤資訊
expose
宣告映象內服務所監聽的埠
env指定環境變數
add賦值指定的路徑下的內容到容器中的路徑下,可以為url;如果為tar檔案,會自動解壓到路徑下
copy
賦值本地主機的路徑下的內容到容器中的路徑下;一般情況下推薦使用copy而不是add
entrypoint
指定映象的預設入口
volume
建立資料掛載點
user
指定執行容器時的使用者名稱或uid
workdir
配置工作目錄
arg指定映象內使用的引數(例如版本號資訊等)
onbuild
配置當前所建立的映象作為其他映象的基礎映象時,所執行的建立操作的命令
stopsignal
容器退出的訊號
healthcheck
如何進行健康檢查
shell
指定使用shell時的預設shell型別
dockerfile檔案格式
最簡單的案例:
在linux系統中的某個路徑新建乙個檔案為dockerfile檔案
vim dockerfile
from docker.io/centos
maintainer guo haidong <[email protected]>
run yum -y install mariadb
然後使用docker build -t contos/mariadb:v1 -f /data/docker/dockerfile . #來生成新的映象# 「.」預設是指dockerfile是在當前路徑,也可以使用-f引數來指定dockerfile路徑
-t 指定映象名稱和tag
-f 指定dcokerfile檔案的path
#*******搭建私有docker倉庫,上傳映象到倉庫,後面介紹
刪除映象
docker rmi 映象id
刪除映象前必須刪除容器
docker rm -f 容器id
檢視容器id方法:
docker ps
***********************************
終端執行乙個nginx容器,如果沒有nginx映象會自動從docker倉庫中pull下來
docker run --name nginx -it nginx /bin/bash
檢視容器的pid
docker inspect -f '}' 容器id
使用nsenter配合容器pid來進入到容器裡
nsenter --target 容器pid --mount --uts --ipc --net --pid
命令總結:
顯像管理
docker search 搜尋映象
docker pull 獲取映象
docker images 檢視映象
docker rmi 刪除映象
docker commit命令或者編寫dockerfile檔案 生成新映象
容器管理
docker run --name -h hostname 啟動容器
docker stop|start|restart 容器id 停止|啟動|重啟 容器
docker run --restart=always --name hostname -d 容器id或者容器名稱 自動重啟容器(當容器由於某種錯誤導致容器停止就會觸發restart訊號)
docker ps -l 檢視最後乙個退出容器
docker ps -n number 顯示最後幾個容器
docker top 容器id或者容器名稱 檢視當前執行的程序
docker logs -f 容器id或者容器名稱 實時檢視當前容器日誌輸出
docker attach | 容器ssh |使用nsenter |使用exec 進入容器 #這裡推薦使用後倆種,
*****docker inspect 容器名稱或者容器id 顯示容器的詳細資訊
*****docker inspect --format '}' 容器名稱或者容器id
docker映象和容器
伺服器安裝docker,請網上查詢 windows安裝docker可參考 1.1 docker search fastdfs 在網上搜尋映象資源 1.2 拉取映象並檢視狀態 docker image pull delron fastdfs 拉取映象到本地 docker images 檢視本地映象 d...
Docker映象 容器 倉庫的介紹
docker映象 因為docker本身包含的知識點很多,網上太多的介紹文件了,這裡我就簡單概述一下。通俗的理解映象 docker的映象是乙個唯讀的模板,乙個獨立的檔案系統,包括執行容器所需的資料,可以用來建立新的容器。docker的映象相當於iso作業系統的安裝包,iso映象的內容是固定的,不會發生...
docker映象 容器簡單操作命令
1.docker概述 docker是一種容器技術,解決軟體跨環境遷移的問題。我們寫 的時候通常會有多個環境,比如開發環境,測試環境以及生產環境。在產品的開發過程中經常會遇到一些在開發環境上沒有問題,而到測試環境或者生產環境就有問題的情況。這時候docker就能很好的解決問題,他將應用程式以及應用程式...