Docker 系列之 基礎入門

安裝 Docker

  • Windows 10 專業版以上版本

Docker for Windows Installerhtml

在安裝前,須要確保目標機器已經開啓了硬件虛擬化和 HyperV ;在安裝的過程當中建議不要進行其它操做,它須要自動重啓。linux

  • Ubuntu

Docker for Ubuntugit

  • MacOS

Docker for MacOSgithub

鏡像加速器:registry mirror https://registry.docker-cn.comdocker

安裝完成後可打開 bash 窗口檢查安裝是否正常。shell

# 查看當前安裝版本
docker -v

# 查看當前詳細信息
docker -info

# 登陸 Docker
docker login

安裝 Portainer

portainer: 可視化的管理界面,可選操做;(VSCode 裏面的 Docker 插件也是能夠進行相關操做)ubuntu

docker volume create portainer_data

docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

執行成功後瀏覽 127.0.0.1:9000 便可。bash

架構圖

三大關鍵點

image

Docker 鏡像是一個只讀的環境模板,裏面只存放了咱們須要運行程序的基礎環境配置。架構

  • 經常使用命令
# 獲取鏡像
docker pull [選項] [Docker Registry 地址[:端口號]/]倉庫名[:標籤]

# 查看當前已經下載下來的全部鏡像
docker images
docker image ls

# 顯示全部懸掛鏡像(倉庫名、標籤均爲 <none> 的鏡像)
docker image ls -f dangling=true

# 以特定格式顯示
docker image ls -q
docker image ls --format "{{.ID}}: {{.Repository}}"
docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

# 查看鏡像體積
docker system df

# 刪除指定鏡像
docker image rm [選項] <鏡像1> [<鏡像2> ...]
docker rmi container_id

注:刪除鏡像前,請先刪除對應的容器。網站

  • 使用 Dockerfile 進行自動構建
    • FROM:指定基礎鏡像
    • RUN:執行命令
    • build:docker build [選項] <上下文路徑/URL/->
    • COPY:複製文件
    • ADD:更高級的複製文件
    • ENTERPOINT:入口點
    • ENV:設置環境變量
    • ARG:構建參數
    • VOLUME:定義匿名卷
    • EXPOSE:暴露端口
    • WORKDIR:指定工做目錄
    • USER:指定當前用戶
    • HEALTHCHECK:健康檢查
    • ONBUILD:未他人作嫁衣裳

示例腳本以下所示:

docker build -t friendlyname .# 使用此目錄的 Dockerfile 建立鏡像
docker run -p 4000:80 friendlyname  # 運行端口 4000 到 90 的「友好名稱」映射
docker run -d -p 4000:80 friendlyname         # 內容相同,但在分離模式下
docker ps                                 # 查看全部正在運行的容器的列表
docker stop <hash>                     # 平穩地中止指定的容器
docker ps -a           # 查看全部容器的列表,甚至包含未運行的容器
docker kill <hash>                   # 強制關閉指定的容器
docker rm <hash>              # 今後機器中刪除指定的容器
docker rm $(docker ps -a -q)           # 今後機器中刪除全部容器
docker images -a                               # 顯示此機器上的全部鏡像
docker rmi <imagename>            # 今後機器中刪除指定的鏡像
docker rmi $(docker images -q)             # 今後機器中刪除全部鏡像
docker login             # 使用您的 Docker 憑證登陸此 CLI 會話
docker tag <image> username/repository:tag  # 標記 <image> 以上傳到鏡像庫
docker push username/repository:tag            # 將已標記的鏡像上傳到鏡像庫
docker run username/repository:tag                   # 運行鏡像庫中的鏡像

container

容器是從鏡像的建立的運行實例;簡單的說,它是在鏡像上面又建立了一層可讀寫層。容器之間相互隔離。

  • 經常使用命令
# 查看當前正在運行的容器
docker container ls
docker ps

# 查看當前全部容器實例
docker container ls -a
docker ps -a

# 新建(若不存在)並啓動一個容器實例
docker run image

# 新建(若不存在)並後臺啓動一個容器實例
docker run -d image

# 新建(若不存在)並以交互模式啓動一個容器實例
docker run -it image

# 啓動已終止的容器
docker start conatiner_id
docker container start conatiner_id

#中止指定容器
docker stop conatiner_id
docker container stop conatiner_id

# 中止全部容器(在 powershell 中操做)
docker stop $(docker ps -aq)

# 刪除指定容器
docker rm conatiner_id

# 查看指定容器的運行日誌
docker logs conatiner_id

repository

倉庫是集中存放鏡像的地方,倉庫分爲公開倉庫和私有倉庫兩種,最大的公開倉庫是Docker Hub,提供了數量龐大的鏡像供用戶下載,國內的公開倉庫包括Docker Pool等,能夠提供大陸用戶更穩定、更快的訪問。

  • 經常使用命令
# 查找鏡像
docker search keywords

# 拉取鏡像
docker pull repo_name

docker push username/repo_name

相關參考

相關文章
相關標籤/搜索