Docker 基本操作

Docker架構(gòu)總覽

架構(gòu)圖.png

最核心的是 Docker Daemon 我們稱之為 Docker 守護進程,也就是 Server 端,Server 端可以部署在遠程,也可以部署在本地,因為 Server 端與客戶端 ( Docker Client ) 是通過 Rest API 進行通信。

Docker CLI 實現(xiàn)容器和鏡像的管理,為用戶提供統(tǒng)一的操作界面,這個客戶端提供一個只讀的鏡像,然后通過鏡像可以創(chuàng)建一個或者多個容器 (container),這些容器可以只是一個 RFS ( Root File System ),也可以是一個包含了用戶應用的 RFS。容器在 Docker Client 中只是一個進程,兩個進程是互不可見的。

用戶不能與 server 直接交互,但可以通過與容器這個橋梁來交互,由于是操作系統(tǒng)級別的虛擬技術(shù),中間的損耗幾乎可以不計

Docker核心概念

相關(guān)概念 說明
Docker 鏡像(Images) Docker 鏡像是用于創(chuàng)建 Docker 容器的模板。
Docker 容器 (Container) 容器是獨立運行的一個或一組應用。
Docker 客戶端 (Client) Docker 客戶端通過命令行或者其他工具使用 Docker API 與 Docker 的守護進程通信。
Docker 主機 (Host) 一個物理或者虛擬的機器用于執(zhí)行 Docker 守護進程和容器
Docker 倉庫 (Registry) Docker 倉庫用來保存鏡像,可以理解為代碼控制中的代碼倉庫。
Docker Machine Docker Machine 是一個簡化 Docker 安裝的命令行工具,通過一個簡單的命令行即可在相應的平臺上安裝 Docker,比如 VirtualBox、 Digital Ocean、Microsoft Azure。

常用操作命令

容器相關(guān)命令

1. 運行 docker run

示例:docker run ubuntu:15.10 /bin/echo "Hello world"
參數(shù):
ubuntu:15.10: 鏡像名(先檢測本地主機上查找鏡像是否存在,如果不存在則去 Docker Hub 下載公共鏡像)
/bin/echo "Hello world":在鏡像中運行的命令
其他參數(shù):

參數(shù) 說明
-i 允許你對容器內(nèi)的標準輸入 (STDIN) 進行交互
-t 進入指定系統(tǒng)的終端(偽終端)
-d 后臺運行(創(chuàng)建一個以進程方式運行的容器)
-P 將容器內(nèi)部使用的網(wǎng)絡端口映射到我們使用的主機上
-p 設置端口號(-p 127.0.0.1:5001:5000/udp 通過 5001 訪問 5000 端口設置為 udp )
--name 設置啟動容器名
-v 設置掛載目錄(如:-v $PWD/www:/www 將主機中當前目錄下的 www 掛載到容器的 / www)
2. 查看正在運行的 docker 容器 docker ps

返回內(nèi)容說明

字段名 說明
CONTAINER ID 容器 ID
IMAGE 鏡像名
COMMAND 執(zhí)行命令
CREATED 創(chuàng)建時間
STATUS 狀態(tài)
PORTS 端口信息
NAMES 名稱

其他參數(shù)

參數(shù) 說明
-l 顯示最后創(chuàng)建的容器(包括所有狀態(tài))
-a 顯示所有容器(默認顯示剛剛運行)
-n 顯示最后創(chuàng)建的n 條
-q 只顯示 id
-s 顯示文件大小
3. 停止容器 docker stop id/name
4. 啟動容器 docker start id/name
5. 刪除容器 docker rm id/name
6. 查看容器運行日志 docker logs id/name
7. 查看端口映射情況 docker port id
8. 查看容器內(nèi)部運行的進程 docker top id/name
9. 查看Docker底層信息 docker inspect id/name
10. 刪除容器 docker rm id/name 刪除時必須停止不然報錯

鏡像相關(guān)命令

1. 查看有哪些鏡像 docker images
2. 搜索鏡像 docker search name
3. 下拉鏡像 docker pull name
4. 創(chuàng)建鏡像 docker bulid

流程:

  • 創(chuàng)建文件 Dockerfile
    docker build -t runoob/centos:6.7 ./
    -t 指定要創(chuàng)建的目標鏡像名
    最后一個參數(shù)是 Dcokerfile 文件位置,可以絕對可以相對

  • Dcokerfile 文件內(nèi)容:
    內(nèi)容說明:
    FROM: 指定使用哪個鏡像源
    RUN: 告訴 docker 在鏡像內(nèi)執(zhí)行的命令

內(nèi)容示例:

FROM    centos:6.7
MAINTAINER      Fisher "fisher@sudops.com"

RUN     /bin/echo 'root:123456' |chpasswd
RUN     useradd runoob
RUN     /bin/echo 'runoob:123456' |chpasswd
RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D
5. 使用 docker commit 創(chuàng)建副本

在一個新的容器中安裝你想要的軟件然后對出這個容器可以獲取到 ID
然后使用 docker commit -m="has update" -a="aaa" e218edb10161 aaa/ubuntu:v2 來創(chuàng)建一個副本
參數(shù)說明:

參數(shù) 說明
-m 提交的描述信息
-a 指定鏡像作者
e218edb10161 容器ID
runoob/ubuntu:v2 指定要創(chuàng)建的目標鏡像名
6. 修改鏡像標簽 docker tag ID tag
7. 刪除鏡像 docker rmi id
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容