1. 程式人生 > 其它 >通過brew安裝docker以及docker的常見使用

通過brew安裝docker以及docker的常見使用

1.1 docker主要由映象和容器構成,包括了3個基本概念

映象(Image):docker映象好比一個模板,相當於一個檔案系統

容器(Container):容器需要通過映象來建立。映象和容器就像是面向物件中的類和例項一樣。容器可以被建立/啟動/停止/刪除等。

倉庫(Repository):倉庫就是存放映象的地方,分為私有倉庫和公有倉庫,類似git。

1.2 docker的執行原理

docker是一個Client-Server結構的系統,docker的守護程序執行在主機上,通過socket從客戶端訪問。dockerServer接收到docker-Client的指令,就會執行這個命令。

一. docker的安裝

1.1 homebrew的cask應支援Docker for Mac,所以可以直接安裝  brew cask install docker

1.2 也可以直接到官網下載,https://download.docker.com/mac/stable/Docker.dmg

1.3 docker的參考文件:https://docs.docker.com

1.4 dockerhub查詢映象源地址:https://hub.docker.com

二. docker的使用 

1.1 檢視版本

docker --version

docker-compose --version 

docker-machine --version

1.2 檢視docker系統資訊(包括映象和容器的數量等)

docker info

1.3 幫助命令

docker help

1.4 檢視 cpu的狀況

docker stats

三. docker的基本命令

映象相關命令:

1.1 檢視映象可用版本(nginx為例)

docker search nginx

1.2 下載一個映象

docker pull nginx:latest(:後面跟映象版本)

1.3 執行一個nginx伺服器

docker run -d -p 81:80 --name webserver nginx

可選項:

--name webserver :容器名稱,用來區分容器

-p 81:80 :埠進行對映,將本地的81埠對映到容器內部的80埠

-v ~/nginx/html:/usr/share/nginx/html 資料卷掛載ro/rw,將主機專案中的目錄掛載到容器的目錄下,預設rw只能在宿主機外改變,容器內部不能改變

-d:設定容器中在後臺一直執行

-it:使用互動方式執行,進入容器檢視內容

-P:隨機埠

-e:環境配置設定

注意:後臺啟動執行,必須要有一個前臺程序,docker發現沒有應用,就會自動停止

重點:資料卷掛載分為具名/匿名/指定路徑掛載,容器資料卷掛載可以實現資料共享,容器的持久化和同步操作,可以使用docker volume 檢視卷的情況,可以使用volumes-from實現多個容器之間的資料共享。

1.4 停止nginx服務

docker stop webserver(容器ID)

1.5 刪除nginx服務

docker rm webserver

1.6 啟動/重啟nginx服務

docker start/restart webserver

1.7 列出所有映象(列表包含了 倉庫名、標籤、映象 ID、建立時間 以及 所佔用的空間)

docker images ls

說明:

REPOSITORY 映象的倉庫源

TAG 映象的標籤

IMAGE ID 映象的id

CREATED 映象的建立時間

SIZE 映象的大小

可選項:

-a:列出所有的映象

-q:只顯示映象的id

注意:映象ID是唯一標識,一個映象可以對應多個標籤

1.8 檢視映象、容器、資料卷所佔用的空間

docker system df

1.9 刪除映象

指定映象:docker rmi [映象名稱/映象短ID/映象長ID/映象摘要]

多個映象:docker rmi 映象ID 映象ID 映象ID

全部映象:docker rmi $(docker images -aq)

2.0 刪除docker images ls 命令配合 刪除所有倉庫名為redis的映象

docker  rmi $(docker images ls -q redis)

2.1 檢視映象執行記錄

docker history 映象id

 

容器相關命令

1.1 列出容器 

docker ps 

可選項:

-a:顯示所有的容器,包括未執行的

-l:顯示最近建立的容器

-n:列出最近建立的n個容器

-q:只顯示容器的編號

1.2 進入容器

docker exec -it [容器名稱] /bin/bash

docker atthch 容器id

區別:docker exec 進入容器後開啟一個新的終端,可以在裡面操作;docker attach 進入容器正在執行的終端,不會啟動新的程序

1.3 退出容器

容器停止退回主機 exit 

容器不停止推出 ctrl+p+q 

1.4 刪除容器

指定容器:docker rm [容器id]

多個容器:docker rm 容器id 容器id 容器id

所有容器:docker rm $(docker ps -aq)    docker ps -a -q|xargs docker rm

注意:不能刪除正在執行的容器,要刪除正在執行的容器需要加 -f 引數,docker rm -f 容器id

1.5 啟動/重啟容器

docker start/restart 容器id

1.6 停止/強制停止容器

docker stop/kill 容器id

1.7 檢視容器日誌

docker logs -f -t --tail 100 容器id 

--tail後面必須加引數條數

1.8 檢視容器中的程序資訊

docker top 容器id

1.9 檢視容器的元資料(重要命令)

docker inspect 容器id

2.0 從容器上拷貝資料到主機上

docker cp 容器id:容器內路徑 主機路徑

四. Dockerfile的指令

FROM 基礎映象,一切從這裡開始

MAINTAINER 映象的作者 姓名<郵箱>

RUN 映象構建需要執行的命令

ADD 步驟,新增內容

WORKDIR 映象的工作目錄

VOLUME 掛載的目錄

EXPOST 埠配置

CMD 指定容器啟動要執行的命令,只有最後一個會生效,可被替代

ENTRYPOINT 指定這個容器啟動要執行的命令,可以追加命令

ONBUILD 當構建一個被繼承的Dockerfile時會執行

COPY 類似ADD將我們檔案拷貝到映象中

ENV 構建的時候設定環境變數

以上部分內容參考b站up主講解,地址放在這裡大家可以自己去學習:https://www.bilibili.com/video/BV1og4y1q7M4